CI flake recurrence: ConcurrentWriterTest SQLITE_BUSY past busy_timeout=30s (run #166) #65
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?
Run #166 failed concurrent_writers_never_surface_sqlite_busy with SQLITE_BUSY despite e938bf5's 30s busy_timeout (which itself followed run #158's escape past 5s). SQLite's busy handler is not a fair queue: under sustained contention (8 writers x 50 page-encrypted transactions on the DinD disk, cargo builds eating CPU concurrently) a tail writer can starve past any finite timeout, so raising it again is whack-a-mole. CR-17 spirit (#54): public ops must wait, never crash. Candidate fix: serialize outermost transactions through a fair in-process lock in PersistentConnectionDriver (matches the Android framework driver's serialized-writes posture noted in the #54 D-entry; busy_timeout stays as the cross-process backstop). WAL remains rejected per the D-log.