talex5 / cuekeeper

Browser-based GTD (TODO list) system. No server needed.
http://roscidus.com/blog/blog/2015/04/28/cuekeeper-gitting-things-done-in-the-browser/
GNU Lesser General Public License v2.1
290 stars 23 forks source link

Sometimes fails with AbortError on Safari #9

Closed talex5 closed 9 years ago

talex5 commented 9 years ago

If you have CueKeeper open in two windows, making a change will often cause one of them to fail with IndexedDB transaction (RO) failed: AbortError: (no message) (error code 0).

I've done some testing on @avsm's Mac mini (thanks!) and can now reproduce the error with a few lines of JavaScript:

http://test.roscidus.com/static/idb_reads.html

The page will:

  1. Open a test database, creating a single key=value pair if it doesn't exist.
  2. Attempt to read the value of the key ten times, once per second.

If you open this in two windows in Safari at once, one of them will likely fail with AbortError. I've reported it, but if they don't fix it quickly we might need to introduce some kind of random back-off-and-retry on abort.