Skip to content

fix: serialize SQLite workflow writes - #24

Merged
cmilesio merged 1 commit into
mainfrom
fix/sqlite-write-serialization
Sep 7, 2026
Merged

fix: serialize SQLite workflow writes#24
cmilesio merged 1 commit into
mainfrom
fix/sqlite-write-serialization

Conversation

@cmilesio

@cmilesio cmilesio commented Sep 7, 2026

Copy link
Copy Markdown
Member

What

Serialize transactional workflow writes within each SQLite-backed store. Apply the same lock to chain advancement, chain failure, batch creation, batch settlement, and pruning so every workflow transaction follows one SQLite write policy.

Why

The SQLite 1.58 migration passed PR CI, but two consecutive merge-commit runs exposed SQLITE_BUSY during 32-way terminal batch settlement under the race detector. SQLite permits one writer, and competing deferred transactions can still be rejected after the configured busy timeout. Per-store serialization reflects that database constraint and preserves successful concurrent queue behavior without changing public APIs, configuration, persisted data, the minimum Go version, or non-SQLite drivers.

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@cmilesio
cmilesio merged commit e888ab5 into main Sep 7, 2026
32 checks passed
@cmilesio
cmilesio deleted the fix/sqlite-write-serialization branch September 7, 2026 08:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants