JVM sqlite driver: SQLITE_BUSY surfaces as a crash on concurrent writers — set busy_timeout #54
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found by the #47 demo e2e: PersistentConnectionDriver (D25) gives each thread its own connection to the same file with busy_timeout=0, so a public-op write racing the reducer's transaction throws SQLITE_BUSY (seen: SendQueue.send enqueue racing sync commit). Public operations must not crash on internal lock contention (CR-17 spirit). Fix: PRAGMA busy_timeout on each fresh connection in the JVM driver; Android's framework driver already serializes writes. Concurrency hammer test in katrix-store-sqlite.