chore(buglog): bug-1867 fixed (e4bb492a); log bug-1870 (checkpoint marker never replicated)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Rongsong Shen 2026-09-26 09:55:24 +00:00
parent e4bb492ae6
commit 725301dd92
Signed by untrusted user: rshen
GPG key ID: 80533536B0EB651C

View file

@ -28089,9 +28089,9 @@
"id": "bug-1867",
"gitea_synced_status": "open",
"gitea_issue": 286,
"status": "open",
"status": "fixed",
"status_updated": "2026-09-26",
"status_note": "found while fixing bug-1754; needs a Job.exitCode capnp field + encode/decode, snapshot round-trip test",
"status_note": "e4bb492a: capnp Job.exitInfo (JobExitInfo) -- checkpoint encode/decode/restore carry exit_info. Live force-snapshot soak blocked by pre-existing bug-1870.",
"timestamp": "2026-09-26T03:33:15Z",
"error_message": "Controller job snapshot/checkpoint drops job.exit_info: the capnp Job struct (controller.capnp) has no exit-info field, so capnp_encode_job() never writes it and a job restored from a snapshot (rather than WAL replay) has exit_info NULL for both DONE/EXIT (FINISH) and failed (FAIL) jobs",
"file": "src/schema/controller.capnp",
@ -28159,6 +28159,29 @@
],
"occurrences": 1,
"last_seen": "2026-09-26T07:55:23Z"
},
{
"id": "bug-1870",
"status": "open",
"status_updated": "2026-09-26",
"status_note": "found while soak-verifying bug-1867; blocks live verification of snapshot restore",
"timestamp": "2026-09-26T09:55:09Z",
"error_message": "xce-test-ha --force-snapshot FAIL: 'could not submit 110 jobs to trigger a checkpoint' -- writes stall right after the first max-wal-records checkpoint. The primary's WAL holds a CHECKPOINT entry (plen 0) at the checkpoint LSN that no standby ever receives (primary ctrl-1: 109 JOB_SUBMIT, 110 CHECKPOINT, 111 JOB_SUBMIT; standbys stop at 109). Every later AppendEntries carries prevIdx=<checkpoint LSN>, standbys reply ae_reject_logmismatch, the primary marks catch-up and re-sends the last common entry forever: 'commit: async continuation deadline expired without commit', 'HA quorum lost: connected=0'.",
"file": "src/controller/persist.c (checkpoint marker append), src/controller/repl.c / config_repl.c (broadcast / catch-up)",
"root_cause": "Not yet root-caused. The checkpoint marker is appended to the local WAL (and consumes an LSN in the replicated log) without being broadcast to / streamed to standbys, so the log has a hole standbys can never fill. Reproduced on a565779d (baseline, 2026-09-26) and on the bug-1867 working tree -- independent of both. Repro: nix develop ./src --command bash .claude/skills/xce-test-ha/run-ha-soak.sh --force-snapshot <dir> (max-wal-records=100, wal-segment-bytes=4096).",
"fix": "",
"tags": [
"ha",
"replication",
"checkpoint",
"wal",
"force-snapshot",
"soak",
"livelock"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-09-26T09:55:09Z"
}
]
}