docs(controller-status): add Requirement 12 delta (primary election term/time)
Adds requirements, design, research, and tasks for reporting the term and wall-clock time the current primary was elected, including standby-side learned fidelity (mirroring the Req 10 pattern), following the existing controller-status spec's delta convention (Req 10/11). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RLSNJhNoULvVcUhXEFafQC
This commit is contained in:
parent
63de947305
commit
7556856e5c
5 changed files with 245 additions and 8 deletions
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"feature_name": "controller-status",
|
||||
"created_at": "2026-06-19T00:00:00Z",
|
||||
"updated_at": "2026-07-17T11:15:00Z",
|
||||
"updated_at": "2026-09-15T20:33:00Z",
|
||||
"language": "en",
|
||||
"phase": "implementation-complete",
|
||||
"phase": "tasks-generated",
|
||||
"approvals": {
|
||||
"requirements": {
|
||||
"generated": true,
|
||||
|
|
@ -25,11 +25,17 @@
|
|||
"notes": "ctrlstatus opcode + handler + all-roles dispatch gate + libxce any-node & authoritative reads + ctrlstatus command + wait-primary swap, all reviewed and committed; E2E-verified live (primary self-reports, standbys answer with answered-by, config SHA-256 checksum identical across nodes, authoritative wait-primary names the primary). E2E found+fixed the primaryName-from-vestigial-primary_host bug. Out-of-boundary upstream finding: libxce failover returns EINVAL on a dead-first-master (affects joblist equally) -> route to libxce-failover."
|
||||
},
|
||||
"delta": {
|
||||
"reopened_at": "2026-06-20T00:00:00Z",
|
||||
"reason": "Live E2E finding (2026-06-20): ctrlstatus answered by a standby reports committedLsn=0 / committedConfigVersion=0 while appliedLsn=38 — it reads the primary-only raw markers (persist.committed_lsn, ha->committed_config_tag) instead of the standby's learned committed position (ha->last_known_committed_lsn / last_known_committed_config_tag). Plus an observability gap: no responder timestamp to correlate a captured status against ctrl-N.log.",
|
||||
"new_requirements": "10 (off-primary committed-state fidelity), 11 (responder snapshot timestamp for log correlation)",
|
||||
"needs": "design + tasks regen for Req 10-11 only; prior tasks 1.1-5.1 remain implemented",
|
||||
"impl_status": "6.1-6.4 all implemented + reviewed + committed and complete. 6.4 (live-cluster E2E), previously blocked on the sandbox overlayfs fdatasync issue (bug-795), was VERIFIED 2026-07-02 on a real-fs (~/tmp, ext4) 3-node deploy per tasks.md's own Implementation Notes -- this field was stale until this validation pass corrected it."
|
||||
"reopened_at": "2026-09-15T00:00:00Z",
|
||||
"reason": "User enhancement request (2026-09-15): the xce_test ctrlstatus command should additionally report the term in which the current primary was elected and the wall-clock time at which it was elected, so operators can tell how long the current primary has served and correlate its election with a specific event in the logs. Standby-side fidelity is explicitly in scope (mirrors Req 10's off-primary fidelity pattern): a standby that already knows the current primary's identity (Req 2.3) must report the primary's learned election term/time, not an unset or stale local value.",
|
||||
"new_requirements": "12 (current primary's election term and time)",
|
||||
"needs": "design + tasks regen for Req 12 only; prior tasks 1.1-6.4 (Req 1-11) remain implemented",
|
||||
"impl_status": "not started",
|
||||
"prior_delta": {
|
||||
"reopened_at": "2026-06-20T00:00:00Z",
|
||||
"reason": "Live E2E finding (2026-06-20): ctrlstatus answered by a standby reports committedLsn=0 / committedConfigVersion=0 while appliedLsn=38 — it reads the primary-only raw markers (persist.committed_lsn, ha->committed_config_tag) instead of the standby's learned committed position (ha->last_known_committed_lsn / last_known_committed_config_tag). Plus an observability gap: no responder timestamp to correlate a captured status against ctrl-N.log.",
|
||||
"new_requirements": "10 (off-primary committed-state fidelity), 11 (responder snapshot timestamp for log correlation)",
|
||||
"impl_status": "6.1-6.4 all implemented + reviewed + committed and complete, validated GO on 2026-07-17 (see validate_impl below)."
|
||||
}
|
||||
},
|
||||
"validate_impl": {
|
||||
"decision": "GO",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue