Chrome's IndexedDB错误"内部错误检查键存在"是什么意思?

What is the meaning of Chrome's IndexedDB error "Internal error checking key existence"?

本文关键字:错误 quot 存在 是什么 意思 检查 IndexedDB Chrome 内部      更新时间:2023-09-26

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

搜索这个短语只返回7个结果(尽管一旦谷歌和其他公司找到这个问题,结果会更多)。这些结果都是关于向Chromium添加更详细的错误消息的Chromium源代码或bug报告。由于我对Chromium的IndexedDB后端实现不太熟悉,我正在努力理解的一件事是,就前端JavaScript代码而言,这个错误消息意味着什么。例如,什么样的JavaScript错误会导致错误消息?

问题代码似乎在Firefox, fww中工作得很好。

编辑下面的

在响应openCursor请求我知道一个键是真正的键时,我也很少得到null作为游标返回。这也是不一致的——它发生在不同的键上,而且很少。而且它也只支持Chrome浏览器。非常奇怪。

我不确定它是否相关,但这一切都发生在两个对象存储中的许多update s的大型事务中(这些是导致null openCursor问题的那些)和另一个对象存储中的许多add s(这似乎是"内部错误检查键存在"错误的来源)。我将尝试对此做一个最小的例子并进一步调查,但无论结果如何,我仍然想知道我最初问题的答案,即"内部错误检查密钥存在性"具体是什么意思。

另一个编辑

在玩了一些之后,我遇到了另一个奇怪的瞬态错误消息,"内部错误:后备存储执行put/add错误"。我也很好奇这对我的JavaScript意味着什么。

此外,我验证了所有这些问题都是Chrome 26的新问题(并且仍然存在于Chrome 27中)。降级到Chrome 25使所有这些问题消失…所以这可能只是Chrome浏览器的一些bug…

再编辑一次

所有这些问题似乎只发生在Linux上(我使用的是Ubuntu 12.10)。在安装Chrome 26的Windows XP虚拟机中,我无法重现这些错误。我提交了一个bug报告,因为它越来越明显,这都是由于一些bug,但我不确定我是否已经缩小了问题的范围,以帮助找到一个解决方案。

正如我在这个问题的编辑中提到的,我提交了一个错误报告。这个问题似乎在Chrome 28中得到了解决。所以任何在旧版本的Chrome中遇到这个问题的人,只要升级到不稳定的版本,或者等几个月让Chrome 28稳定下来。如果有人在Chrome 28或更高版本中出现这样的错误,很可能是一个bug。