Cover WAL and checkpoint crash boundaries #42

Merged
ober merged 6 commits from feat/wal-checkpoint-faults into main 2026-09-19 17:55:58 -04:00
Owner

Summary

  • add deterministic fault injection at WAL header, record-frame, commit-marker, flush, file-fsync, and directory-fsync boundaries
  • add deterministic checkpoint publication faults before/after WAL creation, temporary image write/fsync, main rename/directory fsync, and WAL removal
  • verify incomplete buffered WAL transactions are ignored while flushed committed transactions remain replayable
  • verify recovery retains the old generation before WAL creation and restores the committed generation after durable WAL publication
  • advance the version to 0.19.0 and document the new crash-boundary evidence

This packet is independent of transaction pull request #40 (#40) and CSV pull request #41 (#41), but its version is intentionally ordered after both.

Verification

  • make verify
  • make binary-smoke
  • focused WAL and storage unit suites
  • changed-line security scan (only the two pre-existing direct Chez imports)
  • git diff --check
## Summary - add deterministic fault injection at WAL header, record-frame, commit-marker, flush, file-fsync, and directory-fsync boundaries - add deterministic checkpoint publication faults before/after WAL creation, temporary image write/fsync, main rename/directory fsync, and WAL removal - verify incomplete buffered WAL transactions are ignored while flushed committed transactions remain replayable - verify recovery retains the old generation before WAL creation and restores the committed generation after durable WAL publication - advance the version to 0.19.0 and document the new crash-boundary evidence This packet is independent of transaction pull request #40 (https://git.jerboa.sh/ober/jerboa-duckdb/pulls/40) and CSV pull request #41 (https://git.jerboa.sh/ober/jerboa-duckdb/pulls/41), but its version is intentionally ordered after both. ## Verification - `make verify` - `make binary-smoke` - focused WAL and storage unit suites - changed-line security scan (only the two pre-existing direct Chez imports) - `git diff --check`
test: cover WAL and checkpoint crash boundaries
All checks were successful
version-policy / required (pull_request) Successful in 3m47s
required-ci / required (pull_request) Successful in 8m1s
a0d0fb996d
feat: stream CSV copy with reader options
Some checks failed
version-policy / required (pull_request) Successful in 3m46s
required-ci / required (pull_request) Failing after 9m6s
4a1d1f8de1
test: update CLI smoke version
All checks were successful
version-policy / required (pull_request) Successful in 3m46s
required-ci / required (pull_request) Successful in 8m29s
91287762b3
Merge main and resolve CSV feature conflicts
Some checks failed
required-ci / required (pull_request) Failing after 3m43s
version-policy / required (pull_request) Successful in 3m43s
21b9c959e8
Retrigger CI after runner-side failure
Some checks failed
required-ci / required (pull_request) Failing after 3m44s
version-policy / required (pull_request) Successful in 3m43s
c1d1808916
Stack WAL recovery feature after CSV changes
Some checks failed
required-ci / required (pull_request) Failing after 3m44s
version-policy / required (pull_request) Successful in 3m44s
8a3cf26794
Bootstrap pinned Jerboa toolchain in CI
Some checks failed
version-policy / required (pull_request) Successful in 3m44s
required-ci / required (pull_request) Failing after 5m7s
6eb1db2e51
Merge remote-tracking branch 'origin/feat/csv-incremental-options' into feat/wal-checkpoint-faults
Some checks failed
version-policy / required (pull_request) Successful in 3m46s
required-ci / required (pull_request) Failing after 5m12s
7feef13435
Make close-race assertion platform-neutral
Some checks failed
required-ci / required (pull_request) Failing after 5m26s
version-policy / required (pull_request) Successful in 3m45s
03b9b03fe1
Merge remote-tracking branch 'origin/feat/csv-incremental-options' into feat/wal-checkpoint-faults
Some checks failed
version-policy / required (pull_request) Successful in 3m45s
required-ci / required (pull_request) Failing after 5m13s
3d654e0b2f
Make native race smoke self-contained
Some checks failed
version-policy / required (pull_request) Successful in 3m44s
required-ci / required (pull_request) Failing after 7m28s
363975ce4e
Merge remote-tracking branch 'origin/feat/csv-incremental-options' into feat/wal-checkpoint-faults
Some checks failed
version-policy / required (pull_request) Successful in 3m45s
required-ci / required (pull_request) Failing after 7m31s
5f3a053eaa
Build complete FreeBSD standalone binaries
All checks were successful
version-policy / required (pull_request) Successful in 3m44s
required-ci / required (pull_request) Successful in 7m0s
37bdd45520
Merge remote-tracking branch 'origin/feat/csv-incremental-options' into feat/wal-checkpoint-faults
All checks were successful
version-policy / required (pull_request) Successful in 3m44s
required-ci / required (pull_request) Successful in 7m6s
6e752fa236
ober merged commit 58e10caa7b into main 2026-09-19 17:55:58 -04:00
ober referenced this pull request from a commit 2026-09-19 17:56:00 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ober/jerboa-duckdb!42
No description provided.