docs(kiro): close 3 stalled specs whose follow-up work already landed
ha-config-bootstrap, scheduler-controller-msg-gap, and resval-id-decoupling
were the only 3 specs (of ~40) carrying a nonstandard status:"active"
field, each paired with a note about residual gap-audit findings that
never got refreshed once later work actually resolved them:
- ha-config-bootstrap: all 3 known deviations resolved/superseded
(redirect fields -> libxce-failover; WAL majority-commit scope -> the
deliberate wal_classify() WAIT/RETAIN design; commit-timeout durability
-> bug-661 fix via ha-commit-durability, live-reverified 2026-07-18).
One narrower, genuinely new gap found in passing (OP_upgradeConfig
replies lack redirect wiring, admin-config-tool task 6.3) is flagged
in the note for a future spec, not folded back into this one.
- scheduler-controller-msg-gap: both open items (sched_pend_update_killer
leak, test coverage) were fixed via bug-765 across 4 commits on
2026-06-19, verified directly in current scheduler.c and the test
suite -- the note just never caught up.
- resval-id-decoupling: not just an investigation -- the recommended
name-keyed collect_resval() fix shipped one day after the spec was
created (commit d47b3375), verified as the sole implementation left
in current code. Description no longer named the deleted function;
status:"active" flipped to "closed" and a note added to match its
sibling specs' convention.
All three verified via direct code/commit/buglog inspection (not just
trusting stale spec text) before closing. status:"active" -> "closed"
in all three; phase stays "implemented" (already correct).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
1faa974e71
commit
5a08dac57b
3 changed files with 11 additions and 10 deletions
|
|
@ -3,9 +3,9 @@
|
|||
"description": "Replace LSF-style priority election with Raft-style quorum voting, add majority-commit WAL and config replication, establish persistent control channels, and harden the controller startup sequence for full CP high-availability.",
|
||||
"phase": "implemented",
|
||||
"created_at": "2026-05-27T01:24:00-07:00",
|
||||
"updated_at": "2026-05-27T17:35:00-07:00",
|
||||
"updated_at": "2026-08-16T04:30:00-07:00",
|
||||
"language": "en",
|
||||
"status": "active",
|
||||
"status": "closed",
|
||||
"approvals": {
|
||||
"requirements": {
|
||||
"generated": true,
|
||||
|
|
@ -20,5 +20,5 @@
|
|||
"approved": true
|
||||
}
|
||||
},
|
||||
"note": "All tasks 1.x-11.x done (verified 2026-06-09 gap analysis). Known deviations: redirect fields never populated (dead end-to-end, successor-spec gated), WAL majority-commit covers WAL_JOB_SUBMIT only (sync-append coverage in ha-repl-hardening), commit timeout silently degrades (CP-vs-availability operator decision needed)."
|
||||
"note": "CLOSED 2026-08-16. All 3 known deviations from the 2026-06-09 gap analysis resolved or deliberately superseded, confirmed by this spec's own 2026-06-18 re-audit (research.md) plus a fresh cross-check: (1) redirect fields never populated -- closed by libxce-failover's fill_redirect_reply() (join.c:28), validate-impl GO 2026-07-18, explicitly closing this spec's Req 7 gap. Caveat: OP_upgradeConfig replies still lack redirect wiring, a narrower still-open gap found by admin-config-tool task 6.3 (2026-08-16) -- NOT a reopening of this deviation, since Req 7 only ever covered libxce's generic retry path, never OP_upgradeConfig specifically; track it under whichever spec next touches xceadmin/config-push. (2) WAL majority-commit covers WAL_JOB_SUBMIT only -- superseded by the deliberate wal_classify() WAIT/RETAIN scheme (ha-commit-barrier-rollout/ha-consistency-invariants, complete 2026-07-13); not a coverage gap, an intentional latency-driven design, not ha-repl-hardening as originally noted. (3) commit timeout silently degrades -- resolved as bug-661 via ha-commit-durability (17/17 tasks, validate-impl GO, re-verified live 2026-07-18: 8/8 rolling+cold-restart soak rounds, zero job loss)."
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
{
|
||||
"feature_name": "resval-id-decoupling",
|
||||
"description": "investigate a better solution to pass resource val from controller to scheduler/api server, the current solution has a very strong assumption that the idx/id of resource in controller and scheduler should keep the same, but this assumption may be too strong, the key function is collect_resval_with_idx() in src/controller/dataex.c",
|
||||
"description": "Investigated the controller-to-scheduler/apiserver resource-value transport, which previously assumed idx/id parity between controller and scheduler resource arrays (collect_resval_with_idx(), src/controller/dataex.c) -- a silent-corruption risk on divergent registration order. Recommended and shipped a name-keyed replacement.",
|
||||
"phase": "implemented",
|
||||
"created_at": "2026-05-12T06:52:00-07:00",
|
||||
"updated_at": "2026-06-09T17:45:00Z",
|
||||
"updated_at": "2026-08-16T11:35:00Z",
|
||||
"language": "en",
|
||||
"status": "active",
|
||||
"status": "closed",
|
||||
"approvals": {
|
||||
"requirements": {
|
||||
"generated": true,
|
||||
|
|
@ -19,5 +19,6 @@
|
|||
"generated": true,
|
||||
"approved": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"note": "CLOSED 2026-08-16. Recommended fix was implemented, not just proposed -- collect_resval_with_idx() replaced by name-keyed collect_resval() (commit d47b3375, 2026-05-13, landed one day after this spec was created). Verified in current code: zero remaining callers of the old idx-keyed function; controller.capnp's Worker.resvals/Conf4Sched.resvals are List(NameValue); scheduler resolves via key_find() by name (scheduler.c, schedobj.c). Related hazard bug-335 (UPDATE_RESVALS hardcoded slot 0) closed 2026-06-10. research.md's own Gap Re-Audit (2026-06-18): 21/23 EARS requirements met, functionally complete. 2 SHOULD-level residuals left as separate small cleanup, not a spec: delete the now-dead ValueWithIdx/xce_val_with_idx_t type (zero real callers); add one regression test for divergent controller/scheduler registration order (EARS-R6-1)."
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@
|
|||
"description": "Analyze the codebase to find gaps in the scheduler's handling of controller messages \u2014 missing message types, unhandled edge cases, or incomplete message processing paths",
|
||||
"phase": "implemented",
|
||||
"created_at": "2026-05-11T01:34:00-07:00",
|
||||
"updated_at": "2026-05-11T19:30:00-07:00",
|
||||
"updated_at": "2026-08-16T04:30:00-07:00",
|
||||
"language": "en",
|
||||
"status": "active",
|
||||
"status": "closed",
|
||||
"approvals": {
|
||||
"requirements": {
|
||||
"generated": true,
|
||||
|
|
@ -20,5 +20,5 @@
|
|||
"approved": true
|
||||
}
|
||||
},
|
||||
"note": "Bugs 335/336 fixed 2026-06-10. Memory leaks in sched_pend_update_killer and test coverage gaps remain documented. Scheduler 15/15 tests green."
|
||||
"note": "CLOSED 2026-08-16. Both open items resolved: sched_pend_update_killer leak fixed in commit 93124c56 (2026-06-19, bug-765 G-3) -- verified current scheduler.c:394-460 correctly frees all 5 payload types. Test coverage gap substantially closed in commit 276e26c3 (bug-765 G-6) -- added test_handlers.c (6 tests) + test_job_update.c (10 tests); msg-gap-relevant suites now 31/31 (the prior '15/15' predates these files). Bugs 335/336 confirmed fixed 2026-06-10. 3 low-value residuals remain individually documented in tasks.md's Implementation Notes (9.2 -ENOMEM fault-injection, 9.6 dormant worker-resvals apply path, 9.9 log-capture-gated WARN test) -- non-blocking, not worth standalone tracking."
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue