dumbmatter
dumbmatter

Reputation: 9663

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

I'm getting this error message intermittently within a relatively large project at seemingly arbitrary times (which makes me suspect a race condition somewhere...), so I unfortunately don't have a minimal example illustrating this problem as I do not understand the root cause. Basically, sometimes I get an error signal where event.target.webkitErrorMessage is "Internal error checking key existence". But I don't really understand what this error message is even supposed to mean.

Googling for this phrase returns only 7 results (although it will be more once Google and others find this question). These results are all either Chromium source code or bug reports about adding more detailed error messages to Chromium. As I am not intimately familiar with Chromium's IndexedDB backend implementation, one thing I'm struggling to understand is what this error message means in terms of frontend JavaScript code. For instance, what kinds of JavaScript mistakes can lead to that error message?

The code in question seems to work fine in Firefox, FWIW.

EDITS BELOW

I also, more rarely, get null returned as a cursor in response to an openCursor request for a key that I know is a real key. This is also inconsistent - it happens for different keys and rarely. And it's also only in Chrome. Very bizarre.

And I'm not sure if it's relevant, but this all happens within a large transaction with many updates in two object stores (these are the ones leading to the null openCursor problems) and many adds in another object store (this seems to be the source of the "Internal error checking key existence" error). I will try to make a minimal example of this and investigate further, but regardless of how that turns out, I'd still like to know the answer to my original question, which is what specifically "Internal error checking key existence" means.

ANOTHER EDIT

After playing around some more, I ran into another weird transient error message, "Internal error: backing store error performing put/add". I'd also be curious about what that implies about my JavaScript.

Also, I validated that all of these problems are new to Chrome 26 (and remain in Chrome 27). Downgrading to Chrome 25 makes all these problems disappear... so maybe this is all just from some bug in Chrome...

ONE MORE EDIT

All of these problems seem to only happen in Linux (I'm using Ubuntu 12.10). In a Windows XP VM with Chrome 26, I can't reproduce any of these errors. I submitted a bug report as it's becoming increasingly clear that this is all due to some bug, but I'm not sure if I've narrowed down the issue enough to help find a solution.

Upvotes: 2

Views: 5731

Answers (1)

dumbmatter
dumbmatter

Reputation: 9663

As I mentioned in an edit to the question, I submitted a bug report. It has seemingly been resolved in Chrome 28. So anyone experiencing this problem in older versions of Chrome, just upgrade to the unstable version or wait a couple months for Chrome 28 to be stable. And if anyone gets errors like this in Chrome 28 or higher, it's likely a bug.

Upvotes: 1

Related Questions