20e59d0b42
checkpoint: bug-851 root cause + raft TLA+ conformance spec family
...
Investigation & fixes (failover committed-job loss):
- root-cause bug-851 on an owned 3-node cluster: chaotic failover causes
silent committed-prefix divergence (WAL hdr.term always 0; two leaders
per term; no (term,lsn) reconcile). Evidence in repro-851/ + INVESTIGATION.
- live-validated fixes 848/849/850 (recovery-on-promotion, advertise real
applied_lsn, persist-layer contiguity guard); add waldump WAL inspector.
Specs (strict raft.tla conformance — library owns the log):
- TLA-gap-analysis.md: impl vs raft/raft.tla, gaps G1-G6.
- raft-log-replication, raft-commit-safety, raft-sim-conformance: extend
src/lib/raft to own log/commit/verification via callbacks (specs generated,
cross-spec review passed).
- ha-term-safety: controller-side adapter + config marker (R1-R7); design done.
- config-upgrade-snapshot: R8 descoped here (deps entity-bearing-snapshots, bug-857).
- roadmap + buglog (851/854/857) + .wolf knowledge updated.
2026-06-21 14:02:15 +00:00
06135954ff
chore: baseline snapshot — prior-session work + ha-consistency-invariants spec family
...
Pre-existing uncommitted work: ha-repl-hardening payload data plane (7.x),
heartbeat liveness fix (Req 1.3), connection-reuse ASAN fixes, doc cleanup.
New: ha-consistency-invariants umbrella (requirements/design/research) and
its four implementation sub-specs (specs generated via batch, cross-spec
review applied), steering roadmap + product.md Raft+CP decision.
2026-06-11 13:21:50 +00:00
cdd446fc17
docs(specs): gap-analysis validation pass across all 9 HA-family specs
...
Appended "Gap Analysis — Validation Pass (2026-06-09)" to each spec's
research.md with requirement-to-asset maps, status tags, and effort/risk.
Key outcomes:
- ha-repl-hardening: REOPENED with task series 7.1-7.7 — replication
payload data plane is missing (snapshot chunks and WAL catch-up ship
header-only; standbys converge on LSN without holding entity state)
- worker-join-refactor, resval-id-decoupling: marked implemented
(all criteria re-verified, full test suite green)
- buglog: 335/336 (scheduler dequeue, open), 337/338/339 (fixed in
previous commit); cerebrum Decision Log corrected (term-only vote
deny was recorded as intentional but was a regression)
2026-06-10 01:26:33 +00:00
fa66d1ba9c
finalize configuration replication
2026-06-09 16:40:13 +08:00
e31673dd88
chore: checkpoint all prior work for clean state
...
Captures all uncommitted work from ha-config-bootstrap,
ha-heartbeat-liveness, and associated spec/tooling updates:
- src: ha.c, ha.h, cluster.c, config_repl.c, myapp.c, raft.c —
heartbeat liveness, RDHUP integration, committing phase fixes
- tests: test_ha_role.c, test_config_repl.c, test_ha_rdhup_integration.c,
test_p1_integration.c, test_p3_hardening.c, scheduler test
- specs: election-iomgr-refactor, ha-heartbeat-liveness,
ha-peer-connection-reuse, raft-library (new); ha-config-bootstrap
and election-iomgr-refactor task/research updates
- tooling: .wolf/ state, ha/data cluster fixtures, raft/raft.tla,
src/build symlink, xce-build skill update
2026-06-04 13:04:16 +00:00
937605ec60
feat(raft-library): tasks 6.4 + 7 complete — all ASAN-clean, hooks verified, spec closed
2026-05-31 09:25:20 +00:00
fd9933c9d0
feat(raft-library): task 6.3 — delegate election dispatch to raft_* API in ha.c + cluster.c
2026-05-31 08:43:01 +00:00
8f0d2d55c3
feat(raft-library): task 6.2 — real raft callbacks in ha.c; fix double-free + dead stubs
2026-05-31 07:53:00 +00:00
b77525deb0
feat(raft-library): task 6.1 — raft_state_t field in ha_state_t, raft_init with no-op stubs
2026-05-31 07:20:15 +00:00
6bdf7edacf
feat(raft-library): task 5.4 — Groups F+G, 6 test cases (RDHUP failover + split-brain)
2026-05-31 07:05:45 +00:00
5c677bc52d
feat(raft-library): task 5.3 — Groups D+E 7 test cases; fix Req 6.3 on_cancel_timeout in decided path
2026-05-31 06:58:02 +00:00
0aa4c84bfe
feat(raft-library): task 5.2 — protocol Groups C+H, 11 test cases (eligible policy + persist)
2026-05-31 06:34:33 +00:00
389047194f
feat(raft-library): task 5.1 — protocol Groups A+B, 10 test cases (election + voted_for)
2026-05-31 06:26:52 +00:00
c1b07392df
feat(raft-library): task 4.2 — sim deliver/partition/timeout/start-all; 4 tests
2026-05-31 06:20:35 +00:00
d2e2c1ef8a
feat(raft-library): task 4.1 — sim data structures, raft_sim_init, dump_log; 2 tests
2026-05-31 06:11:34 +00:00
85a7e325a8
feat(raft-library): task 3.5 — election timeout, leader-lost, check-and-start; 6 tests
2026-05-31 06:02:29 +00:00
f81054930f
feat(raft-library): task 3.4 — raft_on_vote_reply quorum tracking; 6 tests + review fixes
2026-05-31 05:56:34 +00:00
e0bcb35554
feat(raft-library): task 3.3 — raft_on_vote_request 6-step decision; 10 tests
2026-05-31 05:44:34 +00:00
4955fa3805
feat(raft-library): task 3.2 — raft_start_election with single-node shortcircuit; 4 tests
2026-05-31 05:30:00 +00:00
1aa7db4583
feat(raft-library): task 3.1 — raft_init validation, state init, raft_snapshot; 12 tests
2026-05-31 05:18:42 +00:00
d109155a21
feat(raft-library): task 2.2 — raft_callbacks_t, raft_config_t, public API signatures
2026-05-31 05:03:04 +00:00
66c9810823
feat(raft-library): task 2.1 — raft_role_t, raft_state_t, raft_snapshot_t in raft.h
2026-05-31 04:56:49 +00:00
7f7de013b9
feat(raft-library): task 1.1 — build scaffold (raft/ files + meson wiring)
2026-05-31 04:51:42 +00:00