Skip to content

Document why SupportsHoldingAnAppendOpen stays off (fisher#519) - #524

Merged
jeremydmiller merged 1 commit into
mainfrom
stoat/nov-5-releases/fisher-519-finish
Nov 5, 2026
Merged

jeremydmiller merged 1 commit into
mainfrom
stoat/nov-5-releases/fisher-519-finish

Conversation

@jeremydmiller

Copy link
Copy Markdown
Member

Fixes #519

Everything else in #519 is already on main (#520 compliance additions + suite inventory, #523 tombstoned natural keys). This PR settles the last seam, AsyncDaemonCompliance.an_in_flight_append_below_committed_events_is_not_stepped_over.

It cannot be implemented honestly on SQLite, so SupportsHoldingAnAppendOpen stays false. The fact holds an append open on stream A, then commits stream B through the same store, and requires A's sequence to be allocated-but-uncommitted below B's.

  • Allocating the sequence is a write, and a write holds the file's one write lock until commit, so B's commit blocks behind A (measured earlier: 3 min, then lock failure).
  • WAL still admits one writer. DEFERRED vs IMMEDIATE only changes when the lock is taken (at the first write, the one we need held).
  • A second database file would make the held row invisible to the store/daemon under test, so the fact would assert nothing.

The state the fact guards against cannot exist here (see FisherHighWaterDetector, high_water_contiguity_audit). Change is a comment on the fixture recording this; no behaviour change. Fisher.Tests green on net10.0 and net9.0 (2902 passed, 23 skipped each); enrolled counts unchanged.

🤖 Generated with Claude Code

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@jeremydmiller

Copy link
Copy Markdown
Member Author

Note for #519: the flag is left off for the reason above, which #519's done criteria allow.

@jeremydmiller
jeremydmiller merged commit 5f81e41 into main Nov 5, 2026
3 checks passed
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.

Take the JasperFx 2.100 compliance additions: tombstoned natural keys, in-flight appends, tenant switching and the suite inventory

1 participant