Chrome的IndexedDB错误“内部错误检查密钥存在”是什么意思?

时间:2013-04-05 20:46:57

标签: javascript google-chrome indexeddb

我在一个相对较大的项目中间歇地得到这个错误消息,看似任意的时间(这让我怀疑某个地方有竞争条件......),所以我很遗憾没有像我这样说明这个问题的最小例子不了解根本原因。基本上,有时我得到一个错误信号,其中event.target.webkitErrorMessage是“内部错误检查密钥存在”。但我真的不明白这个错误信息是什么意思。

Googling for this phrase仅返回7个结果(尽管Google和其他人发现此问题后会更多)。这些结果都是Chromium源代码或有关向Chromium添加更详细错误消息的错误报告。由于我并不熟悉Chromium的IndexedDB后端实现,所以我很难理解的是这个错误消息对于前端JavaScript代码的意义。例如,哪种JavaScript错误可能导致该错误消息?

有问题的代码似乎在Firefox,FWIW中运行良好。

以下编辑

我也很少,为了响应openCursor对我知道的密钥的update请求而返回null作为游标。这也是不一致的 - 它发生在不同的密钥上,很少发生。而且它也只在Chrome中。非常离奇。

我不确定它是否相关,但这一切都发生在一个大型事务中,在两个对象存储中有很多openCursor个(这些是导致空add问题的那些)和另一个对象存储区中的许多{{1}}(这似乎是“内部错误检查密钥存在”错误的来源)。我将尝试做一个最小的例子并进一步调查,但无论结果如何,我仍然想知道我原来的问题的答案,具体是“内部错误检查密钥存在”的意思。 / p>

另一个编辑

在玩了一些之后,我遇到了另一个奇怪的瞬态错误消息,“内部错误:支持存储错误执行put / add”。我也很好奇我对JavaScript的暗示。

此外,我验证了所有这些问题都是Chrome 26的新功能(并保留在Chrome 27中)。降级到Chrome 25会使所有这些问题消失......所以这可能只是来自Chrome中的一些错误......

ONE MORE EDIT

所有这些问题似乎只发生在Linux中(我使用的是Ubuntu 12.10)。在使用Chrome 26的Windows XP VM中,我无法重现任何这些错误。我submitted a bug report因为越来越清楚这一切都是由于某些错误所致,但我不确定我是否已经将问题缩小到足以帮助找到解决方案。

1 个答案:

答案 0 :(得分:0)

正如我在问题编辑中提到的那样,我提交了a bug report。它似乎已在Chrome 28中得到解决。因此,任何人在旧版Chrome中遇到此问题,只需升级到不稳定版本或等待几个月让Chrome 28保持稳定。如果有人在Chrome 28或更高版本中收到此类错误,则可能是错误。