# fix\(shared\): an outside reader pinning the WAL no longer holds every write · pingdotgg/t3code

[View on GitCafe](https://git.cafe/pingdotgg/t3code/commit/26d95959db9d16d723222b1f7de77b78eb5c14a4)

Repository: [pingdotgg/t3code](https://git.cafe/pingdotgg/t3code)

Visibility: public

Requested revision: 26d95959db9d16d723222b1f7de77b78eb5c14a4

Requested commit: 26d95959db9d16d723222b1f7de77b78eb5c14a4

Commit: 26d95959db9d16d723222b1f7de77b78eb5c14a4

Tree: 0e4cde6d86169ea506fe59947fdc74fe0ca8856d

Author: Julius Marminge

Committer: Julius Marminge

## Message

```
fix(shared): an outside reader pinning the WAL no longer holds every write

Past the 10,000-frame ceiling, the checkpoint worker held writes until the WAL was
checkpointed and truncated. An outside read transaction (sqlite3, a backup) can stop
both indefinitely, so every server write waited for the reader to end.

The worker now admits writes when holding them cannot help: when a forced PASSIVE
checkpoint stops short of the frames it saw, or when TRUNCATE fails under the gate.
The ceiling becomes a pending verdict the worker clears for each generation, so
writes past it still wait for one checkpoint and truncate attempt.

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

```

## Parents

- [9ab6ed54f83f376dce5ed55195f415339259747e](https://git.cafe/pingdotgg/t3code/commit/9ab6ed54f83f376dce5ed55195f415339259747e?format=markdown)

[Source at this commit](https://git.cafe/pingdotgg/t3code/tree/26d95959db9d16d723222b1f7de77b78eb5c14a4?format=markdown)
