Repository navigation
filesystem: diagnose ACK accounting mismatches - #1343
Conversation
Signed-off-by: bootjp <contact@bootjp.me>
Signed-off-by: bootjp <contact@bootjp.me>
Signed-off-by: bootjp <contact@bootjp.me>
Signed-off-by: bootjp <contact@bootjp.me>
Signed-off-by: bootjp <contact@bootjp.me>
|
Caution Review failedThe pull request is closed. Walkthrough
Merge Risk:
|
Signed-off-by: bootjp <contact@bootjp.me>
Signed-off-by: bootjp <contact@bootjp.me>
Signed-off-by: bootjp <contact@bootjp.me>
Signed-off-by: bootjp <contact@bootjp.me>
Signed-off-by: bootjp <contact@bootjp.me>
Signed-off-by: bootjp <contact@bootjp.me>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Summary
Reproduction
The strict SQLite Jepsen workload reproduced the ACK accounting violation in run 40458354386 with 512 keys, rate 0.75, concurrency 8, and a five-minute workload. The job concluded success, but its uploaded n3 server log contains 3,109 ACK accounting warnings. The first is at 06:03:33 UTC, sequence 209: retained bytes 5,386, reservation 5,514, generation 5. The deficit is exactly 128 bytes, equal to one generation fence reservation. Later warnings retain the same 128-byte deficit, including operations at generation 1.
Run 40459386710 with 128 keys also concluded success; its server log showed quota warnings but no ACK accounting violation. Longer runs remain in progress.
Investigation status
The failure is reproduced, but the first write that loses 128 bytes and the root cause are not yet identified. A controlled fence/ACK race passed 30 runs on all three backends; that race alone does not explain the observed mismatch. This PR adds diagnostics and coverage but does not repair the accounting invariant. A green Jepsen checker cannot currently establish that the server-side ACK invariant held.
Verification
Risk
Diagnostic errors include numeric session counters and sequence numbers. The observed accounting violation still requires a root-cause fix.
Author: bootjp
Summary by CodeRabbit