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:
parent
e4bb492ae6
commit
725301dd92
1 changed files with 25 additions and 2 deletions
|
|
@ -28089,9 +28089,9 @@
|
||||||
"id": "bug-1867",
|
"id": "bug-1867",
|
||||||
"gitea_synced_status": "open",
|
"gitea_synced_status": "open",
|
||||||
"gitea_issue": 286,
|
"gitea_issue": 286,
|
||||||
"status": "open",
|
"status": "fixed",
|
||||||
"status_updated": "2026-09-26",
|
"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",
|
"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",
|
"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",
|
"file": "src/schema/controller.capnp",
|
||||||
|
|
@ -28159,6 +28159,29 @@
|
||||||
],
|
],
|
||||||
"occurrences": 1,
|
"occurrences": 1,
|
||||||
"last_seen": "2026-09-26T07:55:23Z"
|
"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"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue