myxce/.wolf/buglog.json
Rongsong Shen 181688498e chore(ha-term-safety): record env unblock — flake refreshed, controller suite green
bug-918 resolved (c-capnproto flake repin); clean controller build passes full
suite (Ok:1 Fail:0). Earlier wal_catchup failures were a stale incremental-build
artifact, not fsync/regression. Validation gate reliable for remaining tasks.
2026-06-22 03:54:56 +00:00

15130 lines
No EOL
544 KiB
JSON

{
"version": 1,
"bugs": [
{
"id": "bug-001",
"timestamp": "2026-05-21T07:38:53.760Z",
"error_message": "Significant refactor of ",
"file": "CLAUDE.md",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 23\u219230 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-21T07:38:53.760Z"
},
{
"id": "bug-002",
"timestamp": "2026-05-21T07:46:54.198Z",
"error_message": "Incorrect value in code",
"file": ".claude/skills/kiro-spec-init/SKILL.md",
"root_cause": "Had `.kiro/settings/templates/specs/init.json`",
"fix": "Changed to `templates/specs/init.json`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 12,
"last_seen": "2026-05-21T07:48:24.177Z"
},
{
"id": "bug-003",
"timestamp": "2026-05-21T07:57:57.180Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_config_repl.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 14\u219219 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-21T07:57:57.180Z"
},
{
"id": "bug-004",
"timestamp": "2026-05-21T07:58:54.673Z",
"error_message": "Wrong reference: g_tmpdir should be g_instdir",
"file": "src/controller/testsuite/test_config_repl.c",
"root_cause": "Used \"g_tmpdir\" instead of \"g_instdir\"",
"fix": "Changed g_tmpdir \u2192 g_instdir",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-05-21T07:59:00.347Z"
},
{
"id": "bug-005",
"timestamp": "2026-05-21T08:24:10.738Z",
"error_message": "Missing guard clause",
"file": "src/controller/config_repl.c",
"root_cause": "No early return/throw for edge case: rc == 0",
"fix": "Added guard clause: if (rc == 0)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-21T08:24:10.738Z"
},
{
"id": "bug-006",
"timestamp": "2026-05-21T08:30:20.719Z",
"error_message": "Significant refactor of ",
"file": "src/docs/config-replication-design.md",
"root_cause": "7 lines replaced/restructured",
"fix": "Rewrote 17\u219220 lines (7 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-21T08:30:20.719Z"
},
{
"id": "bug-007",
"timestamp": "2026-05-21T12:53:13.789Z",
"error_message": "Missing guard clause",
"file": "src/lib/request.c",
"root_cause": "No early return/throw for edge case: ep == NULL",
"fix": "Added guard clause: if (ep == NULL)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-21T12:53:13.789Z"
},
{
"id": "bug-008",
"timestamp": "2026-05-21T13:20:28.953Z",
"error_message": "Missing guard clause",
"file": "src/controller/config_repl.c",
"root_cause": "No early return/throw for edge case: getaddrinfo(host, port_str, &hints, &res",
"fix": "Added guard clause: if (getaddrinfo(host, port_str, &hints, &res)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-21T13:20:28.953Z"
},
{
"id": "bug-009",
"timestamp": "2026-05-21T13:42:53.395Z",
"error_message": "Significant refactor of ",
"file": "src/controller/config_repl.h",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 6\u21929 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-21T13:42:53.395Z"
},
{
"id": "bug-010",
"timestamp": "2026-05-21T13:43:03.953Z",
"error_message": "Significant refactor of ",
"file": "src/controller/config_repl.c",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 11\u21925 lines (5 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-21T13:43:03.953Z"
},
{
"id": "bug-011",
"timestamp": "2026-05-22T08:45:33.856Z",
"error_message": "Significant refactor of ",
"file": "src/docs/config-replication-impl-status.md",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 10\u219212 lines (4 removed) | Also: | `handle_config_request()` (primary handler) | \u2705 ; | `fetch_config_from_primary()` (standby fetch) | | Also: | `handle_upgrade_config()` | \u2705 Compiled, gated | ; | `push_config_to_standbys()` | \u26a0 Stub (returns 0)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-05-22T08:46:24.228Z"
},
{
"id": "bug-012",
"timestamp": "2026-05-22T09:18:14.674Z",
"error_message": "Significant refactor of ",
"file": "src/docs/config-replication-impl-status.md",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 17\u219221 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-22T09:18:14.674Z"
},
{
"id": "bug-013",
"timestamp": "2026-05-25T09:00:50.645Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 6\u21927 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-25T09:00:50.645Z"
},
{
"id": "bug-014",
"timestamp": "2026-05-25T10:34:21.916Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "6 lines replaced/restructured",
"fix": "Rewrote 13\u219224 lines (6 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-25T10:34:21.916Z"
},
{
"id": "bug-015",
"timestamp": "2026-05-25T10:34:43.964Z",
"error_message": "Significant refactor of ",
"file": "../../../../../claude/.claude/plans/prancy-herding-nest.md",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 4\u219210 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-25T10:34:43.964Z"
},
{
"id": "bug-016",
"timestamp": "2026-05-25T11:03:39.152Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 8\u21929 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-25T11:03:39.152Z"
},
{
"id": "bug-017",
"timestamp": "2026-05-25T11:05:06.112Z",
"error_message": "Missing error handling in send",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-25T11:05:06.112Z"
},
{
"id": "bug-018",
"timestamp": "2026-05-25T11:06:26.871Z",
"error_message": "Missing error handling in unknown",
"file": "../../../../../claude/.claude/plans/prancy-herding-nest.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-25T11:06:26.871Z"
},
{
"id": "bug-019",
"timestamp": "2026-05-25T11:06:52.401Z",
"error_message": "Significant refactor of ",
"file": "../../../../../claude/.claude/plans/prancy-herding-nest.md",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 23\u219240 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-25T11:06:52.401Z"
},
{
"id": "bug-020",
"timestamp": "2026-05-25T11:31:55.826Z",
"error_message": "Function not marked async",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-25T11:31:55.826Z"
},
{
"id": "bug-021",
"timestamp": "2026-05-25T11:32:18.221Z",
"error_message": "Missing error handling in types",
"file": "../../../../../claude/.claude/plans/prancy-herding-nest.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-25T11:32:18.221Z"
},
{
"id": "bug-022",
"timestamp": "2026-05-26T07:16:49.294Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "36 lines replaced/restructured",
"fix": "Rewrote 63\u219279 lines (36 removed) | Also: 6. **No simultaneous primaries**: Only one node ca; 7. **Majority-commit WAL replication (CP writes)** | Also: - `handle_request_vote()` handler on all peers; - Config tag + LSN comparison for vote decision",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-05-26T07:19:18.498Z"
},
{
"id": "bug-023",
"timestamp": "2026-05-26T07:17:31.980Z",
"error_message": "Missing guard clause",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "No early return/throw for edge case: req->term < my_term",
"fix": "Added guard clause: if (req->term < my_term)",
"tags": [
"auto-detected",
"guard-clause",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-26T07:17:31.980Z"
},
{
"id": "bug-024",
"timestamp": "2026-05-26T07:18:36.066Z",
"error_message": "Missing guard clause",
"file": "../../../../../claude/.claude/plans/prancy-herding-nest.md",
"root_cause": "No early return/throw for edge case: n_peers == 2",
"fix": "Added guard clause: if (n_peers == 2)",
"tags": [
"auto-detected",
"guard-clause",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-26T07:18:36.066Z"
},
{
"id": "bug-025",
"timestamp": "2026-05-26T07:26:22.871Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 11\u219228 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-26T07:26:22.871Z"
},
{
"id": "bug-026",
"timestamp": "2026-05-26T07:26:48.363Z",
"error_message": "Wrong return value",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "Was returning: 1;",
"fix": "Now returns: 1; // single-node: always primary",
"tags": [
"auto-detected",
"return-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-26T07:26:48.363Z"
},
{
"id": "bug-027",
"timestamp": "2026-05-26T07:27:34.925Z",
"error_message": "Wrong condition in logic",
"file": "../../../../../claude/.claude/plans/prancy-herding-nest.md",
"root_cause": "Condition was: if (n_peers == 2)",
"fix": "Changed to: if (n_peers == 1)",
"tags": [
"auto-detected",
"logic-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-26T07:27:34.925Z"
},
{
"id": "bug-028",
"timestamp": "2026-05-26T07:28:37.278Z",
"error_message": "Significant refactor of ",
"file": "../../../../../claude/.claude/plans/prancy-herding-nest.md",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 13\u219228 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-26T07:28:37.278Z"
},
{
"id": "bug-029",
"timestamp": "2026-05-26T07:29:11.741Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "Had `main.c`",
"fix": "Changed to `-EINVAL`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-26T07:29:11.741Z"
},
{
"id": "bug-030",
"timestamp": "2026-05-26T08:52:54.129Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "11 lines replaced/restructured",
"fix": "Rewrote 17\u219228 lines (11 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-26T08:52:54.129Z"
},
{
"id": "bug-031",
"timestamp": "2026-05-26T09:07:01.238Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 28\u219245 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-26T09:07:01.238Z"
},
{
"id": "bug-032",
"timestamp": "2026-05-26T09:07:23.015Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "Had `-EINVAL`",
"fix": "Changed to `--vcpus N`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-26T09:07:23.015Z"
},
{
"id": "bug-033",
"timestamp": "2026-05-26T09:07:46.892Z",
"error_message": "Significant refactor of ",
"file": "../../../../../claude/.claude/plans/prancy-herding-nest.md",
"root_cause": "13 lines replaced/restructured",
"fix": "Rewrote 22\u219235 lines (13 removed) | Also: **Files**: `src/controller/main.c`, `src/lib/netio; 1. **Peer-count validation in `main.c`** (before `",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-05-26T09:08:37.743Z"
},
{
"id": "bug-034",
"timestamp": "2026-05-26T09:23:02.818Z",
"error_message": "Missing guard clause",
"file": "../../../../../claude/.claude/plans/prancy-herding-nest.md",
"root_cause": "No early return/throw for edge case: rc == 0",
"fix": "Added guard clause: if (rc == 0)",
"tags": [
"auto-detected",
"guard-clause",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-26T09:23:02.818Z"
},
{
"id": "bug-035",
"timestamp": "2026-05-26T09:46:12.902Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "Had `sysconf(_SC_NPROCESSORS_ONLN)`",
"fix": "Changed to ` when not specified. Values `",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-26T09:46:12.902Z"
},
{
"id": "bug-036",
"timestamp": "2026-05-26T09:48:08.636Z",
"error_message": "Significant refactor of ",
"file": "../../../../../claude/.claude/plans/prancy-herding-nest.md",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 4\u21927 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-26T09:48:08.636Z"
},
{
"id": "bug-037",
"timestamp": "2026-05-26T10:08:57.389Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 9\u219211 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-26T10:08:57.389Z"
},
{
"id": "bug-038",
"timestamp": "2026-05-26T10:09:32.424Z",
"error_message": "Missing guard clause",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "No early return/throw for edge case: c->myconf->config_version_tag != 0",
"fix": "Added guard clause: if (c->myconf->config_version_tag != 0)",
"tags": [
"auto-detected",
"guard-clause",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-26T10:09:32.424Z"
},
{
"id": "bug-039",
"timestamp": "2026-05-26T10:09:57.711Z",
"error_message": "Wrong return value",
"file": "../../../../../claude/.claude/plans/prancy-herding-nest.md",
"root_cause": "Was returning: 0 (standby); fresher peer runs its own election",
"fix": "Now returns: `-ENODATA`. Not a normal runtime path.",
"tags": [
"auto-detected",
"return-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-26T10:09:57.711Z"
},
{
"id": "bug-040",
"timestamp": "2026-05-26T10:10:18.874Z",
"error_message": "Significant refactor of ",
"file": "../../../../../claude/.claude/plans/prancy-herding-nest.md",
"root_cause": "18 lines replaced/restructured",
"fix": "Rewrote 29\u219234 lines (18 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-26T10:10:18.874Z"
},
{
"id": "bug-041",
"timestamp": "2026-05-26T10:10:40.149Z",
"error_message": "Incorrect value in code",
"file": "../../../../../claude/.claude/plans/prancy-herding-nest.md",
"root_cause": "Had `test_fetch_config_from_best_peer`",
"fix": "Changed to `test_handle_config_request_standbys_serve_config`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-26T10:10:40.149Z"
},
{
"id": "bug-042",
"timestamp": "2026-05-26T11:35:44.097Z",
"error_message": "Function not marked async",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-05-26T11:39:15.673Z"
},
{
"id": "bug-043",
"timestamp": "2026-05-26T11:40:35.979Z",
"error_message": "Significant refactor of ",
"file": "../../../../../claude/.claude/plans/prancy-herding-nest.md",
"root_cause": "8 lines replaced/restructured",
"fix": "Rewrote 13\u219229 lines (8 removed) | Also: 8. **Register OP_requestVote handler** in cluster'; switch at line ~195): since vtaskmgr and iomgr run",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-05-26T11:41:16.284Z"
},
{
"id": "bug-044",
"timestamp": "2026-05-26T13:07:48.902Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "9 lines replaced/restructured",
"fix": "Rewrote 13\u219260 lines (9 removed) | Also: 3. **Replace timestamp polling with `EPOLLRDHUP`**; is replaced by an epoll event handler. On `EPOLLRD | Also: - **Split vote recovery**: After failing quorum, s; (using existing `jitter_seed` xorshift64), retry o",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-05-26T13:09:05.649Z"
},
{
"id": "bug-045",
"timestamp": "2026-05-26T13:09:48.347Z",
"error_message": "Significant refactor of ",
"file": "../../../../../claude/.claude/plans/prancy-herding-nest.md",
"root_cause": "8 lines replaced/restructured",
"fix": "Rewrote 8\u219234 lines (8 removed) | Also: 2. **Replace `ha_check_heartbeat_nocluster()` with; - On `EPOLLRDHUP` from `primary_ctrl_fd`: **close ",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-05-26T13:10:03.239Z"
},
{
"id": "bug-046",
"timestamp": "2026-05-26T13:51:32.274Z",
"error_message": "Missing error handling in unknown",
"file": "../../../../../claude/.claude/plans/prancy-herding-nest.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: - [ ] `test_heartbeat_carries_committed_lsn`: heartbeat payl; `committed_lsn`; standby updates `ha.last_known_committed_ls",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-05-26T13:51:57.860Z"
},
{
"id": "bug-047",
"timestamp": "2026-05-26T13:52:49.044Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: // Catch-up gate (Clarification 6): behind nodes must not in; if (c->ha.in_catch_up) {",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-05-26T13:53:15.121Z"
},
{
"id": "bug-048",
"timestamp": "2026-05-27T03:02:34.912Z",
"error_message": "Missing error handling in unknown",
"file": "../../../../../claude/.claude/plans/prancy-herding-nest.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: name, key, applied_lsn, and config_tag immediately after TCP; - [ ] `test_ctrl_hello_registers_standby_in_repl`: handle_ct",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-05-27T03:04:02.739Z"
},
{
"id": "bug-049",
"timestamp": "2026-05-27T03:03:26.016Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-27T03:03:26.016Z"
},
{
"id": "bug-050",
"timestamp": "2026-05-27T03:36:56.123Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "9 lines replaced/restructured",
"fix": "Rewrote 37\u219251 lines (9 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-27T03:36:56.123Z"
},
{
"id": "bug-051",
"timestamp": "2026-05-27T03:52:41.110Z",
"error_message": "Significant refactor of ",
"file": "../../../../../claude/.claude/plans/prancy-herding-nest.md",
"root_cause": "8 lines replaced/restructured",
"fix": "Rewrote 8\u219223 lines (8 removed) | Also: - [ ] `test_persistent_conn_single_node_noop`: ha_; when n_peers == 1; primary_ctrl_fd remains -1 (uni",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-05-27T03:53:14.859Z"
},
{
"id": "bug-052",
"timestamp": "2026-05-27T03:55:31.440Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "10 lines replaced/restructured",
"fix": "Rewrote 34\u219251 lines (10 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-27T03:55:31.440Z"
},
{
"id": "bug-053",
"timestamp": "2026-05-27T03:56:41.037Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-27T03:56:41.037Z"
},
{
"id": "bug-054",
"timestamp": "2026-05-27T03:58:16.006Z",
"error_message": "Significant refactor of ",
"file": "../../../../../claude/.claude/plans/prancy-herding-nest.md",
"root_cause": "11 lines replaced/restructured",
"fix": "Rewrote 21\u219228 lines (11 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-27T03:58:16.006Z"
},
{
"id": "bug-055",
"timestamp": "2026-05-27T03:59:16.145Z",
"error_message": "Missing error handling in unknown",
"file": "../../../../../claude/.claude/plans/prancy-herding-nest.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-27T03:59:16.145Z"
},
{
"id": "bug-056",
"timestamp": "2026-05-27T06:45:04.111Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 10\u219213 lines (2 removed) | Also: **Replace LSF priority election with Raft-style qu; Five focused changes: | Also: 8. **Hard SSL/cert gate**: Controller refuses to b; 9. **Observable via logs**: Election results, vote",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-05-27T06:46:17.221Z"
},
{
"id": "bug-057",
"timestamp": "2026-05-27T06:45:34.951Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-27T06:45:34.951Z"
},
{
"id": "bug-058",
"timestamp": "2026-05-27T07:23:02.729Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 8\u219211 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-27T07:23:02.729Z"
},
{
"id": "bug-059",
"timestamp": "2026-05-27T07:24:56.724Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-config-bootstrap/brief.md",
"root_cause": "Had `-ENOSYS`",
"fix": "Changed to `bootstrap_config_if_needed()`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-27T07:24:56.724Z"
},
{
"id": "bug-060",
"timestamp": "2026-05-27T09:24:44.651Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-config-bootstrap/spec.json",
"root_cause": "Had \"2026-05-27T01:24:00-07:00\"",
"fix": "Changed to \"2026-05-27T01:30:00-07:00\"",
"tags": [
"auto-detected",
"wrong-value",
"json"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-27T09:24:44.651Z"
},
{
"id": "bug-061",
"timestamp": "2026-05-28T02:54:36.356Z",
"error_message": "Significant refactor of ",
"file": "src/schema/controller.capnp",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 5\u21927 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"capnp"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T02:54:36.356Z"
},
{
"id": "bug-062",
"timestamp": "2026-05-28T02:55:40.362Z",
"error_message": "Missing error handling in unknown",
"file": "src/schema/controller.capnp",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"capnp"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T02:55:40.362Z"
},
{
"id": "bug-063",
"timestamp": "2026-05-28T03:05:42.555Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.h",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 5\u219240 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T03:05:42.556Z"
},
{
"id": "bug-064",
"timestamp": "2026-05-28T03:39:14.341Z",
"error_message": "Missing error handling in struct",
"file": "src/controller/ha.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T03:39:14.341Z"
},
{
"id": "bug-065",
"timestamp": "2026-05-28T03:40:17.891Z",
"error_message": "Missing error handling in struct",
"file": "src/include/typemap.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T03:40:17.891Z"
},
{
"id": "bug-066",
"timestamp": "2026-05-28T03:41:53.373Z",
"error_message": "Significant refactor of ",
"file": "src/include/typemap.h",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 4\u21926 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T03:41:53.373Z"
},
{
"id": "bug-067",
"timestamp": "2026-05-28T03:42:53.810Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'worker.c'",
"fix": "Changed to 'startup_validation.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T03:42:53.810Z"
},
{
"id": "bug-068",
"timestamp": "2026-05-28T04:01:56.031Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/main.c",
"root_cause": "Condition was: if (arguments->vcpus < 1)",
"fix": "Changed to: if (validate_vcpus(arguments->vcpus)",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T04:01:56.031Z"
},
{
"id": "bug-069",
"timestamp": "2026-05-28T04:02:06.925Z",
"error_message": "Wrong reference: vcpus should be nres",
"file": "src/include/clusterconfig.h",
"root_cause": "Used \"vcpus\" instead of \"nres\"",
"fix": "Changed vcpus \u2192 nres",
"tags": [
"auto-detected",
"wrong-reference",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T04:02:06.925Z"
},
{
"id": "bug-070",
"timestamp": "2026-05-28T04:02:19.321Z",
"error_message": "Significant refactor of ",
"file": "src/controller/cluster.c",
"root_cause": "8 lines replaced/restructured",
"fix": "Rewrote 12\u21926 lines (8 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T04:02:19.322Z"
},
{
"id": "bug-071",
"timestamp": "2026-05-28T04:02:48.429Z",
"error_message": "Incorrect value in code",
"file": "src/schema/controller.capnp",
"root_cause": "Had \"vcpus\"",
"fix": "Changed to \"resources\"",
"tags": [
"auto-detected",
"wrong-value",
"capnp"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T04:02:48.429Z"
},
{
"id": "bug-072",
"timestamp": "2026-05-28T04:33:48.790Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_startup.c",
"root_cause": "8 lines replaced/restructured",
"fix": "Rewrote 12\u219218 lines (8 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T04:33:48.790Z"
},
{
"id": "bug-073",
"timestamp": "2026-05-28T04:50:36.939Z",
"error_message": "Significant refactor of ",
"file": "src/controller/cluster.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 109\u2192144 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T04:50:36.939Z"
},
{
"id": "bug-074",
"timestamp": "2026-05-28T05:59:28.525Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/ha.c",
"root_cause": "Condition was: if (opcode == OPCode_requestVote || opcode == OPCode_p)",
"fix": "Changed to: if (opcode == OPCode_requestVote ||\n opcod)",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T05:59:28.525Z"
},
{
"id": "bug-075",
"timestamp": "2026-05-28T07:04:33.895Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'startup_validation.c'",
"fix": "Changed to 'testsuite/test_ha_election.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T07:04:33.895Z"
},
{
"id": "bug-076",
"timestamp": "2026-05-28T07:13:42.089Z",
"error_message": "Missing error handling in struct",
"file": "src/controller/ha.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T07:13:42.089Z"
},
{
"id": "bug-077",
"timestamp": "2026-05-28T07:14:03.724Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T07:14:03.724Z"
},
{
"id": "bug-078",
"timestamp": "2026-05-28T07:22:56.418Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: peer_idx < 0 || peer_idx >= ctx->n_peers",
"fix": "Added guard clause: if (peer_idx < 0 || peer_idx >= ctx->n_peers)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T07:22:56.418Z"
},
{
"id": "bug-079",
"timestamp": "2026-05-28T07:49:42.076Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "14 lines replaced/restructured",
"fix": "Rewrote 92\u2192344 lines (14 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T07:49:42.076Z"
},
{
"id": "bug-080",
"timestamp": "2026-05-28T07:50:39.610Z",
"error_message": "Significant refactor of ",
"file": "src/controller/myapp.c",
"root_cause": "6 lines replaced/restructured",
"fix": "Rewrote 25\u219249 lines (6 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T07:50:39.610Z"
},
{
"id": "bug-081",
"timestamp": "2026-05-28T07:53:10.883Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: role != CTRL_STANDBY",
"fix": "Added guard clause: if (role != CTRL_STANDBY)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T07:53:10.883Z"
},
{
"id": "bug-082",
"timestamp": "2026-05-28T08:23:40.040Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: ctx->done_posted",
"fix": "Added guard clause: if (ctx->done_posted)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-05-28T08:25:11.221Z"
},
{
"id": "bug-083",
"timestamp": "2026-05-28T08:45:37.921Z",
"error_message": "Missing guard clause",
"file": "src/controller/config_repl.c",
"root_cause": "No early return/throw for edge case: !host || !tag_out",
"fix": "Added guard clause: if (!host || !tag_out)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T08:45:37.921Z"
},
{
"id": "bug-084",
"timestamp": "2026-05-28T08:48:58.609Z",
"error_message": "Wrong reference: capn_str_null should be str",
"file": "src/controller/config_repl.c",
"root_cause": "Used \"capn_str_null\" instead of \"str\"",
"fix": "Changed capn_str_null \u2192 str",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T08:48:58.609Z"
},
{
"id": "bug-085",
"timestamp": "2026-05-28T09:12:37.377Z",
"error_message": "Significant refactor of ",
"file": "src/controller/config_repl.c",
"root_cause": "7 lines replaced/restructured",
"fix": "Rewrote 17\u219284 lines (7 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T09:12:37.377Z"
},
{
"id": "bug-086",
"timestamp": "2026-05-28T09:13:17.676Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'startup_validation.c'",
"fix": "Changed to 'testsuite/test_ha_bootstrap_support.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T09:13:17.676Z"
},
{
"id": "bug-087",
"timestamp": "2026-05-28T10:13:52.421Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: !workdir",
"fix": "Added guard clause: if (!workdir)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T10:13:52.421Z"
},
{
"id": "bug-088",
"timestamp": "2026-05-28T13:34:49.513Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/repl.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T13:34:49.513Z"
},
{
"id": "bug-089",
"timestamp": "2026-05-28T13:51:39.687Z",
"error_message": "Significant refactor of ",
"file": "src/include/repl.h",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 3\u21924 lines (3 removed) | Also: /* ACK handling \u2014 call from io_worker read callbac; /* Majority-quorum ACK wait \u2014 stub until task 7.3 ",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-05-28T13:51:55.672Z"
},
{
"id": "bug-090",
"timestamp": "2026-05-28T13:52:52.636Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/repl.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T13:52:52.636Z"
},
{
"id": "bug-091",
"timestamp": "2026-05-28T13:53:09.924Z",
"error_message": "Wrong reference: in_catch_up should be acked_config_lsn",
"file": "src/controller/repl.c",
"root_cause": "Used \"in_catch_up\" instead of \"acked_config_lsn\"",
"fix": "Changed in_catch_up \u2192 acked_config_lsn",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T13:53:09.924Z"
},
{
"id": "bug-092",
"timestamp": "2026-05-28T14:11:04.583Z",
"error_message": "Missing guard clause",
"file": "src/controller/persist.c",
"root_cause": "No early return/throw for edge case: p->current_lsn == 0 || cutoff_lsn + 1 >= p->current_lsn",
"fix": "Added guard clause: if (p->current_lsn == 0 || cutoff_lsn + 1 >=)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T14:11:04.583Z"
},
{
"id": "bug-093",
"timestamp": "2026-05-28T14:19:54.082Z",
"error_message": "Significant refactor of ",
"file": "src/controller/persist.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 20\u219229 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T14:19:54.082Z"
},
{
"id": "bug-094",
"timestamp": "2026-05-28T14:47:44.445Z",
"error_message": "Wrong reference: ha_state_t should be _Atomic",
"file": "src/controller/ha.h",
"root_cause": "Used \"ha_state_t\" instead of \"_Atomic\"",
"fix": "Changed ha_state_t \u2192 _Atomic",
"tags": [
"auto-detected",
"wrong-reference",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T14:47:44.445Z"
},
{
"id": "bug-095",
"timestamp": "2026-05-28T15:04:44.613Z",
"error_message": "Wrong reference: socket should be epoll",
"file": "src/controller/ha.c",
"root_cause": "Used \"socket\" instead of \"epoll\"",
"fix": "Changed socket \u2192 epoll",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T15:04:44.613Z"
},
{
"id": "bug-096",
"timestamp": "2026-05-28T15:05:23.129Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: ha_tcp_connect_hook",
"fix": "Added guard clause: if (ha_tcp_connect_hook)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-28T15:05:23.129Z"
},
{
"id": "bug-097",
"timestamp": "2026-05-29T02:48:17.371Z",
"error_message": "Missing guard clause",
"file": "src/lib/request.c",
"root_cause": "No early return/throw for edge case: (ep == NULL",
"fix": "Added guard clause: if ((ep == NULL)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T02:48:17.371Z"
},
{
"id": "bug-098",
"timestamp": "2026-05-29T02:50:46.444Z",
"error_message": "Wrong reference: XCE_ERR_STANDBY should be E_XCE_STANDBY",
"file": "src/lib/request.c",
"root_cause": "Used \"XCE_ERR_STANDBY\" instead of \"E_XCE_STANDBY\"",
"fix": "Changed XCE_ERR_STANDBY \u2192 E_XCE_STANDBY",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T02:50:46.444Z"
},
{
"id": "bug-099",
"timestamp": "2026-05-29T02:51:03.529Z",
"error_message": "Wrong reference: XCE_ERR_NOT_READY should be E_XCE_NOT_READY",
"file": "src/lib/testsuite/test_libxce_retry.c",
"root_cause": "Used \"XCE_ERR_NOT_READY\" instead of \"E_XCE_NOT_READY\"",
"fix": "Changed XCE_ERR_NOT_READY \u2192 E_XCE_NOT_READY",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-05-29T02:51:16.657Z"
},
{
"id": "bug-100",
"timestamp": "2026-05-29T03:27:20.556Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T03:27:20.556Z"
},
{
"id": "bug-101",
"timestamp": "2026-05-29T03:29:44.753Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/config_repl.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T03:29:44.753Z"
},
{
"id": "bug-102",
"timestamp": "2026-05-29T03:37:52.117Z",
"error_message": "Wrong reference: data should be ctrl_hello_reply_t",
"file": "src/include/typemap.h",
"root_cause": "Used \"data\" instead of \"ctrl_hello_reply_t\"",
"fix": "Changed data \u2192 ctrl_hello_reply_t",
"tags": [
"auto-detected",
"wrong-reference",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T03:37:52.117Z"
},
{
"id": "bug-103",
"timestamp": "2026-05-29T03:53:48.559Z",
"error_message": "Missing error handling in unknown",
"file": "src/schema/controller.capnp",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"capnp"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T03:53:48.559Z"
},
{
"id": "bug-104",
"timestamp": "2026-05-29T03:54:23.205Z",
"error_message": "Missing error handling in struct",
"file": "src/include/typemap.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: wal_catchup_entry_t* walcatchupentrymsg;; snapshot_transfer_t* snapshottransfermsg; | Also: /* Forward declarations for types defined later in this file; typedef struct snapshot_transfer_t snapshot_transfer_fw",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-05-29T03:56:34.078Z"
},
{
"id": "bug-105",
"timestamp": "2026-05-29T03:57:22.758Z",
"error_message": "Significant refactor of ",
"file": "src/include/typemap.h",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 5\u21925 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T03:57:22.758Z"
},
{
"id": "bug-106",
"timestamp": "2026-05-29T03:58:07.711Z",
"error_message": "Significant refactor of ",
"file": "src/schema/controller.capnp",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 5\u21923 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"capnp"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T03:58:07.711Z"
},
{
"id": "bug-107",
"timestamp": "2026-05-29T04:04:12.693Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/config_repl.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T04:04:12.693Z"
},
{
"id": "bug-108",
"timestamp": "2026-05-29T04:06:35.126Z",
"error_message": "Significant refactor of ",
"file": "src/controller/config_repl.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 10\u219212 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T04:06:35.126Z"
},
{
"id": "bug-109",
"timestamp": "2026-05-29T06:59:14.045Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: !ha",
"fix": "Added guard clause: if (!ha)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T06:59:14.045Z"
},
{
"id": "bug-110",
"timestamp": "2026-05-29T07:01:11.916Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 10\u219220 lines (5 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T07:01:11.916Z"
},
{
"id": "bug-111",
"timestamp": "2026-05-29T07:02:31.287Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/ha.c",
"root_cause": "Condition was: if (c->myconf && c->myconf->cluster_config)",
"fix": "Changed to: if (c->myconf && c->myconf->peers_cfg.candidates_count)",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T07:02:31.287Z"
},
{
"id": "bug-112",
"timestamp": "2026-05-29T10:40:53.626Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-config-bootstrap/manual-tests.md",
"root_cause": "9 lines replaced/restructured",
"fix": "Rewrote 18\u219220 lines (9 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T10:40:53.626Z"
},
{
"id": "bug-113",
"timestamp": "2026-05-29T10:59:37.144Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-config-bootstrap/manual-tests.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T10:59:37.144Z"
},
{
"id": "bug-114",
"timestamp": "2026-05-29T11:01:49.200Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-config-bootstrap/manual-tests.md",
"root_cause": "10 lines replaced/restructured",
"fix": "Rewrote 20\u219236 lines (10 removed) | Also: ### 11.1 Concurrent Startup (3 nodes); - Result: PASS / FAIL",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-05-29T11:02:31.657Z"
},
{
"id": "bug-115",
"timestamp": "2026-05-29T12:29:37.335Z",
"error_message": "Significant refactor of ",
"file": "src/controller/config_repl.c",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 29\u219245 lines (5 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T12:29:37.335Z"
},
{
"id": "bug-116",
"timestamp": "2026-05-29T12:43:56.243Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_bootstrap.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 4\u21928 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T12:43:56.243Z"
},
{
"id": "bug-117",
"timestamp": "2026-05-29T13:41:46.841Z",
"error_message": "Incorrect value in code",
"file": "src/controller/myapp.c",
"root_cause": "Had \"Pre-election config loaded: tag=%016\"",
"fix": "Changed to \"Pre-election config loaded: tag=%016llx\"",
"tags": [
"auto-detected",
"wrong-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T13:41:46.841Z"
},
{
"id": "bug-118",
"timestamp": "2026-05-29T13:51:42.299Z",
"error_message": "Wrong reference: nres should be vcpus",
"file": "src/include/clusterconfig.h",
"root_cause": "Used \"nres\" instead of \"vcpus\"",
"fix": "Changed nres \u2192 vcpus",
"tags": [
"auto-detected",
"wrong-reference",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T13:51:42.299Z"
},
{
"id": "bug-119",
"timestamp": "2026-05-29T16:32:10.285Z",
"error_message": "Wrong reference: data should be request_vote_reply_t",
"file": "src/include/typemap.h",
"root_cause": "Used \"data\" instead of \"request_vote_reply_t\"",
"fix": "Changed data \u2192 request_vote_reply_t",
"tags": [
"auto-detected",
"wrong-reference",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T16:32:10.285Z"
},
{
"id": "bug-120",
"timestamp": "2026-05-29T16:35:39.908Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "10 lines replaced/restructured",
"fix": "Rewrote 19\u219225 lines (10 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T16:35:39.908Z"
},
{
"id": "bug-121",
"timestamp": "2026-05-29T16:36:41.731Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/cluster.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-29T16:36:41.731Z"
},
{
"id": "bug-122",
"timestamp": "2026-05-30T00:05:02.052Z",
"error_message": "Wrong reference: cluster_init_phase2 should be cluster_register_listener",
"file": "src/controller/include/cluster.h",
"root_cause": "Used \"cluster_init_phase2\" instead of \"cluster_register_listener\"",
"fix": "Changed cluster_init_phase2 \u2192 cluster_register_listener",
"tags": [
"auto-detected",
"wrong-reference",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T00:05:02.052Z"
},
{
"id": "bug-123",
"timestamp": "2026-05-30T00:20:27.244Z",
"error_message": "Missing guard clause",
"file": "src/controller/cluster.c",
"root_cause": "No early return/throw for edge case: c->ep.flags == 0",
"fix": "Added guard clause: if (c->ep.flags == 0)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T00:20:27.244Z"
},
{
"id": "bug-124",
"timestamp": "2026-05-30T00:24:49.302Z",
"error_message": "Significant refactor of ",
"file": "src/controller/myapp.c",
"root_cause": "30 lines replaced/restructured",
"fix": "Rewrote 79\u219261 lines (30 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T00:24:49.302Z"
},
{
"id": "bug-125",
"timestamp": "2026-05-30T01:12:05.791Z",
"error_message": "Significant refactor of ",
"file": "src/include/xce/cluster_def.h",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 8\u219215 lines (5 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T01:12:05.791Z"
},
{
"id": "bug-126",
"timestamp": "2026-05-30T01:12:16.318Z",
"error_message": "Significant refactor of ",
"file": "src/controller/cluster.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 7\u219216 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T01:12:16.318Z"
},
{
"id": "bug-127",
"timestamp": "2026-05-30T01:12:38.572Z",
"error_message": "Wrong reference: CTRL_PERF_NHASH should be c",
"file": "src/controller/cluster.c",
"root_cause": "Used \"CTRL_PERF_NHASH\" instead of \"c\"",
"fix": "Changed CTRL_PERF_NHASH \u2192 c",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T01:12:38.572Z"
},
{
"id": "bug-128",
"timestamp": "2026-05-30T01:18:19.850Z",
"error_message": "Significant refactor of ",
"file": "src/controller/cluster.c",
"root_cause": "36 lines replaced/restructured",
"fix": "Rewrote 77\u219241 lines (36 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T01:18:19.850Z"
},
{
"id": "bug-129",
"timestamp": "2026-05-30T01:21:20.140Z",
"error_message": "Wrong reference: true should be false",
"file": ".claude/skills/xce-build/SKILL.md",
"root_cause": "Used \"true\" instead of \"false\"",
"fix": "Changed true \u2192 false",
"tags": [
"auto-detected",
"wrong-reference",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T01:21:20.140Z"
},
{
"id": "bug-130",
"timestamp": "2026-05-30T01:28:22.079Z",
"error_message": "Wrong reference: 120 should be 300",
"file": "src/controller/meson.build",
"root_cause": "Used \"120\" instead of \"300\"",
"fix": "Changed 120 \u2192 300",
"tags": [
"auto-detected",
"wrong-reference",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T01:28:22.079Z"
},
{
"id": "bug-131",
"timestamp": "2026-05-30T02:37:40.267Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/myapp.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T02:37:40.267Z"
},
{
"id": "bug-132",
"timestamp": "2026-05-30T03:33:24.652Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 15\u219221 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T03:33:24.652Z"
},
{
"id": "bug-133",
"timestamp": "2026-05-30T03:55:45.693Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 9\u219213 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T03:55:45.693Z"
},
{
"id": "bug-134",
"timestamp": "2026-05-30T06:19:16.564Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/election-iomgr-refactor/design.md",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 10\u219227 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T06:19:16.564Z"
},
{
"id": "bug-135",
"timestamp": "2026-05-30T06:19:47.181Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/election-iomgr-refactor/design.md",
"root_cause": "Had `cluster_init_phase2`",
"fix": "Changed to `cluster_config == NULL`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T06:19:47.181Z"
},
{
"id": "bug-136",
"timestamp": "2026-05-30T06:38:09.325Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/election-iomgr-refactor/design.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: /* After election determines role: */; int is_first_boot = !c->running; /* running=1 only after cl | Also: #### `ha_dispatch_gate` \u2014 CTRL_PRIMARY_COMMITTING case; ```c | Also: ### 3-node startup \u2014 ctrl-a wins (with COMMITTING phase); participant PeerC as ctrl-c endpoint | Also: - **`ha_start_election_async()` is fully non-blocking**: Arm; - *Initial startup* (`ha->phase2_done == 0`): calls `cluster",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 5,
"last_seen": "2026-05-30T06:43:07.267Z"
},
{
"id": "bug-137",
"timestamp": "2026-05-30T06:44:51.916Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/election-iomgr-refactor/design.md",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 19\u219226 lines (4 removed) | Also: \u251c\u2500\u2500 ha.h # Add to ha_state_t: clie; \u2502 # ha_repl_ack_re | Also: \u2514\u2500\u2500 myapp.c # Restructured: phase1 + ; # for(;;) retry loop, cluster_init_phase2,",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-05-30T06:45:22.626Z"
},
{
"id": "bug-138",
"timestamp": "2026-05-30T06:56:32.965Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/election-iomgr-refactor/design.md",
"root_cause": "12 lines replaced/restructured",
"fix": "Rewrote 15\u219220 lines (12 removed) | Also: - `src/controller/ha.h` \u2014 Add `client_ssl_ctx`, `r; - `src/controller/ha.c` \u2014 Main changes above; `ha_ | Also: \u251c\u2500\u2500 delay.c # Add delay_task_ms() (ms; \u2502 # Add delay_task_cancel()",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-05-30T06:57:53.882Z"
},
{
"id": "bug-139",
"timestamp": "2026-05-30T06:58:05.115Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/election-iomgr-refactor/design.md",
"root_cause": "Had `delay_task_cancel()`",
"fix": "Changed to `clock_gettime(CLOCK_MONOTONIC)`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T06:58:05.115Z"
},
{
"id": "bug-140",
"timestamp": "2026-05-30T07:06:20.968Z",
"error_message": "Significant refactor of ",
"file": "src/lib/delay.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 53\u219285 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T07:06:20.968Z"
},
{
"id": "bug-141",
"timestamp": "2026-05-30T07:36:03.937Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.h",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 7\u21928 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T07:36:03.937Z"
},
{
"id": "bug-142",
"timestamp": "2026-05-30T07:57:14.052Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: xce_vote_request_hook != NULL",
"fix": "Added guard clause: if (xce_vote_request_hook != NULL)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T07:57:14.052Z"
},
{
"id": "bug-143",
"timestamp": "2026-05-30T08:16:03.222Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: !pkt || !pkt->data || pkt->sz == 0",
"fix": "Added guard clause: if (!pkt || !pkt->data || pkt->sz == 0)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T08:16:03.222Z"
},
{
"id": "bug-144",
"timestamp": "2026-05-30T08:49:04.058Z",
"error_message": "Function not marked async",
"file": "src/controller/ha.h",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T08:49:04.058Z"
},
{
"id": "bug-145",
"timestamp": "2026-05-30T08:49:59.817Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: atomic_load(&t->cancelled",
"fix": "Added guard clause: if (atomic_load(&t->cancelled)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T08:49:59.817Z"
},
{
"id": "bug-146",
"timestamp": "2026-05-30T09:12:38.055Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 14\u219217 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T09:12:38.055Z"
},
{
"id": "bug-147",
"timestamp": "2026-05-30T09:13:19.377Z",
"error_message": "Function not marked async",
"file": "src/controller/ha.h",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T09:13:19.377Z"
},
{
"id": "bug-148",
"timestamp": "2026-05-30T09:13:54.779Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_start_election_async.c",
"root_cause": "8 lines replaced/restructured",
"fix": "Rewrote 24\u219242 lines (8 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T09:13:54.779Z"
},
{
"id": "bug-149",
"timestamp": "2026-05-30T10:31:53.836Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'startup_validation.c'",
"fix": "Changed to 'testsuite/test_ha_vote_gate.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T10:31:53.836Z"
},
{
"id": "bug-150",
"timestamp": "2026-05-30T11:08:59.808Z",
"error_message": "Missing error handling in XCE_TESTING",
"file": "src/controller/ha.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T11:08:59.808Z"
},
{
"id": "bug-151",
"timestamp": "2026-05-30T11:09:47.905Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T11:09:47.905Z"
},
{
"id": "bug-152",
"timestamp": "2026-05-30T11:10:30.958Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "8 lines replaced/restructured",
"fix": "Rewrote 62\u2192164 lines (8 removed) | Also: /* Store candidate own tag/lsn in votes[0] for eva; * n_peers==1 \u2192 n_other==0, so votes[] has 0 entrie | Also: * election_timeout_ctx_t: argument for the delay_t; * ha_elect_evaluate_and_signal when the election d",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-05-30T11:13:27.304Z"
},
{
"id": "bug-153",
"timestamp": "2026-05-30T11:43:01.989Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'startup_validation.c'",
"fix": "Changed to 'testsuite/test_ha_repl_push.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T11:43:01.989Z"
},
{
"id": "bug-154",
"timestamp": "2026-05-30T11:43:44.829Z",
"error_message": "Missing error handling in XCE_TESTING",
"file": "src/controller/ha.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: /* Push config to standbys with lower config_tag (Req 7.1) *; #ifdef XCE_TESTING",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-05-30T11:43:58.208Z"
},
{
"id": "bug-155",
"timestamp": "2026-05-30T11:44:15.059Z",
"error_message": "Missing error handling in XCE_TESTING",
"file": "src/controller/ha.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T11:44:15.059Z"
},
{
"id": "bug-156",
"timestamp": "2026-05-30T11:45:24.946Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/cluster.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T11:45:24.946Z"
},
{
"id": "bug-157",
"timestamp": "2026-05-30T12:02:39.009Z",
"error_message": "Function not marked async",
"file": "src/controller/testsuite/test_ha_startup.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-05-30T12:03:10.183Z"
},
{
"id": "bug-158",
"timestamp": "2026-05-30T12:09:20.842Z",
"error_message": "Significant refactor of ",
"file": "src/controller/cluster.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 22\u219232 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T12:09:20.842Z"
},
{
"id": "bug-159",
"timestamp": "2026-05-30T12:22:57.013Z",
"error_message": "Wrong return value",
"file": "src/controller/testsuite/test_ha_startup.c",
"root_cause": "Was returning: in < 10ms.",
"fix": "Now returns: in < 5ms (design spec).",
"tags": [
"auto-detected",
"return-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T12:22:57.013Z"
},
{
"id": "bug-160",
"timestamp": "2026-05-30T12:23:18.560Z",
"error_message": "Incorrect value in code",
"file": "src/controller/testsuite/test_ha_startup.c",
"root_cause": "Had \"myapp_run path: ha_start_election_async must retu",
"fix": "Changed to \"myapp_run path: ha_start_election_async must retu",
"tags": [
"auto-detected",
"wrong-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T12:23:18.560Z"
},
{
"id": "bug-161",
"timestamp": "2026-05-30T12:29:45.867Z",
"error_message": "Function not marked async",
"file": "src/controller/ha.h",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T12:29:45.867Z"
},
{
"id": "bug-162",
"timestamp": "2026-05-30T12:30:10.570Z",
"error_message": "Function not marked async",
"file": "src/controller/ha.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-05-30T12:30:26.987Z"
},
{
"id": "bug-163",
"timestamp": "2026-05-30T12:31:02.203Z",
"error_message": "Function not marked async",
"file": "src/controller/testsuite/test_ha_failover.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T12:31:02.203Z"
},
{
"id": "bug-164",
"timestamp": "2026-05-30T12:45:22.182Z",
"error_message": "Function not marked async",
"file": "src/controller/ha.h",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T12:45:22.182Z"
},
{
"id": "bug-165",
"timestamp": "2026-05-30T12:46:02.210Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "10 lines replaced/restructured",
"fix": "Rewrote 15\u21925 lines (10 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T12:46:02.210Z"
},
{
"id": "bug-166",
"timestamp": "2026-05-30T12:50:35.870Z",
"error_message": "Missing guard clause",
"file": "src/controller/testsuite/test_ha_bootstrap_support.c",
"root_cause": "No early return/throw for edge case: c->myconf->config_version_tag != 0",
"fix": "Added guard clause: if (c->myconf->config_version_tag != 0)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T12:50:35.870Z"
},
{
"id": "bug-167",
"timestamp": "2026-05-30T13:06:57.152Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: cancelled_val",
"fix": "Added guard clause: if (cancelled_val)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T13:06:57.152Z"
},
{
"id": "bug-168",
"timestamp": "2026-05-30T13:24:06.024Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'startup_validation.c'",
"fix": "Changed to 'testsuite/test_ha_repl_ack.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T13:24:06.024Z"
},
{
"id": "bug-169",
"timestamp": "2026-05-30T13:42:28.077Z",
"error_message": "Wrong reference: third should be second",
"file": "src/controller/testsuite/test_ha_repl_ack.c",
"root_cause": "Used \"third\" instead of \"second\"",
"fix": "Changed third \u2192 second",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T13:42:28.077Z"
},
{
"id": "bug-170",
"timestamp": "2026-05-30T14:35:07.679Z",
"error_message": "Function not marked async",
"file": "src/controller/ha.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T14:35:07.679Z"
},
{
"id": "bug-171",
"timestamp": "2026-05-30T15:26:07.538Z",
"error_message": "Significant refactor of ",
"file": "src/controller/myapp.c",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 10\u219215 lines (5 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T15:26:07.538Z"
},
{
"id": "bug-172",
"timestamp": "2026-05-30T23:42:12.644Z",
"error_message": "Function not marked async",
"file": "src/controller/ha.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T23:42:12.644Z"
},
{
"id": "bug-173",
"timestamp": "2026-05-30T23:42:34.993Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "15 lines replaced/restructured",
"fix": "Rewrote 23\u219210 lines (15 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T23:42:34.993Z"
},
{
"id": "bug-174",
"timestamp": "2026-05-30T23:52:01.776Z",
"error_message": "Significant refactor of ",
"file": "src/controller/config_repl.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 5\u21929 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-30T23:52:01.776Z"
},
{
"id": "bug-175",
"timestamp": "2026-05-31T00:11:29.118Z",
"error_message": "Significant refactor of ",
"file": "src/controller/cluster.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 14\u219216 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T00:11:29.118Z"
},
{
"id": "bug-176",
"timestamp": "2026-05-31T02:09:39.630Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/ha.c",
"root_cause": "Condition was: if (c->myconf && c->myconf->peers_cfg.candidates_count)",
"fix": "Changed to: if (ha->my_priority > 0)",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T02:09:39.630Z"
},
{
"id": "bug-177",
"timestamp": "2026-05-31T02:54:09.113Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "12 lines replaced/restructured",
"fix": "Rewrote 15\u219220 lines (12 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T02:54:09.113Z"
},
{
"id": "bug-178",
"timestamp": "2026-05-31T02:54:42.189Z",
"error_message": "Significant refactor of ",
"file": "src/include/typemap.h",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 4\u21928 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T02:54:42.189Z"
},
{
"id": "bug-179",
"timestamp": "2026-05-31T02:55:12.814Z",
"error_message": "Significant refactor of ",
"file": "src/xce.build/lib/controller.capnp.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 11\u219219 lines (4 removed) | Also: encode_Data_ptr(cs, &(d->sha256), s->sha256);; encode_Data_ptr(cs, &(d->bytes), s->bytes);",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-05-31T03:00:08.081Z"
},
{
"id": "bug-180",
"timestamp": "2026-05-31T02:57:22.273Z",
"error_message": "Significant refactor of ",
"file": "src/controller/cluster.c",
"root_cause": "28 lines replaced/restructured",
"fix": "Rewrote 31\u21924 lines (28 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T02:57:22.273Z"
},
{
"id": "bug-181",
"timestamp": "2026-05-31T03:01:08.147Z",
"error_message": "Significant refactor of ",
"file": "src/include/typemap.h",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 8\u219218 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T03:01:08.147Z"
},
{
"id": "bug-182",
"timestamp": "2026-05-31T03:02:13.050Z",
"error_message": "Significant refactor of ",
"file": "src/include/request.h",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 10\u219219 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T03:02:13.050Z"
},
{
"id": "bug-183",
"timestamp": "2026-05-31T03:02:33.311Z",
"error_message": "Missing guard clause",
"file": "src/lib/request.c",
"root_cause": "No early return/throw for edge case: req == NULL",
"fix": "Added guard clause: if (req == NULL)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T03:02:33.311Z"
},
{
"id": "bug-184",
"timestamp": "2026-05-31T03:14:15.595Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 5\u219210 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T03:14:15.595Z"
},
{
"id": "bug-185",
"timestamp": "2026-05-31T03:27:59.922Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 9\u219211 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T03:27:59.922Z"
},
{
"id": "bug-186",
"timestamp": "2026-05-31T04:11:45.534Z",
"error_message": "Missing error handling in struct",
"file": ".kiro/specs/raft-library/design.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: Caller->>RaftSM: raft_on_vote_request(state, from, term); alt term < current_term",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-05-31T04:13:04.500Z"
},
{
"id": "bug-187",
"timestamp": "2026-05-31T04:13:43.960Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/raft-library/design.md",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 8\u219226 lines (5 removed) | Also: * raft_init: initialize state for a node.; * All required callbacks (except on_trace and on_v | Also: - C standard library only (`stdint.h`, `pthread.h`; - `raft.c` may include `<stdatomic.h>` for lock-fr | Also: | Threading | `pthread_mutex_t` (caller-owned) | P; | Atomics | None in library | Caller uses atomics ",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 4,
"last_seen": "2026-05-31T04:19:37.296Z"
},
{
"id": "bug-188",
"timestamp": "2026-05-31T04:19:54.524Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/raft-library/design.md",
"root_cause": "Had `raft.c`",
"fix": "Changed to `raft.h`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T04:19:54.524Z"
},
{
"id": "bug-189",
"timestamp": "2026-05-31T04:58:21.609Z",
"error_message": "Missing error handling in RAFT_H",
"file": "src/lib/raft/raft.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T04:58:21.609Z"
},
{
"id": "bug-190",
"timestamp": "2026-05-31T05:07:37.759Z",
"error_message": "Missing guard clause",
"file": "src/lib/raft/raft.c",
"root_cause": "No early return/throw for edge case: cfg->n_peers < 1",
"fix": "Added guard clause: if (cfg->n_peers < 1)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T05:07:37.759Z"
},
{
"id": "bug-191",
"timestamp": "2026-05-31T05:23:19.394Z",
"error_message": "Missing guard clause",
"file": "src/lib/raft/raft.c",
"root_cause": "No early return/throw for edge case: s->role == RAFT_CANDIDATE || s->role == RAFT_LEADER",
"fix": "Added guard clause: if (s->role == RAFT_CANDIDATE || s->role == )",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T05:23:19.394Z"
},
{
"id": "bug-192",
"timestamp": "2026-05-31T05:32:36.388Z",
"error_message": "Significant refactor of ",
"file": "src/lib/testsuite/test_raft.c",
"root_cause": "8 lines replaced/restructured",
"fix": "Rewrote 77\u2192107 lines (8 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T05:32:36.388Z"
},
{
"id": "bug-193",
"timestamp": "2026-05-31T05:35:03.808Z",
"error_message": "Significant refactor of ",
"file": "src/lib/raft/raft.c",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 9\u219262 lines (5 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T05:35:03.808Z"
},
{
"id": "bug-194",
"timestamp": "2026-05-31T05:47:51.091Z",
"error_message": "Significant refactor of ",
"file": "src/lib/raft/raft.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 8\u219257 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T05:47:51.091Z"
},
{
"id": "bug-195",
"timestamp": "2026-05-31T05:58:45.896Z",
"error_message": "Significant refactor of ",
"file": "src/lib/raft/raft.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 15\u219238 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T05:58:45.896Z"
},
{
"id": "bug-196",
"timestamp": "2026-05-31T06:10:56.560Z",
"error_message": "Significant refactor of ",
"file": "src/lib/raft/raft_sim.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 6\u21923 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T06:10:56.560Z"
},
{
"id": "bug-197",
"timestamp": "2026-05-31T07:08:23.387Z",
"error_message": "Function not marked async",
"file": "src/controller/ha.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T07:08:23.387Z"
},
{
"id": "bug-198",
"timestamp": "2026-05-31T07:10:04.095Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "32 lines replaced/restructured",
"fix": "Rewrote 49\u219216 lines (32 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T07:10:04.095Z"
},
{
"id": "bug-199",
"timestamp": "2026-05-31T07:26:39.758Z",
"error_message": "Missing error handling in before",
"file": "src/controller/ha.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T07:26:39.758Z"
},
{
"id": "bug-200",
"timestamp": "2026-05-31T07:28:29.756Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 6\u219219 lines (3 removed) | Also: typedef struct {; ha_state_t *ha; | Also: /* \u2500\u2500 Type definitions needed by ha_elect_evaluate; *",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-05-31T07:30:49.949Z"
},
{
"id": "bug-201",
"timestamp": "2026-05-31T07:57:18.504Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "167 lines replaced/restructured",
"fix": "Rewrote 291\u2192137 lines (167 removed) | Also: /* Clear voted_for: the old primary is dead; any v; * is stale and must not block the new election. */",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-05-31T07:58:02.135Z"
},
{
"id": "bug-202",
"timestamp": "2026-05-31T07:58:38.513Z",
"error_message": "Significant refactor of ",
"file": "src/controller/cluster.c",
"root_cause": "12 lines replaced/restructured",
"fix": "Rewrote 28\u219268 lines (12 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T07:58:38.513Z"
},
{
"id": "bug-203",
"timestamp": "2026-05-31T08:16:20.727Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 16\u219221 lines (2 removed) | Also: /* Task 6.3: delegate vote reply accumulation to r; * raft_on_vote_reply owns quorum tracking and fire",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-05-31T08:16:28.806Z"
},
{
"id": "bug-204",
"timestamp": "2026-05-31T08:30:55.738Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "7 lines replaced/restructured",
"fix": "Rewrote 10\u21924 lines (7 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T08:30:55.738Z"
},
{
"id": "bug-205",
"timestamp": "2026-05-31T08:38:33.200Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 5\u219214 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T08:38:33.200Z"
},
{
"id": "bug-206",
"timestamp": "2026-05-31T08:40:00.000Z",
"error_message": "test_vote_reply_handler_term_fencing FAIL: Expected 10 Was 3 \u2014 ha->term must be atomically updated to peer term when peer term > ours",
"file": "src/controller/ha.c",
"root_cause": "vote_reply_msg_handler delegated term fencing entirely to raft_cb_become_follower (via raft_on_vote_reply). In XCE_TESTING builds, vote_reply_dispatch calls xce_vote_reply_hook and returns early, bypassing raft_on_vote_reply and thus never updating ha->term.",
"fix": "Added explicit CAS loop in vote_reply_msg_handler before vote_reply_dispatch to advance ha->term when vr_term > ha->term. This applies on both the production path and the XCE_TESTING hook path.",
"tags": [
"term-fencing",
"raft",
"ha",
"xce-testing",
"test-seam",
"vote-reply"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T08:40:00.000Z"
},
{
"id": "bug-207",
"timestamp": "2026-05-31T08:47:08.484Z",
"error_message": "Wrong reference: test_raft_init_zero_peers_returns_einval should be test_raft_init_even_peers_returns_einval",
"file": "src/lib/testsuite/test_raft.c",
"root_cause": "Used \"test_raft_init_zero_peers_returns_einval\" instead of \"test_raft_init_even_peers_returns_einval\"",
"fix": "Changed test_raft_init_zero_peers_returns_einval \u2192 test_raft_init_even_peers_returns_einval",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T08:47:08.484Z"
},
{
"id": "bug-208",
"timestamp": "2026-05-31",
"error_message": "ASAN LeakSanitizer: detected memory leaks in scheduler testsuite \u2014 build exits with error code",
"file": "src/scheduler/testsuite/test.c",
"root_cause": "sched_meet_host_selection() lazily allocates w->host_eval_ctx via build_host_eval_ctx(). Four test functions (test_meet_host_selection_always_true_passes, test_meet_host_selection_always_false_fails, test_meet_host_selection_numeric_match, test_meet_host_selection_string_match) called zarray_fini() without first calling sched_worker_release_host_ctx() to free the lazily-allocated host_eval_ctx.",
"fix": "Added sched_worker_release_host_ctx(&w) calls before zarray_fini() in all four affected test functions.",
"tags": [
"asan",
"leak",
"scheduler",
"test",
"host_eval_ctx"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31"
},
{
"id": "bug-209",
"timestamp": "2026-05-31T10:19:47.014Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/ha.c",
"root_cause": "Condition was: if (ha_rdhup_election_hook != NULL)",
"fix": "Changed to: if (c->myconf && c->myconf->peers_cfg.candidates_count)",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T10:19:47.014Z"
},
{
"id": "bug-210",
"timestamp": "2026-05-31T10:21:40.444Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "24 lines replaced/restructured",
"fix": "Rewrote 28\u21923 lines (24 removed) | Also: if (my_config_tag == 0) {; INFO(\"ha_start_election_async: no local config (ta",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-05-31T10:23:32.151Z"
},
{
"id": "bug-211",
"timestamp": "2026-05-31T11:29:03.301Z",
"error_message": "Wrong reference: 2000 should be 5000",
"file": "src/controller/ha.h",
"root_cause": "Used \"2000\" instead of \"5000\"",
"fix": "Changed 2000 \u2192 5000",
"tags": [
"auto-detected",
"wrong-reference",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T11:29:03.301Z"
},
{
"id": "bug-212",
"timestamp": "2026-05-31T11:33:55.599Z",
"error_message": "Significant refactor of ",
"file": "src/controller/myapp.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 15\u219225 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T11:33:55.599Z"
},
{
"id": "bug-213",
"timestamp": "2026-05-31T12:32:33.273Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.h",
"root_cause": "8 lines replaced/restructured",
"fix": "Rewrote 10\u219214 lines (8 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T12:32:33.273Z"
},
{
"id": "bug-214",
"timestamp": "2026-05-31T12:42:09.400Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 7\u219217 lines (4 removed) | Also: /* Trigger async config fetch from primary so stan; #ifndef XCE_TESTING | Also: handle_request_vote_reply(vctx->ha, vctx->ctx, vct; /* Fix 5 (HIGH): do NOT free vctx here.",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-05-31T12:45:37.690Z"
},
{
"id": "bug-215",
"timestamp": "2026-05-31T12:43:45.333Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: !pkt || !pkt->data || pkt->sz == 0",
"fix": "Added guard clause: if (!pkt || !pkt->data || pkt->sz == 0)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T12:43:45.333Z"
},
{
"id": "bug-216",
"timestamp": "2026-05-31T12:49:40.554Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-peer-connection-reuse/tasks.md",
"root_cause": "Had 's vote endpoints to standby control channels\n\n- [",
"fix": "Changed to 's vote endpoints to standby control channels\n\n- [",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T12:49:40.554Z"
},
{
"id": "bug-217",
"timestamp": "2026-05-31T12:54:26.372Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T12:54:26.372Z"
},
{
"id": "bug-218",
"timestamp": "2026-05-31T12:58:44.435Z",
"error_message": "Wrong reference: Request_body_nodata should be Request_body_nomsg",
"file": "src/controller/ha.c",
"root_cause": "Used \"Request_body_nodata\" instead of \"Request_body_nomsg\"",
"fix": "Changed Request_body_nodata \u2192 Request_body_nomsg",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T12:58:44.435Z"
},
{
"id": "bug-219",
"timestamp": "2026-05-31T14:19:13.820Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 10\u219218 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T14:19:13.820Z"
},
{
"id": "bug-220",
"timestamp": "2026-05-31T14:20:41.161Z",
"error_message": "Wrong reference: vote_reply_msg_handler should be vote_reply_msg_handler_for_test",
"file": "src/controller/ha.c",
"root_cause": "Used \"vote_reply_msg_handler\" instead of \"vote_reply_msg_handler_for_test\"",
"fix": "Changed vote_reply_msg_handler \u2192 vote_reply_msg_handler_for_test",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-05-31T14:20:41.161Z"
},
{
"id": "bug-221",
"timestamp": "2026-06-01T01:38:35.036Z",
"error_message": "Significant refactor of ",
"file": "src/controller/config_repl.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 13\u219236 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T01:38:35.036Z"
},
{
"id": "bug-222",
"timestamp": "2026-06-01T01:47:28.189Z",
"error_message": "Significant refactor of ",
"file": "src/controller/config_repl.c",
"root_cause": "20 lines replaced/restructured",
"fix": "Rewrote 36\u219213 lines (20 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T01:47:28.189Z"
},
{
"id": "bug-223",
"timestamp": "2026-06-01T01:49:30.537Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/cluster.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T01:49:30.537Z"
},
{
"id": "bug-224",
"timestamp": "2026-06-01T02:07:55.176Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: !c->delaymgr.running",
"fix": "Added guard clause: if (!c->delaymgr.running)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T02:07:55.176Z"
},
{
"id": "bug-225",
"timestamp": "2026-06-01T02:26:54.291Z",
"error_message": "Significant refactor of ",
"file": "src/controller/cluster.c",
"root_cause": "42 lines replaced/restructured",
"fix": "Rewrote 64\u219219 lines (42 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T02:26:54.291Z"
},
{
"id": "bug-226",
"timestamp": "2026-06-01T02:27:55.942Z",
"error_message": "Missing error handling in struct",
"file": "src/controller/ha.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T02:27:55.942Z"
},
{
"id": "bug-227",
"timestamp": "2026-06-01T02:29:00.462Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 10\u219214 lines (5 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T02:29:00.462Z"
},
{
"id": "bug-228",
"timestamp": "2026-06-01T02:37:56.961Z",
"error_message": "Significant refactor of ",
"file": "src/controller/CLAUDE.md",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 5\u219215 lines (5 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T02:37:56.961Z"
},
{
"id": "bug-229",
"timestamp": "2026-06-01T02:49:09.141Z",
"error_message": "Wrong operator: && should be !=",
"file": "src/controller/ha.c",
"root_cause": "Used \"&&\" instead of \"!=\"",
"fix": "Changed operator && \u2192 !=",
"tags": [
"auto-detected",
"operator-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T02:49:09.141Z"
},
{
"id": "bug-230",
"timestamp": "2026-06-01T02:56:53.219Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "10 lines replaced/restructured",
"fix": "Rewrote 16\u21927 lines (10 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T02:56:53.219Z"
},
{
"id": "bug-231",
"timestamp": "2026-06-01T03:07:11.679Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "140 lines replaced/restructured",
"fix": "Rewrote 173\u219211 lines (140 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T03:07:11.679Z"
},
{
"id": "bug-232",
"timestamp": "2026-06-01T03:07:49.710Z",
"error_message": "Significant refactor of ",
"file": "src/controller/myapp.c",
"root_cause": "16 lines replaced/restructured",
"fix": "Rewrote 25\u219212 lines (16 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T03:07:49.710Z"
},
{
"id": "bug-233",
"timestamp": "2026-06-01T03:07:51.264Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'testsuite/test_ha_connect.c'",
"fix": "Changed to 'testsuite/test_ha_ctrlhello.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T03:07:51.264Z"
},
{
"id": "bug-234",
"timestamp": "2026-06-01T03:12:12.378Z",
"error_message": "Significant refactor of ",
"file": "src/controller/config_repl.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 31\u219237 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T03:12:12.378Z"
},
{
"id": "bug-235",
"timestamp": "2026-06-01T03:13:14.521Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'testsuite/test_ha_connection_reuse.c'",
"fix": "Changed to 'testsuite/test_ha_connect.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T03:13:14.521Z"
},
{
"id": "bug-236",
"timestamp": "2026-06-01T03:15:29.129Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: rc < 0",
"fix": "Added guard clause: if (rc < 0)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T03:15:29.129Z"
},
{
"id": "bug-237",
"timestamp": "2026-06-01T03:23:30.915Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.h",
"root_cause": "21 lines replaced/restructured",
"fix": "Rewrote 28\u21925 lines (21 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T03:23:30.915Z"
},
{
"id": "bug-238",
"timestamp": "2026-06-01T03:23:32.483Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'testsuite/test_ha_connect.c'",
"fix": "Changed to 'testsuite/test_ha_connection_reuse.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-01T03:24:43.046Z"
},
{
"id": "bug-239",
"timestamp": "2026-06-01T03:28:46.956Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: ha_tcp_connect_hook != NULL",
"fix": "Added guard clause: if (ha_tcp_connect_hook != NULL)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T03:28:46.956Z"
},
{
"id": "bug-240",
"timestamp": "2026-06-01T04:08:07.950Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'testsuite/test_ha_connect.c'",
"fix": "Changed to 'testsuite/test_ha_connection_reuse.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-06-01T04:12:55.229Z"
},
{
"id": "bug-241",
"timestamp": "2026-06-01T04:13:03.001Z",
"error_message": "Wrong reference: test_ha_connect should be test_ha_ctrlhello",
"file": "src/controller/testsuite/controller_test.c",
"root_cause": "Used \"test_ha_connect\" instead of \"test_ha_ctrlhello\"",
"fix": "Changed test_ha_connect \u2192 test_ha_ctrlhello",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-01T04:13:08.650Z"
},
{
"id": "bug-242",
"timestamp": "2026-06-01T05:19:12.427Z",
"error_message": "Wrong reference: vcpu should be vcpus",
"file": "src/tools/deploy-ha.sh",
"root_cause": "Used \"vcpu\" instead of \"vcpus\"",
"fix": "Changed vcpu \u2192 vcpus",
"tags": [
"auto-detected",
"wrong-reference",
"sh"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T05:19:12.427Z"
},
{
"id": "bug-243",
"timestamp": "2026-06-01T05:30:33.624Z",
"error_message": "Significant refactor of ",
"file": "src/controller/cluster.c",
"root_cause": "10 lines replaced/restructured",
"fix": "Rewrote 10\u21926 lines (10 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T05:30:33.624Z"
},
{
"id": "bug-244",
"timestamp": "2026-06-01T05:36:27.988Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 7\u219222 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T05:36:27.988Z"
},
{
"id": "bug-245",
"timestamp": "2026-06-01T05:48:05.878Z",
"error_message": "Significant refactor of ",
"file": "src/include/typemap.h",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 5\u219210 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T05:48:05.878Z"
},
{
"id": "bug-246",
"timestamp": "2026-06-01T05:48:40.684Z",
"error_message": "Significant refactor of ",
"file": "src/lib/request.c",
"root_cause": "32 lines replaced/restructured",
"fix": "Rewrote 49\u219260 lines (32 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T05:48:40.684Z"
},
{
"id": "bug-247",
"timestamp": "2026-06-01T06:02:47.254Z",
"error_message": "Significant refactor of ",
"file": ".claude/skills/xce-deploy-ha/SKILL.md",
"root_cause": "7 lines replaced/restructured",
"fix": "Rewrote 17\u219232 lines (7 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T06:02:47.254Z"
},
{
"id": "bug-248",
"timestamp": "2026-06-01T06:03:18.973Z",
"error_message": "Significant refactor of ",
"file": "src/controller/CLAUDE.md",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 6\u21929 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T06:03:18.973Z"
},
{
"id": "bug-249",
"timestamp": "2026-06-01T07:28:15.703Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_ha_connection_reuse.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T07:28:15.703Z"
},
{
"id": "bug-250",
"timestamp": "2026-06-01T07:46:05.128Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: !ep || !ep->data",
"fix": "Added guard clause: if (!ep || !ep->data)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T07:46:05.128Z"
},
{
"id": "bug-251",
"timestamp": "2026-06-01T07:46:59.891Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_connection_reuse.c",
"root_cause": "19 lines replaced/restructured",
"fix": "Rewrote 67\u219286 lines (19 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T07:46:59.891Z"
},
{
"id": "bug-252",
"timestamp": "2026-06-01T08:35:29.969Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'startup_validation.c'",
"fix": "Changed to 'testsuite/test_ha_rdhup_integration.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T08:35:29.969Z"
},
{
"id": "bug-253",
"timestamp": "2026-06-01T10:42:39.262Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-heartbeat-liveness/requirements.md",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 10\u219217 lines (5 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T10:42:39.262Z"
},
{
"id": "bug-254",
"timestamp": "2026-06-01T10:54:01.806Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 6\u219210 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T10:54:01.806Z"
},
{
"id": "bug-255",
"timestamp": "2026-06-01T12:02:55.635Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/cluster.c",
"root_cause": "Condition was: if (rc != 0)",
"fix": "Changed to: if (validate_heartbeat_config(ha_cfg.heartbeat_timeout)",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T12:02:55.635Z"
},
{
"id": "bug-256",
"timestamp": "2026-06-01T12:36:28.381Z",
"error_message": "Wrong reference: startup_validation should be testsuite_test_ha_liveness",
"file": "src/xce.build/build.ninja",
"root_cause": "Used \"startup_validation\" instead of \"testsuite_test_ha_liveness\"",
"fix": "Changed startup_validation \u2192 testsuite_test_ha_liveness",
"tags": [
"auto-detected",
"wrong-reference",
"ninja"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T12:36:28.381Z"
},
{
"id": "bug-257",
"timestamp": "2026-06-01T12:39:55.091Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "76 lines replaced/restructured",
"fix": "Rewrote 112\u2192155 lines (76 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T12:39:55.091Z"
},
{
"id": "bug-258",
"timestamp": "2026-06-01T12:42:30.248Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_liveness.c",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 21\u219224 lines (5 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T12:42:30.248Z"
},
{
"id": "bug-259",
"timestamp": "2026-06-01T12:43:29.946Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_failover.c",
"root_cause": "7 lines replaced/restructured",
"fix": "Rewrote 29\u219247 lines (7 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T12:43:29.946Z"
},
{
"id": "bug-260",
"timestamp": "2026-06-01T14:42:41.325Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: interval_s <= 0",
"fix": "Added guard clause: if (interval_s <= 0)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-06-01T14:44:38.543Z"
},
{
"id": "bug-261",
"timestamp": "2026-06-01T14:44:18.059Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "22 lines replaced/restructured",
"fix": "Rewrote 53\u219221 lines (22 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T14:44:18.059Z"
},
{
"id": "bug-262",
"timestamp": "2026-06-01T15:13:36.229Z",
"error_message": "Significant refactor of ",
"file": "src/controller/cluster.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 8\u219210 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T15:13:36.229Z"
},
{
"id": "bug-263",
"timestamp": "2026-06-01T15:32:59.304Z",
"error_message": "Missing guard clause",
"file": "src/controller/testsuite/test_ha_liveness.c",
"root_cause": "No early return/throw for edge case: !f",
"fix": "Added guard clause: if (!f)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-01T15:32:59.304Z"
},
{
"id": "bug-264",
"timestamp": "2026-06-03T05:20:44.299Z",
"error_message": "Missing error handling in lives",
"file": ".kiro/specs/ha-config-bootstrap/research.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-03T05:20:44.299Z"
},
{
"id": "bug-265",
"timestamp": "2026-06-03T08:47:25.835Z",
"error_message": "Function not marked async",
"file": "src/controller/ha.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-03T08:47:25.835Z"
},
{
"id": "bug-266",
"timestamp": "2026-06-03T08:47:54.376Z",
"error_message": "Function not marked async",
"file": "src/controller/ha.h",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-03T08:47:54.376Z"
},
{
"id": "bug-267",
"timestamp": "2026-06-03T08:48:09.401Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.h",
"root_cause": "11 lines replaced/restructured",
"fix": "Rewrote 14\u21923 lines (11 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-03T08:48:09.401Z"
},
{
"id": "bug-268",
"timestamp": "2026-06-03T08:48:54.248Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_role.c",
"root_cause": "79 lines replaced/restructured",
"fix": "Rewrote 87\u21923 lines (79 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-03T08:48:54.248Z"
},
{
"id": "bug-269",
"timestamp": "2026-06-03T08:50:58.837Z",
"error_message": "Wrong reference: test_am_i_primary should be test_ha_cluster",
"file": "src/controller/testsuite/controller_test.c",
"root_cause": "Used \"test_am_i_primary\" instead of \"test_ha_cluster\"",
"fix": "Changed test_am_i_primary \u2192 test_ha_cluster",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-03T08:51:07.382Z"
},
{
"id": "bug-270",
"timestamp": "2026-06-03T09:07:49.592Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.h",
"root_cause": "8 lines replaced/restructured",
"fix": "Rewrote 10\u21923 lines (8 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-03T09:07:49.592Z"
},
{
"id": "bug-271",
"timestamp": "2026-06-03T09:17:11.528Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "21 lines replaced/restructured",
"fix": "Rewrote 26\u21924 lines (21 removed) | Also: /* ha_check_heartbeat_nocluster() removed from the; * ha_watchdog_thread(). XCE_TESTING shim preserve",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-03T09:18:16.045Z"
},
{
"id": "bug-272",
"timestamp": "2026-06-03T09:22:40.327Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_role.c",
"root_cause": "63 lines replaced/restructured",
"fix": "Rewrote 68\u21924 lines (63 removed) | Also: /* SIGUSR1 must set failover_requested via async-s; static void test_sigusr1_sets_failover_requested(v | Also: RUN_TEST(test_watchdog_starts_and_stops);; RUN_TEST(test_heartbeat_no_action_when_no_primary)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-06-03T09:25:36.265Z"
},
{
"id": "bug-273",
"timestamp": "2026-06-03T14:53:08.631Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-config-bootstrap/manual-tests.md",
"root_cause": "6 lines replaced/restructured",
"fix": "Rewrote 8\u21928 lines (6 removed) | Also: **Expected within 1 second on both standbys:**; **Expected on the winner (needs 1 vote from the ot | Also: defer_config_fetch=1; Config fetch successful from primary (tag=...) | Also: Date:; Commit: (run: cd /home/rshen/projects/xce/worktree",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 4,
"last_seen": "2026-06-03T14:56:43.241Z"
},
{
"id": "bug-274",
"timestamp": "2026-06-03T15:05:10.632Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-config-bootstrap/manual-tests.md",
"root_cause": "95 lines replaced/restructured",
"fix": "Rewrote 158\u219265 lines (95 removed) | Also: - [ ] `ha-term.bin` file exists after election; - [ ] Magic bytes are `0xDEADBEEFCAFEBABE` (little",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-03T15:09:51.822Z"
},
{
"id": "bug-275",
"timestamp": "2026-06-03T23:50:28.482Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "6 lines replaced/restructured",
"fix": "Rewrote 45\u219262 lines (6 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-03T23:50:28.482Z"
},
{
"id": "bug-276",
"timestamp": "2026-06-04T00:24:46.380Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/myapp.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T00:24:46.380Z"
},
{
"id": "bug-277",
"timestamp": "2026-06-04T09:31:40.432Z",
"error_message": "Significant refactor of ",
"file": "src/controller/CLAUDE.md",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 5\u21927 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T09:31:40.432Z"
},
{
"id": "bug-278",
"timestamp": "2026-06-04T09:46:14.610Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-repl-hardening/design.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T09:46:14.610Z"
},
{
"id": "bug-279",
"timestamp": "2026-06-04T11:54:56.114Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-repl-hardening/design.md",
"root_cause": "Had `(checkpoint_lsn, last_received_chunk)`",
"fix": "Changed to `snap.part`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T11:54:56.114Z"
},
{
"id": "bug-280",
"timestamp": "2026-06-04T13:13:54.348Z",
"error_message": "Significant refactor of ",
"file": "src/schema/controller.capnp",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 4\u21924 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"capnp"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T13:13:54.348Z"
},
{
"id": "bug-281",
"timestamp": "2026-06-04T13:38:04.971Z",
"error_message": "Significant refactor of ",
"file": "src/include/typemap.h",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 5\u21927 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T13:38:04.971Z"
},
{
"id": "bug-282",
"timestamp": "2026-06-04T13:48:05.580Z",
"error_message": "Significant refactor of ",
"file": "src/schema/controller.capnp",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 4\u219213 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"capnp"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T13:48:05.580Z"
},
{
"id": "bug-283",
"timestamp": "2026-06-04T13:48:16.712Z",
"error_message": "Significant refactor of ",
"file": "src/include/typemap.h",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 4\u21928 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T13:48:16.712Z"
},
{
"id": "bug-284",
"timestamp": "2026-06-04T14:33:03.464Z",
"error_message": "Missing error handling in XCE_TESTING",
"file": "src/controller/testsuite/test_config_repl.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: /* \u2500\u2500 Task 2.1: OPCode_walCatchupEntry handler \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500; #ifdef XCE_TESTING | Also: /* Task 2.1: OPCode_walCatchupEntry handler */; RUN_TEST(test_wal_catchup_entry_advances_applied_lsn);",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-06-04T14:33:51.476Z"
},
{
"id": "bug-285",
"timestamp": "2026-06-04T14:41:35.073Z",
"error_message": "Missing error handling in XCE_TESTING",
"file": "src/controller/cluster.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: case OPCode_walCatchupEntry:; /* Task 2.1: standby applies a single WAL catch-up entry fro",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-04T14:41:48.239Z"
},
{
"id": "bug-286",
"timestamp": "2026-06-04T14:44:41.114Z",
"error_message": "Significant refactor of ",
"file": "src/controller/cluster.c",
"root_cause": "57 lines replaced/restructured",
"fix": "Rewrote 82\u219216 lines (57 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T14:44:41.114Z"
},
{
"id": "bug-287",
"timestamp": "2026-06-04T14:45:42.730Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T14:45:42.730Z"
},
{
"id": "bug-288",
"timestamp": "2026-06-04T14:46:44.652Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: #include \"persist.h\" /* persist_t, apply_wal_entry */; #include \"typemap.h\" /* wal_catchup_entry_t */",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-04T14:47:53.528Z"
},
{
"id": "bug-289",
"timestamp": "2026-06-04T15:09:54.280Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_config_repl.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T15:09:54.280Z"
},
{
"id": "bug-290",
"timestamp": "2026-06-04T15:22:45.178Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "22 lines replaced/restructured",
"fix": "Rewrote 58\u2192114 lines (22 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T15:22:45.178Z"
},
{
"id": "bug-291",
"timestamp": "2026-06-04T15:51:04.816Z",
"error_message": "Significant refactor of ",
"file": "src/controller/cluster.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 10\u219215 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T15:51:04.816Z"
},
{
"id": "bug-292",
"timestamp": "2026-06-04T16:15:43.743Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: peer_idx < 0 || peer_idx >= MAX_HA_CANDIDATES",
"fix": "Added guard clause: if (peer_idx < 0 || peer_idx >= MAX_HA_CANDI)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T16:15:43.743Z"
},
{
"id": "bug-293",
"timestamp": "2026-06-04T16:19:17.173Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 44\u219289 lines (4 removed) | Also: /* Decode stateReport and call convergence tracker; memset(&sr, 0, sizeof(sr));",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-04T16:21:09.851Z"
},
{
"id": "bug-294",
"timestamp": "2026-06-04T16:45:25.724Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: standby_tag < committed_tag",
"fix": "Added guard clause: if (standby_tag < committed_tag)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T16:45:25.724Z"
},
{
"id": "bug-295",
"timestamp": "2026-06-04T16:57:59.213Z",
"error_message": "Incorrect value in code",
"file": "src/controller/testsuite/test_ha_role.c",
"root_cause": "Had \"test_evaluate_repl_action_stream_wal_from_zero: P",
"fix": "Changed to \"test_evaluate_repl_action_send_snapshot_lsn_zero:",
"tags": [
"auto-detected",
"wrong-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T16:57:59.213Z"
},
{
"id": "bug-296",
"timestamp": "2026-06-04T16:58:16.627Z",
"error_message": "Wrong reference: test_evaluate_repl_action_stream_wal_from_zero should be test_evaluate_repl_action_send_snapshot_lsn_zero",
"file": "src/controller/testsuite/test_ha_role.c",
"root_cause": "Used \"test_evaluate_repl_action_stream_wal_from_zero\" instead of \"test_evaluate_repl_action_send_snapshot_lsn_zero\"",
"fix": "Changed test_evaluate_repl_action_stream_wal_from_zero \u2192 test_evaluate_repl_action_send_snapshot_lsn_zero",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T16:58:16.627Z"
},
{
"id": "bug-297",
"timestamp": "2026-06-04T17:08:18.571Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: !ha || peer_idx < 0 || peer_idx >= MAX_HA_CANDIDATES",
"fix": "Added guard clause: if (!ha || peer_idx < 0 || peer_idx >= MAX_H)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T17:08:18.571Z"
},
{
"id": "bug-298",
"timestamp": "2026-06-04T17:34:23.150Z",
"error_message": "Missing error handling in XCE_TESTING",
"file": "src/controller/testsuite/test_config_repl.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T17:34:23.150Z"
},
{
"id": "bug-299",
"timestamp": "2026-06-04T17:36:34.006Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 71\u219293 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T17:36:34.006Z"
},
{
"id": "bug-300",
"timestamp": "2026-06-04T17:40:05.798Z",
"error_message": "Missing error handling in XCE_TESTING",
"file": "src/controller/config_repl.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T17:40:05.798Z"
},
{
"id": "bug-301",
"timestamp": "2026-06-04T23:09:43.701Z",
"error_message": "Missing guard clause",
"file": "src/controller/testsuite/test_config_repl.c",
"root_cause": "No early return/throw for edge case: g_snaptest_chunk_count >= 16",
"fix": "Added guard clause: if (g_snaptest_chunk_count >= 16)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T23:09:43.701Z"
},
{
"id": "bug-302",
"timestamp": "2026-06-04T23:10:44.426Z",
"error_message": "Missing guard clause",
"file": "src/controller/config_repl.c",
"root_cause": "No early return/throw for edge case: !snap_dir",
"fix": "Added guard clause: if (!snap_dir)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T23:10:44.426Z"
},
{
"id": "bug-303",
"timestamp": "2026-06-04T23:11:48.274Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 6\u219215 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T23:11:48.274Z"
},
{
"id": "bug-304",
"timestamp": "2026-06-04T23:21:45.737Z",
"error_message": "Missing error handling in XCE_TESTING",
"file": "src/controller/config_repl.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T23:21:45.737Z"
},
{
"id": "bug-305",
"timestamp": "2026-06-04T23:22:03.572Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_config_repl.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 9\u219212 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-04T23:22:03.572Z"
},
{
"id": "bug-306",
"timestamp": "2026-06-05T01:16:16.713Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-repl-hardening/tasks.md",
"root_cause": "9 lines replaced/restructured",
"fix": "Rewrote 9\u219235 lines (9 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-05T01:16:16.713Z"
},
{
"id": "bug-307",
"timestamp": "2026-06-05T01:18:21.265Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 7\u219210 lines (4 removed) | Also: /* Task 3.5: snapshot transfer.; * Creates a checkpoint in the delaymgr thread (not",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-05T01:18:36.333Z"
},
{
"id": "bug-308",
"timestamp": "2026-06-05T01:19:20.356Z",
"error_message": "Missing guard clause",
"file": "src/controller/config_repl.c",
"root_cause": "No early return/throw for edge case: !d",
"fix": "Added guard clause: if (!d)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-05T01:19:20.356Z"
},
{
"id": "bug-309",
"timestamp": "2026-06-05T01:33:20.146Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: !ha || !p || !snap_dir || !chunk",
"fix": "Added guard clause: if (!ha || !p || !snap_dir || !chunk)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-05T01:33:20.146Z"
},
{
"id": "bug-310",
"timestamp": "2026-06-05T01:34:06.660Z",
"error_message": "Missing guard clause",
"file": "src/controller/cluster.c",
"root_cause": "No early return/throw for edge case: !chunk",
"fix": "Added guard clause: if (!chunk)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-05T01:34:06.660Z"
},
{
"id": "bug-311",
"timestamp": "2026-06-05T02:21:15.033Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: ua > ub",
"fix": "Added guard clause: if (ua > ub)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-05T02:21:15.033Z"
},
{
"id": "bug-312",
"timestamp": "2026-06-05T02:47:32.237Z",
"error_message": "Wrong reference: uintptr_t should be void",
"file": "src/controller/testsuite/test_ha_evaluate_committing.c",
"root_cause": "Used \"uintptr_t\" instead of \"void\"",
"fix": "Changed uintptr_t \u2192 void",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-05T02:47:32.237Z"
},
{
"id": "bug-313",
"timestamp": "2026-06-05T03:35:34.699Z",
"error_message": "Significant refactor of ",
"file": "src/controller/config_repl.c",
"root_cause": "149 lines replaced/restructured",
"fix": "Rewrote 207\u219238 lines (149 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-05T03:35:34.699Z"
},
{
"id": "bug-314",
"timestamp": "2026-06-05T04:01:58.721Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: !ha",
"fix": "Added guard clause: if (!ha)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-05T04:01:58.721Z"
},
{
"id": "bug-315",
"timestamp": "2026-06-05T04:52:32.206Z",
"error_message": "Wrong reference: 10000 should be 60000",
"file": "src/controller/ha.h",
"root_cause": "Used \"10000\" instead of \"60000\"",
"fix": "Changed 10000 \u2192 60000",
"tags": [
"auto-detected",
"wrong-reference",
"h"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-05T04:52:51.260Z"
},
{
"id": "bug-316",
"timestamp": "2026-06-05T04:53:20.573Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 24\u219242 lines (5 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-05T04:53:20.573Z"
},
{
"id": "bug-317",
"timestamp": "2026-06-05T04:53:55.034Z",
"error_message": "Wrong reference: 10000 should be HA_DEFAULT_COMMITTING_TIMEOUT_MS",
"file": "src/controller/testsuite/test_ha_evaluate_committing.c",
"root_cause": "Used \"10000\" instead of \"HA_DEFAULT_COMMITTING_TIMEOUT_MS\"",
"fix": "Changed 10000 \u2192 HA_DEFAULT_COMMITTING_TIMEOUT_MS",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-05T04:53:55.034Z"
},
{
"id": "bug-318",
"timestamp": "2026-06-05T05:10:13.646Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/config_repl.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-05T05:10:13.646Z"
},
{
"id": "bug-319",
"timestamp": "2026-06-05T05:39:48.707Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_config_repl.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-05T05:39:48.707Z"
},
{
"id": "bug-320",
"timestamp": "2026-06-05T06:50:00Z",
"error_message": "3-node startup: majority convergence never fires; cluster falls through to committing_timeout degraded-mode WARN",
"file": "src/controller/ha.c",
"root_cause": "ha->n_peers was set to candidates_count (3, total including self) in ha_start_election_async. ha_check_majority_convergence loops i=0..n_peers-1 checking standby_converged[], but standby_converged[] is indexed by votes_idx (relative, self excluded: 0..n_other-1). With n_peers=3, it checked standby_converged[2] which is never set, so n_converged (2) < n_peers (3) always \u2014 majority convergence path could never succeed.",
"fix": "Changed ha->n_peers = n_peers to ha->n_peers = n_other (= n_peers-1 = other-node count). Moved the assignment after n_other is computed. ha_repl_ack_received quorum formula (ha->n_peers+2)/2 still yields correct majority for both old and new value.",
"tags": [
"ha",
"majority-convergence",
"n_peers",
"off-by-one",
"integration-test"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-05T06:50:00Z"
},
{
"id": "bug-321",
"timestamp": "2026-06-05T07:31:54.806Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 7\u219212 lines (2 removed) | Also: /* Disarm any existing poll ctx */; free(old);",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-05T07:32:06.251Z"
},
{
"id": "bug-006",
"timestamp": "2026-06-05T07:23:00.000Z",
"error_message": "AddressSanitizer: attempting double-free on sctx in ha_connect_to_peer",
"file": "src/controller/ha.c",
"root_cause": "endpoint_fini calls FREEUP(ep->data) which frees sctx, then ha_connect_to_peer also calls free(sctx) \u2014 double-free at lines 3594-3595 and 3600-3601",
"fix": "Set ep->data = NULL before endpoint_fini so FREEUP becomes a no-op; then free(sctx) explicitly in the error paths",
"tags": [
"double-free",
"asan",
"ha_connect_to_peer",
"endpoint_fini",
"integration-test"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-05T07:23:00.000Z"
},
{
"id": "bug-007",
"timestamp": "2026-06-05T07:23:00.000Z",
"error_message": "AddressSanitizer: heap-use-after-free in liveness_poll_fn at ha.c:3293 \u2014 reading ctx->cancelled after ha_arm_heartbeat_timeout_vtask freed the old ctx",
"file": "src/controller/ha.c",
"root_cause": "ha_arm_heartbeat_timeout_vtask freed the old liveness_poll_ctx_t immediately after setting cancelled=1, but the delaymgr task was already in flight reading ctx->cancelled=0 and then continued to read ctx->ha after free",
"fix": "ha_arm_heartbeat_timeout_vtask no longer frees old ctx; liveness_poll_fn now frees ctx when it fires with cancelled=1 (guarded by #ifndef XCE_TESTING to avoid bad-free on stack-allocated test ctxs)",
"tags": [
"heap-use-after-free",
"asan",
"liveness_poll_fn",
"ha_arm_heartbeat_timeout_vtask",
"race-condition",
"integration-test"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-05T07:23:00.000Z"
},
{
"id": "bug-324",
"timestamp": "2026-06-05T08:26:02.778Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 41\u219287 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-05T08:26:02.778Z"
},
{
"id": "bug-325",
"timestamp": "2026-06-06T11:00:00.057Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "6 lines replaced/restructured",
"fix": "Rewrote 8\u21925 lines (6 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-06T11:00:00.057Z"
},
{
"id": "bug-326",
"timestamp": "2026-06-06T11:06:46.509Z",
"error_message": "Wrong reference: DEBUG2 should be INFO",
"file": "src/controller/ha.c",
"root_cause": "Used \"DEBUG2\" instead of \"INFO\"",
"fix": "Changed DEBUG2 \u2192 INFO",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-06T11:06:46.509Z"
},
{
"id": "bug-327",
"timestamp": "2026-06-06T12:11:21.422Z",
"error_message": "Incorrect value in code",
"file": "src/controller/ha.c",
"root_cause": "Had \"HA: heartbeat tick (role=%d, n_standbys=%d)\"",
"fix": "Changed to \"HA: primary heartbeat armed\"",
"tags": [
"auto-detected",
"wrong-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-06T12:11:21.422Z"
},
{
"id": "bug-328",
"timestamp": "2026-06-06T13:02:49.052Z",
"error_message": "Missing guard clause",
"file": "src/lib/delay.c",
"root_cause": "No early return/throw for edge case: t1_is_ms && t2_is_ms",
"fix": "Added guard clause: if (t1_is_ms && t2_is_ms)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-06T13:02:49.052Z"
},
{
"id": "bug-329",
"timestamp": "2026-06-08T13:12:54.436Z",
"error_message": "Function not marked async",
"file": ".kiro/specs/raft-library/research.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-08T13:12:54.436Z"
},
{
"id": "bug-330",
"timestamp": "2026-06-09T08:33:08.522Z",
"error_message": "Significant refactor of ",
"file": "src/docs/cluster-config-split-analysis.md",
"root_cause": "8 lines replaced/restructured",
"fix": "Rewrote 11\u219221 lines (8 removed) | Also: ### Phase 1: Schema split (wire-compatible); 4. **Keep the old `ClusterConfig` fields intact** ",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-09T08:35:24.717Z"
},
{
"id": "bug-331",
"timestamp": "2026-06-09T09:28:15.795Z",
"error_message": "Significant refactor of ",
"file": "src/controller/myapp.c",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 27\u219236 lines (5 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-09T09:28:15.795Z"
},
{
"id": "bug-332",
"timestamp": "2026-06-09T09:41:02.753Z",
"error_message": "Significant refactor of ",
"file": "src/lib/raft/raft.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 9\u219215 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-09T09:41:02.753Z"
},
{
"id": "bug-333",
"timestamp": "2026-06-09T10:23:01.661Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "37 lines replaced/restructured",
"fix": "Rewrote 41\u21924 lines (37 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-09T10:23:01.661Z"
},
{
"id": "bug-334",
"timestamp": "2026-06-09T12:56:11.095Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/ha.c",
"root_cause": "Condition was: if (my_role == CTRL_STANDBY && ha_heartbeat_is_fresh(h)",
"fix": "Changed to: if (my_role == CTRL_STANDBY && ha->primary_ctrl_fd >= )",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-09T12:56:11.095Z"
},
{
"id": "bug-335",
"timestamp": "2026-06-09T00:00:00Z",
"error_message": "UPDATE_RESVALS dequeue writes worker resval at index 0 unconditionally instead of resolving resource idx by name",
"file": "src/scheduler/src/scheduler.c",
"root_cause": "zarray_put(&w->resvals, 0, rv->val) hardcodes index 0; worker resvals are indexed by resource idx (see schedobj.c:291)",
"fix": "FIXED 2026-06-10: UPDATE_RESVALS now resolves rv->name via key_find on sched->resmgr and writes to r->idx (matching UPDATE_RESVALS_FULL pattern) instead of hardcoding index 0.",
"tags": [
"scheduler",
"resvals",
"latent-bug",
"gap-analysis",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T17:00:00Z"
},
{
"id": "bug-336",
"timestamp": "2026-06-09T00:00:00Z",
"error_message": "XCE_SCHED_OP_UPDATE_RESOURCES cannot update existing resources; makeResource returns NULL/EEXIST and return value is silently ignored",
"file": "src/scheduler/src/scheduler.c",
"root_cause": "makeResource_ in src/lib/resobj.c rejects duplicates with EEXIST; dequeue case ignores NULL return, so 'add or update' (EARS-UB-1.1) is only 'add'",
"fix": "FIXED 2026-06-10: UPDATE_RESOURCES now checks makeResource return; on NULL (EEXIST) looks up existing resource by name and updates valtype/ordtype/flags/interval fields in place (add-or-update semantics).",
"tags": [
"scheduler",
"resources",
"latent-bug",
"gap-analysis",
"silent-error",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T17:00:00Z"
},
{
"id": "bug-337",
"timestamp": "2026-06-09T00:02:00Z",
"error_message": "Vote-deny gate inert: ha_heartbeat_is_fresh reads ha->last_heartbeat which has no production writer after the liveness refactor",
"file": "src/controller/ha.c",
"root_cause": "ha-heartbeat-liveness refactor moved activity tracking to ha->last_activity but ha_heartbeat_is_fresh (ha.c:1762) still reads the orphaned last_heartbeat timespec; only tests write it, so freshness is always stale after ~heartbeat_timeout_ms of uptime and standbys grant votes despite a live primary (gates at ha.c:214 and ha.c:1841)",
"fix": "FIXED 2026-06-09: ha_heartbeat_is_fresh now reads ha->last_activity (returns 0 when last_activity==0); dead last_heartbeat field removed from ha_state_t; test_ha_vote_gate.c helper rewritten as set_last_activity_age and fresh/stale tests now also set primary_ctrl_fd. All tests green.",
"tags": [
"ha",
"heartbeat",
"liveness",
"vote-gate",
"dead-field",
"gap-analysis"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-09T17:30:00Z"
},
{
"id": "bug-338",
"timestamp": "2026-06-09T00:00:00Z",
"error_message": "controller_unit_test: test_vote_granted_to_same_candidate_same_term FAIL (Expected 1 Was 0); test_standby_fresh_heartbeat_denies_vote_request FAIL (Expected 0 Was 1, Req 6.2)",
"file": "src/controller/ha.c",
"root_cause": "Uncommitted handle_request_vote changes: (1) duplicate-vote deny made candidate-agnostic (denies same-candidate idempotent re-grant, diverging from raft.c which keeps re-grant); (2) STANDBY vote deny now requires primary_ctrl_fd >= 0, tests use ha_init default fd=-1",
"fix": "FIXED 2026-06-09: handle_request_vote Req 2.6 check restored to same-candidate idempotent re-grant (deny only when voted_for_name differs from candidate_id), matching raft.c; test_standby_fresh_heartbeat_denies_vote_request updated to set primary_ctrl_fd=999. Also fixed myapp.c leader_known check to treat a vote for myconf->name as a self-vote (production records real name, not the 'self' test placeholder). All tests green.",
"tags": [
"ha",
"election",
"vote-gate",
"raft",
"unit-test",
"uncommitted-drift",
"gap-analysis"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-09T17:30:00Z"
},
{
"id": "bug-339",
"timestamp": "2026-06-10T00:23:18.666Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: last == 0",
"fix": "Added guard clause: if (last == 0)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T00:23:18.666Z"
},
{
"id": "bug-340",
"timestamp": "2026-06-10T00:23:21.918Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/ha.c",
"root_cause": "Condition was: if (ha->voted_for_term == term && ha->voted_for_name[0)",
"fix": "Changed to: if (ha->voted_for_term == term && ha->voted_for_name[0)",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T00:23:21.918Z"
},
{
"id": "bug-341",
"timestamp": "2026-06-10T00:23:52.563Z",
"error_message": "Wrong reference: last_heartbeat should be voted_for_term",
"file": "src/controller/ha.h",
"root_cause": "Used \"last_heartbeat\" instead of \"voted_for_term\"",
"fix": "Changed last_heartbeat \u2192 voted_for_term",
"tags": [
"auto-detected",
"wrong-reference",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T00:23:52.563Z"
},
{
"id": "bug-342",
"timestamp": "2026-06-10T00:24:41.873Z",
"error_message": "Significant refactor of ",
"file": "src/controller/myapp.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 13\u219217 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T00:24:41.873Z"
},
{
"id": "bug-339",
"timestamp": "2026-06-09T17:30:00Z",
"error_message": "raft_init discards persisted vote term: voted_for_term reset to 0 even when initial_voted_for is restored, so duplicate-vote check cannot match after restart (possible double vote in same term)",
"file": "src/lib/raft/raft.c",
"root_cause": "raft_init set s->voted_for_term=0 unconditionally; persistence writes (term, voted_for) as a pair, so a restored vote belongs to initial_term",
"fix": "FIXED 2026-06-09: voted_for_term = (initial_voted_for != -1) ? initial_term : 0. Added test_proto_H6_restored_vote_blocks_second_vote and strengthened H1 assertion in src/lib/testsuite/test_raft.c. Found as candidate bug C2 in raft-library gap analysis.",
"tags": [
"raft",
"election-safety",
"restart",
"persistence",
"gap-analysis"
],
"related_bugs": [
"bug-338"
],
"occurrences": 1,
"last_seen": "2026-06-09T17:30:00Z"
},
{
"id": "bug-344",
"timestamp": "2026-06-10T00:32:34.054Z",
"error_message": "Incorrect value in code",
"file": "../../../../../claude/.claude/projects/-home-rshen-projects-xce-xce/memory/project_ha_bootstrap_progress.md",
"root_cause": "Had `ha->last_heartbeat`",
"fix": "Changed to `ha->last_activity`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T00:32:34.054Z"
},
{
"id": "bug-345",
"timestamp": "2026-06-10T01:36:59.112Z",
"error_message": "Missing error handling in unknown",
"file": "src/schema/controller.capnp",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"capnp"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T01:36:59.112Z"
},
{
"id": "bug-346",
"timestamp": "2026-06-10T01:37:29.771Z",
"error_message": "Missing error handling in struct",
"file": "src/include/typemap.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T01:37:29.771Z"
},
{
"id": "bug-347",
"timestamp": "2026-06-10T01:37:41.741Z",
"error_message": "Significant refactor of ",
"file": "src/include/typemap.h",
"root_cause": "6 lines replaced/restructured",
"fix": "Rewrote 16\u219231 lines (6 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T01:37:41.741Z"
},
{
"id": "bug-348",
"timestamp": "2026-06-10T01:38:31.262Z",
"error_message": "Missing error handling in unknown",
"file": "src/include/request.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T01:38:31.262Z"
},
{
"id": "bug-349",
"timestamp": "2026-06-10T01:39:19.368Z",
"error_message": "Missing guard clause",
"file": "src/lib/request.c",
"root_cause": "No early return/throw for edge case: l.p.type == CAPN_NULL",
"fix": "Added guard clause: if (l.p.type == CAPN_NULL)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T01:39:19.368Z"
},
{
"id": "bug-350",
"timestamp": "2026-06-10T01:39:31.683Z",
"error_message": "Missing error handling in unknown",
"file": "src/lib/request.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: if (req->body_which == Request_body_walcatchupentrymsg; && req->body.walcatchupentrymsg != NULL) { | Also: /* wal_entry_to_wire: fill a wire WalCatchupEntry from a C e; * fields and raw payload bytes. Sub-entry nesting is one le",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-06-10T01:40:14.312Z"
},
{
"id": "bug-351",
"timestamp": "2026-06-09T00:00:00Z",
"error_message": "request.c: passing argument 'from' of xce_wal_batch_encode_raw / xce_snapshot_chunk_encode_raw from incompatible pointer type (xce_peerinfo_t** vs xce_peerinfo_t*)",
"file": "src/lib/request.c",
"root_cause": "ep->peer is already xce_peerinfo_t* (netio.h endpoint struct); call sites passed &ep->peer producing xce_peerinfo_t**",
"fix": "Dropped the & at both call sites (xce_wal_batch_req_raw line 547, xce_snapshot_chunk_req_raw line 633) to pass ep->peer directly",
"tags": [
"build-failure",
"pointer-type",
"c",
"request.c",
"ha-replication"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-09T00:00:00Z"
},
{
"id": "bug-352",
"timestamp": "2026-06-10T01:46:28.589Z",
"error_message": "Significant refactor of ",
"file": "src/controller/config_repl.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 29\u219232 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T01:46:28.589Z"
},
{
"id": "bug-353",
"timestamp": "2026-06-10T01:46:45.213Z",
"error_message": "Wrong reference: payload should be raw_payload",
"file": "src/controller/config_repl.c",
"root_cause": "Used \"payload\" instead of \"raw_payload\"",
"fix": "Changed payload \u2192 raw_payload",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T01:46:45.213Z"
},
{
"id": "bug-354",
"timestamp": "2026-06-10T01:47:22.301Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 13\u219216 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T01:47:22.301Z"
},
{
"id": "bug-355",
"timestamp": "2026-06-10T01:49:05.465Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_role.c",
"root_cause": "7 lines replaced/restructured",
"fix": "Rewrote 49\u2192137 lines (7 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T01:49:05.465Z"
},
{
"id": "bug-356",
"timestamp": "2026-06-10T01:49:36.997Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T01:49:36.997Z"
},
{
"id": "bug-352",
"timestamp": "2026-06-10T02:10:00Z",
"error_message": "ASAN heap-use-after-free in free_packet (netio.c:333) via endpoint_fini <- raft_cb_become_follower (loser path) <- raft_on_vote_reply; election loser crashes on vote-reply processing",
"file": "src/controller/ha.c",
"root_cause": "vote_reply_decode_and_dispatch took pkt = ep->fsm_in.pkt and freed it WITHOUT clearing ep->fsm_in.pkt; vote_reply_dispatch can synchronously reach raft_cb_become_follower -> endpoint_fini(ep), which frees the stale fsm_in.pkt again. repl_ack_decode_and_dispatch already nulls the pointer (correct pattern); the vote-reply path missed it.",
"fix": "FIXED 2026-06-10: ep->fsm_in.pkt = NULL immediately after taking ownership in vote_reply_decode_and_dispatch (ha.c:2413), matching repl_ack_decode_and_dispatch. Found by task 7.7 E2E (3-node deploy, election loser crash).",
"tags": [
"ha",
"election",
"asan",
"use-after-free",
"packet-ownership",
"netio",
"e2e"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T02:10:00Z"
},
{
"id": "bug-358",
"timestamp": "2026-06-10T03:55:44.698Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/config_repl.c",
"root_cause": "Condition was: if (!rcpr->raw_bytes || rcpr->raw_bytes_len == 0 || !r)",
"fix": "Changed to: if ((ctrl_role_t)",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T03:55:44.698Z"
},
{
"id": "bug-359",
"timestamp": "2026-06-10T04:16:25.052Z",
"error_message": "Missing guard clause",
"file": "src/scheduler/src/scheduler.c",
"root_cause": "No early return/throw for edge case: r == NULL",
"fix": "Added guard clause: if (r == NULL)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-10T04:16:28.320Z"
},
{
"id": "bug-360",
"timestamp": "2026-06-10T04:17:09.223Z",
"error_message": "Significant refactor of ",
"file": "src/scheduler/src/scheduler.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 4\u21926 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T04:17:09.223Z"
},
{
"id": "bug-361",
"timestamp": "2026-06-10T04:47:09.048Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/ha.c",
"root_cause": "Condition was: if (opcode == OPCode_requestVote || opcode == OPCode_p)",
"fix": "Changed to: if (opcode == OPCode_requestVote ||\n opcode)",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T04:47:09.048Z"
},
{
"id": "bug-353",
"timestamp": "2026-06-10T17:30:00Z",
"error_message": "Config push silently rejected when standby is in CTRL_ELECTING: ha_dispatch_gate only allows requestVote/probeConfigTag, returning -E_XCE_ERR_NOT_READY for all other opcodes. If liveness poll fires during election window, any incoming config push is discarded.",
"file": "src/controller/ha.c",
"root_cause": "CTRL_ELECTING gate in ha_dispatch_gate (ha.c:1464) allowed only vote/probe opcodes. Config push from primary arriving during the ELECTING window (after liveness-poll-triggered failover, before election result) was rejected with -E_XCE_ERR_NOT_READY (10013). Standby never saved config, leaving conf dir empty.",
"fix": "FIXED 2026-06-10: Added OPCode_hello, OPCode_nop, OPCode_replConfigPush, OPCode_walCatchupEntry, OPCode_snapshotTransfer to CTRL_ELECTING allowlist. A campaigning node must accept replication from the current primary to stay current for both win and loss paths. Controller suite green.",
"tags": [
"ha",
"dispatch-gate",
"election",
"config-replication",
"silent-failure"
],
"related_bugs": [
"bug-335",
"bug-336"
],
"occurrences": 1,
"last_seen": "2026-06-10T17:30:00Z"
},
{
"id": "bug-363",
"timestamp": "2026-06-10T04:58:30.903Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 9\u219215 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T04:58:30.903Z"
},
{
"id": "bug-364",
"timestamp": "2026-06-10T06:26:24.340Z",
"error_message": "Incorrect value in code",
"file": "src/controller/CLAUDE.md",
"root_cause": "Had `CTRL_ELECTING`",
"fix": "Changed to `CTRL_INIT`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T06:26:24.340Z"
},
{
"id": "bug-365",
"timestamp": "2026-06-10T06:32:15.362Z",
"error_message": "Significant refactor of ",
"file": "src/controller/cluster.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 8\u219213 lines (3 removed) | Also: /* Req 4.1: ctrlhello counts as primary activity \u2014; if ((ctrl_role_t)atomic_load_explicit(&c->ha.role,",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-10T06:35:56.354Z"
},
{
"id": "bug-366",
"timestamp": "2026-06-10T06:32:18.661Z",
"error_message": "Significant refactor of ",
"file": "src/controller/config_repl.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 6\u219212 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T06:32:18.661Z"
},
{
"id": "bug-367",
"timestamp": "2026-06-10T07:56:21.347Z",
"error_message": "Missing error handling in XCE_TESTING",
"file": "src/controller/testsuite/test_repl_unit.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: /* =========================================================; * Task 1.1: repl_broadcast send path tests",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-10T07:57:02.036Z"
},
{
"id": "bug-368",
"timestamp": "2026-06-10T07:57:40.792Z",
"error_message": "Wrong reference: WAL_JOB should be WAL_JOB_SUBMIT",
"file": "src/controller/testsuite/test_repl_unit.c",
"root_cause": "Used \"WAL_JOB\" instead of \"WAL_JOB_SUBMIT\"",
"fix": "Changed WAL_JOB \u2192 WAL_JOB_SUBMIT",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T07:57:40.792Z"
},
{
"id": "bug-369",
"timestamp": "2026-06-10T07:58:15.167Z",
"error_message": "Missing error handling in XCE_TESTING",
"file": "src/controller/repl.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T07:58:15.167Z"
},
{
"id": "bug-370",
"timestamp": "2026-06-10T07:58:38.900Z",
"error_message": "Significant refactor of ",
"file": "src/controller/repl.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 42\u219265 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T07:58:38.900Z"
},
{
"id": "bug-371",
"timestamp": "2026-06-10T07:59:24.268Z",
"error_message": "Wrong reference: DEBUG3 should be TRACE",
"file": "src/controller/repl.c",
"root_cause": "Used \"DEBUG3\" instead of \"TRACE\"",
"fix": "Changed DEBUG3 \u2192 TRACE",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T07:59:24.268Z"
},
{
"id": "bug-372",
"timestamp": "2026-06-10T08:42:26.121Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.h",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 12\u219216 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T08:42:26.121Z"
},
{
"id": "bug-373",
"timestamp": "2026-06-10T08:45:30.400Z",
"error_message": "Wrong reference: request should be ep",
"file": "src/controller/cluster.c",
"root_cause": "Used \"request\" instead of \"ep\"",
"fix": "Changed request \u2192 ep",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T08:45:30.400Z"
},
{
"id": "bug-374",
"timestamp": "2026-06-10T08:47:48.296Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_ha_role.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: /* Task 3.3 (ha-wal-replication): dispatch gate standby-role; RUN_TEST(test_dispatch_gate_allows_wal_catchup_in_standby_ro",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-10T08:48:00.267Z"
},
{
"id": "bug-375",
"timestamp": "2026-06-10T08:50:27.397Z",
"error_message": "Missing error handling in struct",
"file": "src/include/typemap.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T08:50:27.397Z"
},
{
"id": "bug-376",
"timestamp": "2026-06-10T09:17:35.218Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/ha.c",
"root_cause": "Condition was: if (opcode == OPCode_nop)",
"fix": "Changed to: if (rep_s.data_which == RequestReply_data_walackreplym)",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T09:17:35.218Z"
},
{
"id": "bug-377",
"timestamp": "2026-06-10T09:59:08.979Z",
"error_message": "Missing error handling in XCE_TESTING",
"file": "src/controller/testsuite/test_p2_integration.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T09:59:08.979Z"
},
{
"id": "bug-378",
"timestamp": "2026-06-10T10:02:00.000Z",
"error_message": "AddressSanitizer: global-buffer-overflow in dataq_enq via xce_wal_batch_req_raw <- repl_broadcast <- persist_wal_async",
"file": "src/controller/testsuite/test_p2_integration.c",
"root_cause": "Tests 8 and 9 declared ep_a/ep_b/g_ep9_a/g_ep9_b as 'static int' (4 bytes) and passed them to repl_add_standby without (void*) cast. repl_broadcast then called xce_wal_batch_req_raw(s->ep, ...) using the stored int* as a real network endpoint, causing an 8-byte read past the 4-byte int. Neither test installed repl_broadcast_send_hook to intercept the call.",
"fix": "Added #include typemap.h; added extern repl_broadcast_send_hook declaration guarded by XCE_TESTING; added p2_drop_send_hook no-op; installed hook around persist_wal_sync_append in tests 8 and 9; fixed missing (void*) casts on all four ep variables",
"tags": [
"asan",
"global-buffer-overflow",
"repl_broadcast",
"unit-test",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T10:02:00.000Z"
},
{
"id": "bug-379",
"timestamp": "2026-06-10T10:36:53.011Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_p2_integration.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 50\u219272 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T10:36:53.011Z"
},
{
"id": "bug-380",
"timestamp": "2026-06-10T10:37:21.924Z",
"error_message": "Wrong reference: test_catchup_full_lifecycle_integration should be test_single_node_committed_lsn_unchanged",
"file": "src/controller/testsuite/test_p2_integration.c",
"root_cause": "Used \"test_catchup_full_lifecycle_integration\" instead of \"test_single_node_committed_lsn_unchanged\"",
"fix": "Changed test_catchup_full_lifecycle_integration \u2192 test_single_node_committed_lsn_unchanged",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T10:37:21.924Z"
},
{
"id": "bug-381",
"timestamp": "2026-06-10T10:37:49.028Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_repl_unit.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T10:37:49.028Z"
},
{
"id": "bug-382",
"timestamp": "2026-06-10T11:54:19.749Z",
"error_message": "Function not marked async",
"file": ".kiro/specs/ha-wal-replication/tasks.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T11:54:19.749Z"
},
{
"id": "bug-383",
"timestamp": "2026-06-10T14:12:27.285Z",
"error_message": "Significant refactor of ",
"file": ".kiro/steering/product.md",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 13\u219222 lines (5 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T14:12:27.286Z"
},
{
"id": "bug-384",
"timestamp": "2026-06-10T14:13:01.581Z",
"error_message": "Function not marked async",
"file": ".kiro/steering/tech.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T14:13:01.581Z"
},
{
"id": "bug-385",
"timestamp": "2026-06-10T14:38:11.810Z",
"error_message": "Significant refactor of ",
"file": "CLAUDE.md",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 5\u21925 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T14:38:11.810Z"
},
{
"id": "bug-386",
"timestamp": "2026-06-10T14:43:53.161Z",
"error_message": "Function not marked async",
"file": "CLAUDE.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-10T14:43:53.161Z"
},
{
"id": "bug-387",
"timestamp": "2026-06-10T14:53:19.493Z",
"error_message": "Significant refactor of ",
"file": "src/controller/CLAUDE.md",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 6\u21925 lines (3 removed) | Also: ### Controllers; - Struct: `type {Resource}Controller struct{}`",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-10T14:55:18.463Z"
},
{
"id": "bug-388",
"timestamp": "2026-06-10T14:54:18.503Z",
"error_message": "Function not marked async",
"file": "src/controller/CLAUDE.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-10T14:54:53.661Z"
},
{
"id": "bug-389",
"timestamp": "2026-06-11T02:46:08.749Z",
"error_message": "Wrong reference: signal should be stdio",
"file": "src/lib/delay.c",
"root_cause": "Used \"signal\" instead of \"stdio\"",
"fix": "Changed signal \u2192 stdio",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T02:46:08.749Z"
},
{
"id": "bug-390",
"timestamp": "2026-06-11T03:30:54.341Z",
"error_message": "Missing error handling in XCE_TESTING",
"file": "src/controller/ha.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T03:30:54.341Z"
},
{
"id": "bug-391",
"timestamp": "2026-06-11T03:41:14.912Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: !ha",
"fix": "Added guard clause: if (!ha)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T03:41:14.912Z"
},
{
"id": "bug-392",
"timestamp": "2026-06-11T03:46:02.642Z",
"error_message": "Missing guard clause",
"file": "src/controller/persist.c",
"root_cause": "No early return/throw for edge case: sync_rc_out",
"fix": "Added guard clause: if (sync_rc_out)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T03:46:02.642Z"
},
{
"id": "bug-393",
"timestamp": "2026-06-11T03:47:03.826Z",
"error_message": "Significant refactor of ",
"file": "src/controller/job.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 15\u219228 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T03:47:03.826Z"
},
{
"id": "bug-394",
"timestamp": "2026-06-11T05:09:37.037Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-consistency-invariants/research.md",
"root_cause": "Had `persist_truncate_wal_above`",
"fix": "Changed to `restore_job`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T05:09:37.037Z"
},
{
"id": "bug-395",
"timestamp": "2026-06-11T05:10:14.835Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-consistency-invariants/research.md",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 7\u21927 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T05:10:14.835Z"
},
{
"id": "bug-396",
"timestamp": "2026-06-10T22:45:00-07:00",
"error_message": "Worker job state notifications (OPCode_notify) are permanently lost when the controller dispatch gate rejects them (quorum loss / COMMITTING window): worker never reads replies, never retries, no rejoin resync",
"file": "src/worker/src/controller_connector.c, src/lib/xceapi.c, src/controller/cluster.c",
"root_cause": "xce_notify is enqueue-and-forget (no cbuf_get); error replies dropped via cbuf_tryput -EAGAIN (xcectx.c:304); xcecd_job_finished return ignored (FIXME at xcecd_worker_utils.c:298); xce_join_req carries no running-job state so rejoin cannot resync",
"fix": "FIXED 2026-06-12 (ha-commit-barrier-rollout tasks 1.2+4.2+4.3): dispatch gate admits fact opcodes (notify/update/setpreason/clrpreason) without write quorum (ha.c CTRL_PRIMARY allowlist); facts append via RETAIN (log-is-the-queue, no timeout) and commit when quorum returns. End-to-end retention proof: test_fact_retention_across_quorum_loss. Worker-side redelivery gap remains (worker-rejoin-resync backlog covers disconnect windows).",
"tags": [
"ha",
"notify",
"silent-data-loss",
"worker",
"quorum",
"ha-consistency-invariants"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-12"
},
{
"id": "bug-397",
"timestamp": "2026-06-11T06:34:28.705Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-consistency-invariants/requirements.md",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 3\u21924 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T06:34:28.705Z"
},
{
"id": "bug-398",
"timestamp": "2026-06-11T06:35:26.288Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-consistency-invariants/research.md",
"root_cause": "Had `restore_job`",
"fix": "Changed to \"irrevocable\"",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T06:35:26.288Z"
},
{
"id": "bug-399",
"timestamp": "2026-06-11T06:43:14.709Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-consistency-invariants/research.md",
"root_cause": "Had 't span syscalls and degrade to serial mode), C ec",
"fix": "Changed to 't span syscalls), C ecosystem dead (libitm unmain",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T06:43:14.709Z"
},
{
"id": "bug-400",
"timestamp": "2026-06-11T07:23:53.901Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-consistency-invariants/research.md",
"root_cause": "Had \"return quickly\"",
"fix": "Changed to `--vcpus`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T07:23:53.901Z"
},
{
"id": "bug-401",
"timestamp": "2026-06-11T07:47:34.756Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-consistency-invariants/research.md",
"root_cause": "Had `mark_job_*`",
"fix": "Changed to \"pending facts\"",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T07:47:34.756Z"
},
{
"id": "bug-402",
"timestamp": "2026-06-11T07:53:43.868Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-consistency-invariants/research.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T07:53:43.868Z"
},
{
"id": "bug-403",
"timestamp": "2026-06-11T08:34:47.868Z",
"error_message": "Function not marked async",
"file": ".kiro/specs/ha-consistency-invariants/design.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T08:34:47.868Z"
},
{
"id": "bug-404",
"timestamp": "2026-06-11T08:46:20.815Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/steering/roadmap.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T08:46:20.815Z"
},
{
"id": "bug-405",
"timestamp": "2026-06-11T09:47:16.750Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-single-leader-role/design.md",
"root_cause": "Had `writable_lsn`",
"fix": "Changed to 's \"",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T09:47:16.750Z"
},
{
"id": "bug-406",
"timestamp": "2026-06-11T09:49:04.296Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-single-leader-role/tasks.md",
"root_cause": "Had \" --exclude-dir=.git --exclude-dir=.kiro --exclude",
"fix": "Changed to \" --exclude-dir=.git --exclude-dir=specs --exclude",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T09:49:04.296Z"
},
{
"id": "bug-407",
"timestamp": "2026-06-11T10:01:15.181Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-commit-barrier-rollout/design.md",
"root_cause": "Had `repl.h`",
"fix": "Changed to `entry_lsn`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T10:01:15.181Z"
},
{
"id": "bug-408",
"timestamp": "2026-06-11T10:01:39.424Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-convergence-recovery/tasks.md",
"root_cause": "Had `-XCE_ERR_NOT_READY`",
"fix": "Changed to `OPCode_notify`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-11T10:02:02.349Z"
},
{
"id": "bug-409",
"timestamp": "2026-06-11T12:57:17.283Z",
"error_message": "Significant refactor of ",
"file": ".kiro/steering/roadmap.md",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 6\u21928 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T12:57:17.283Z"
},
{
"id": "bug-410",
"timestamp": "2026-06-11T13:30:00Z",
"error_message": "test_commit_engine fixture: Expected 0 Was 1 from repl_add_standby",
"file": "src/controller/testsuite/test_commit_engine.c",
"root_cause": "repl_add_standby returns the slot index (>=0) on success, not 0 \u2014 second add legitimately returns 1",
"fix": "fixture asserts TEST_ASSERT_EQUAL_INT(i, repl_add_standby(...)) per standby slot",
"tags": [
"controller",
"testsuite",
"repl",
"return-convention"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T13:30:00Z"
},
{
"id": "bug-411",
"timestamp": "2026-06-11T13:35:00Z",
"error_message": "3 pre-existing controller testsuite failures masked by exit code 0: test_committed_lsn_does_not_advance_on_timeout (-110), test_repl_ack_after_promote_gate_allows_jobsub (-10013), test_rdhup_primary_dispatch_gate_opens (-10013)",
"file": "src/controller/testsuite/controller_test.c",
"root_cause": "each test group calls UNITY_BEGIN/UNITY_END internally, resetting Unity counters \u2014 main()'s final UNITY_END returns 0 unless the LAST group fails, so meson reported the suite green despite 3 real failures; Unity also misattributes failure FILE names to whichever file's UNITY_BEGIN ran (e.g. reports test_repl_unit.c for a test living in test_p2_integration.c)",
"fix": "not fixed (out of task 1.1 boundary) \u2014 documented; failures exist identically on baseline without ha-commit-engine changes (verified by stash/rebuild). persist_wal_sync_append returns -ETIMEDOUT while the test expects rc==0 with sync_rc==-ETIMEDOUT; the two gate tests fail ha_has_write_quorum (standby_endpoints empty with n_peers=2)",
"tags": [
"controller",
"testsuite",
"unity",
"exit-code",
"pre-existing",
"ha"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T13:35:00Z"
},
{
"id": "bug-412",
"timestamp": "2026-06-11T14:59:30.999Z",
"error_message": "Significant refactor of ",
"file": "src/controller/commit.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 11\u219221 lines (2 removed) | Also: (void)timeout_ms; /* RETAIN never honors the timeo; * via commit_on_ack (Req 2.1). */",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-11T15:00:10.118Z"
},
{
"id": "bug-413",
"timestamp": "2026-06-11T15:28:35.990Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_commit_engine.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: /* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550; * Task 3.1 \u2014 membership re-evaluation (commit_on_membership_ | Also: /* Task 3.1 \u2014 membership re-evaluation */; RUN_TEST(test_catchup_standby_ack_does_not_count_toward_pend",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-06-11T15:29:25.430Z"
},
{
"id": "bug-414",
"timestamp": "2026-06-11T15:55:52.451Z",
"error_message": "Missing error handling in unknown",
"file": "src/include/repl.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T15:55:52.451Z"
},
{
"id": "bug-415",
"timestamp": "2026-06-11T15:56:20.945Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/repl.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T15:56:20.945Z"
},
{
"id": "bug-416",
"timestamp": "2026-06-11T15:56:38.428Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_commit_engine.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 10\u219215 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T15:56:38.428Z"
},
{
"id": "bug-417",
"timestamp": "2026-06-11T15:57:43.900Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_commit_engine.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T15:57:43.900Z"
},
{
"id": "bug-418",
"timestamp": "2026-06-11T16:15:06.660Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-commit-engine/tasks.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T16:15:06.660Z"
},
{
"id": "bug-419",
"timestamp": "2026-06-11T16:19:30.370Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T16:19:30.370Z"
},
{
"id": "bug-420",
"timestamp": "2026-06-11T16:19:51.195Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_commit_engine.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: /* Task 4.2 \u2014 wired gate: registry truth at ha_dispatch_gate; RUN_TEST(test_gate_wired_registry_catchup_standby_rejects_th",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-11T16:20:05.714Z"
},
{
"id": "bug-421",
"timestamp": "2026-06-11T16:23:46.118Z",
"error_message": "Missing guard clause",
"file": "src/controller/repl.c",
"root_cause": "No early return/throw for edge case: !r",
"fix": "Added guard clause: if (!r)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T16:23:46.118Z"
},
{
"id": "bug-422",
"timestamp": "2026-06-11T16:23:59.453Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T16:23:59.453Z"
},
{
"id": "bug-423",
"timestamp": "2026-06-11T22:39:24.704Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_commit_engine.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: /* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550; * Task 5.1 \u2014 integration: ACK feed and the job-submit sync-a | Also: #include \"typemap.h\" /* wal_catchup_entry_t (task 5; #include \"wal_types.h\" /* WAL_JOB_SUBMIT (task 5.1 sy",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-06-11T22:40:45.169Z"
},
{
"id": "bug-424",
"timestamp": "2026-06-11T23:08:49.909Z",
"error_message": "Function not marked async",
"file": ".kiro/specs/ha-commit-engine/tasks.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T23:08:49.909Z"
},
{
"id": "bug-425",
"timestamp": "2026-06-11T23:15:25.014Z",
"error_message": "Wrong return value",
"file": "src/controller/repl.c",
"root_cause": "Was returning: idx;",
"fix": "Now returns: * above mutates nothing, so it deliberately skips ",
"tags": [
"auto-detected",
"return-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T23:15:25.014Z"
},
{
"id": "bug-426",
"timestamp": "2026-06-11T23:16:25.862Z",
"error_message": "Significant refactor of ",
"file": "src/controller/repl.c",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 13\u219227 lines (5 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T23:16:25.862Z"
},
{
"id": "bug-427",
"timestamp": "2026-06-11T23:32:42.365Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-commit-engine/tasks.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T23:32:42.365Z"
},
{
"id": "bug-428",
"timestamp": "2026-06-11T23:43:45.216Z",
"error_message": "Incorrect value in code",
"file": "src/include/xce/cluster_def.h",
"root_cause": "Had \"ha.h\"",
"fix": "Changed to \"commit.h\"",
"tags": [
"auto-detected",
"wrong-value",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T23:43:45.216Z"
},
{
"id": "bug-429",
"timestamp": "2026-06-11T23:44:16.357Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/cluster.c",
"root_cause": "Condition was: if (ha_is_primary(&c->ha)",
"fix": "Changed to: if (c->commit.p == NULL)",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T23:44:16.357Z"
},
{
"id": "bug-430",
"timestamp": "2026-06-11T23:45:06.483Z",
"error_message": "Significant refactor of ",
"file": "src/controller/persist.c",
"root_cause": "16 lines replaced/restructured",
"fix": "Rewrote 40\u219267 lines (16 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T23:45:06.483Z"
},
{
"id": "bug-431",
"timestamp": "2026-06-11T23:45:16.518Z",
"error_message": "Incorrect value in code",
"file": "src/controller/persist.c",
"root_cause": "Had \"xce/types.h\"",
"fix": "Changed to \"xce/errnox.h\"",
"tags": [
"auto-detected",
"wrong-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T23:45:16.518Z"
},
{
"id": "bug-432",
"timestamp": "2026-06-11T23:45:42.031Z",
"error_message": "Function not marked async",
"file": "src/controller/testsuite/test_p2_integration.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T23:45:42.031Z"
},
{
"id": "bug-433",
"timestamp": "2026-06-11T23:45:51.649Z",
"error_message": "Wrong reference: test_single_node_committed_lsn_unchanged should be test_single_node_committed_lsn_advances",
"file": "src/controller/testsuite/test_p2_integration.c",
"root_cause": "Used \"test_single_node_committed_lsn_unchanged\" instead of \"test_single_node_committed_lsn_advances\"",
"fix": "Changed test_single_node_committed_lsn_unchanged \u2192 test_single_node_committed_lsn_advances",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-11T23:45:51.649Z"
},
{
"id": "bug-434",
"timestamp": "2026-06-12T00:23:08.815Z",
"error_message": "Function not marked async",
"file": "src/controller/testsuite/test_p2_integration.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-12T00:23:08.815Z"
},
{
"id": "bug-435",
"timestamp": "2026-06-11T00:00:00Z",
"error_message": "test_committed_lsn_does_not_advance_on_timeout: Expected 0 Was -110 (baseline failure, masked by bug-411)",
"file": "src/controller/testsuite/test_p2_integration.c",
"root_cause": "Stale test expectation: pinned the old accept-on-timeout contract (rc==0 + sync_rc=-ETIMEDOUT advisory). ha-commit-engine made persist_wal_sync_append reject-on-timeout (returns -ETIMEDOUT, Req 2.1/4.4). Fixture was also engine-less (deprecated ce==NULL legacy path).",
"fix": "Updated expectation to rc==-ETIMEDOUT and wired a commit engine (n_peers=3) with a priming async append so the sync entry lands at LSN 1 on the engine path; kept the committed_lsn-unmoved assertion.",
"tags": [
"ha-commit-engine",
"task-6.1",
"stale-expectation",
"unity-misattribution"
],
"related_bugs": [
"bug-411"
],
"occurrences": 1,
"last_seen": "2026-06-11T00:00:00Z"
},
{
"id": "bug-436",
"timestamp": "2026-06-11T00:00:00Z",
"error_message": "test_repl_ack_after_promote_gate_allows_jobsub / test_rdhup_primary_dispatch_gate_opens: Expected 0 Was -10013 (NOT_READY; baseline failures, masked by bug-411)",
"file": "src/controller/testsuite/test_ha_repl_ack.c, src/controller/testsuite/test_ha_rdhup_integration.c",
"root_cause": "CTRL_PRIMARY dispatch gate now requires write quorum (>= n_peers/2 connected standbys). Fixtures promote via a standby ACK but never register the connected standby; legacy fallback counts ha->standby_endpoints (NULL -> 0). In the rdhup test ha_on_primary_ctrl_fd_rdhup also overwrites ha->n_peers=1 with candidates_count=2 (ha.c:3484).",
"fix": "Populated standby_endpoints with one endpoint (the ACKing standby) in both fixtures so quorum legitimately holds on a healthy primary; gate unchanged. Freed the zarray before ha_fini (ha_fini does not own it).",
"tags": [
"ha-commit-engine",
"task-6.1",
"quorum-gate",
"fixture-fix"
],
"related_bugs": [
"bug-411"
],
"occurrences": 1,
"last_seen": "2026-06-11T00:00:00Z"
},
{
"id": "bug-437",
"timestamp": "2026-06-12T00:51:52.673Z",
"error_message": "Function not marked async",
"file": ".kiro/specs/ha-commit-engine/tasks.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-12T00:51:52.673Z"
},
{
"id": "bug-438",
"timestamp": "2026-06-12T03:52:57.142Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'commit.c'",
"fix": "Changed to 'testsuite/test_commit_barrier_rollout.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-12T03:52:57.142Z"
},
{
"id": "bug-439",
"timestamp": "2026-06-12T04:13:06.326Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-commit-barrier-rollout/tasks.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-12T04:13:06.326Z"
},
{
"id": "bug-440",
"timestamp": "2026-06-12T04:18:19.158Z",
"error_message": "Missing guard clause",
"file": "src/controller/persist.c",
"root_cause": "No early return/throw for edge case: detail == HOOK_DETAIL_WORKER_JOIN ||\n detail == H",
"fix": "Added guard clause: if (detail == HOOK_DETAIL_WORKER_JOIN ||\n )",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-12T04:18:19.158Z"
},
{
"id": "bug-441",
"timestamp": "2026-06-12T04:18:31.067Z",
"error_message": "Significant refactor of ",
"file": "src/controller/persist.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 7\u219212 lines (4 removed) | Also: return persist_wal_async(p, wal_type, &js, sizeof(; persist_t* p = cls; | Also: int rc = persist_wal_async(p, wal_type, pkt, (uint; persist_t* p = cls;",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-06-12T04:19:00.652Z"
},
{
"id": "bug-442",
"timestamp": "2026-06-12T04:50:32.154Z",
"error_message": "Incorrect value in code",
"file": "src/controller/testsuite/test_commit_barrier_rollout.c",
"root_cause": "Had \"xce/types.h\"",
"fix": "Changed to \"xce/errnox.h\"",
"tags": [
"auto-detected",
"wrong-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-12T04:50:32.154Z"
},
{
"id": "bug-443",
"timestamp": "2026-06-12T05:14:36.392Z",
"error_message": "Missing guard clause",
"file": "src/controller/persist.c",
"root_cause": "No early return/throw for edge case: p == NULL",
"fix": "Added guard clause: if (p == NULL)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-12T05:14:36.392Z"
},
{
"id": "bug-444",
"timestamp": "2026-06-12T09:09:04.495Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_commit_barrier_reply.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 3\u21925 lines (2 removed) | Also: static xce_signal_t g_sigkill = { .signo = SIGKIL; static xce_jobctrl_t g_jobctrl;",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-12T09:09:10.703Z"
},
{
"id": "bug-445",
"timestamp": "2026-06-12T09:30:00Z",
"error_message": "AddressSanitizer SEGV in hash_string via makeResource when running controller_unit_test -t test_commit_barrier_reply standalone",
"file": "src/controller/testsuite/test_commit_barrier_reply.c",
"root_cause": "Global xstring table uninitialised in standalone runs: makeString() returns NULL, resobj name becomes NULL, key_add hashes NULL. In full-suite runs test_worker_join.c:520 initialises the table unguarded, so the bug only appears with -t selection.",
"fix": "Probe makeString(\"cbrp-probe\") in the group entry; call xstring_table_init(139) only when the probe returns NULL (avoids double init in full-suite order).",
"tags": [
"testsuite",
"xstring",
"fixture",
"segv",
"ha-commit-barrier-rollout"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-12T09:30:00Z"
},
{
"id": "bug-446",
"timestamp": "2026-06-12T09:30:00Z",
"error_message": "makeJob() returns NULL (Expected Non-NULL) in commit-barrier reply fixture",
"file": "src/controller/testsuite/test_commit_barrier_reply.c",
"root_cause": "job_init (lib/jobj.c) returns -EINVAL when xce_job_t.submit == NULL, and makeJobsub requires job_obj_init() module tables which no controller test group initialises.",
"fix": "Fixture calls job_obj_init(64, 64) once per process (static guard) and provides a zeroed static job_submit_data_t as jdef.submit.",
"tags": [
"testsuite",
"jobj",
"fixture",
"ha-commit-barrier-rollout"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-12T09:30:00Z"
},
{
"id": "bug-447",
"timestamp": "2026-06-12T09:30:00Z",
"error_message": "queue_ctrl/worker_ctrl append NO WAL entry and reply status 1 on success; job_ctrl also returns 1 (key_find found-rc leak)",
"file": "src/controller/queue.c",
"root_cause": "key_find (xkvmgr_find, lib/kvmgr.c:130-151) returns 1 when the key is found. queue_ctrl (queue.c:60), worker_ctrl (worker.c:643) and job_ctrl (job.c:314) store it in rc and never reset it: the 'if (rc == 0)' AFTER_EVENT hook gate is skipped (no WAL_QUEUE_CTRL / WAL_WORKER_CTRL append on the found path) and the requester reply carries status 1 instead of 0. Production gap discovered by task-3.1 RED tests; queue/host control state changes are currently never persisted or replicated.",
"fix": "FIXED (task 3.2, 2026-06-12): normalized the key_find found-rc to 0 in queue_ctrl (queue.c), worker_ctrl (worker.c) and job_ctrl (job.c) after the miss/-ENOENT checks, so the AFTER_EVENT hook gate fires (WAL append + replication) and the handlers' commit-barrier pattern sees 0. Handlers do_jobcontrol_op/do_queuecontrol_op/do_hostcontrol_op now run persist_commit_barrier(&c->persist, 0) on rc==0 before replying; handle_worker_join barriers between AFTER_EVENT and the success reply. All 12 test_commit_barrier_reply tests PASS; full controller suite 0 FAIL.",
"tags": [
"production-gap",
"queue_ctrl",
"worker_ctrl",
"job_ctrl",
"key_find",
"wal",
"ha-commit-barrier-rollout",
"red-finding"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-12T11:00:00Z"
},
{
"id": "bug-448",
"timestamp": "2026-06-12T10:05:12.464Z",
"error_message": "Incorrect value in code",
"file": "src/controller/queue.c",
"root_cause": "Had \"qobj.h\"",
"fix": "Changed to \"persist.h\"",
"tags": [
"auto-detected",
"wrong-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-12T10:05:12.464Z"
},
{
"id": "bug-448",
"timestamp": "2026-06-12T10:30:00-07:00",
"error_message": "job_ctrl reference leak: reference(j) taken at job.c:317 but normal exit path (job.c:444-446) never calls dereference(j); only the workermgr-miss error path releases it",
"file": "src/controller/job.c",
"root_cause": "asymmetric reference/dereference across exit paths, predates ha-commit-barrier-rollout",
"fix": "NOT YET FIXED - discovered by task 3.2 adversarial review; add dereference(j) on the normal exit path",
"tags": [
"controller",
"job",
"refcount",
"leak",
"pre-existing"
],
"related_bugs": [
"bug-447"
],
"occurrences": 1,
"last_seen": "2026-06-12T10:30:00-07:00"
},
{
"id": "bug-450",
"timestamp": "2026-06-12T10:48:27.053Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_commit_barrier_reply.c",
"root_cause": "7 lines replaced/restructured",
"fix": "Rewrote 12\u219256 lines (7 removed) | Also: xce_job_t jdef;; static int jobobj_ready; /* jobj module tables \u2014 o",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-12T10:48:47.855Z"
},
{
"id": "bug-451",
"timestamp": "2026-06-12T11:05:00-07:00",
"error_message": "va_list type confusion: WAL_JOB_RUSAGE hook payload reads job_t fields from an xce_job_rusages_t*",
"file": "src/controller/job.c (caller) / src/controller/persist.c (consumer)",
"root_cause": "update_job_rusages fires AFTER_EVENT HOOK_DETAIL_JOB_RUSAGE_UPDATE with (cluster_t*, xce_job_rusages_t*) at job.c:1015-1016, but persist_job_hook_fun's default arm (persist.c:1354-1359) reads the second vararg as job_t* and dereferences j->job.state at offset 56 == sizeof(xce_job_rusages_t) \u2014 an out-of-bounds read on an exactly-sized allocation; the WAL_JOB_RUSAGE payload state field is garbage (jobid at offset 0 lines up by accident)",
"fix": "NOT FIXED (discovered while writing task 3.3 receipt-ACK verdict pins; production out of boundary). Test test_update_op_rusage_receipt_reply_facts_retained uses a padded union so the pin stays in-bounds under ASAN without masking the bug; fix candidates: dedicated RUSAGE arm in persist_job_hook_fun reading xce_job_rusages_t*, or fire the hook with (c, j) like the other job hooks",
"tags": [
"pre-existing",
"type-confusion",
"va_list",
"wal",
"rusage",
"asan",
"oob-read",
"ha-commit-barrier-rollout"
],
"related_bugs": [
"bug-447",
"bug-448"
],
"occurrences": 1,
"last_seen": "2026-06-12T11:05:00-07:00"
},
{
"id": "bug-452",
"timestamp": "2026-06-12T15:03:38.962Z",
"error_message": "Function not marked async",
"file": "src/controller/testsuite/test_commit_barrier_reply.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-12T15:03:38.962Z"
},
{
"id": "bug-453",
"timestamp": "2026-06-12T15:45:11.299Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_repl_majority.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 3\u219210 lines (3 removed) | Also: * walAck half is engine-wired per-LSN; the configA; * byte-identical legacy behavior (config barrier o | Also: /* upgradeConfigAck with no pending ACKs \u2192 timeout; int rc_cfg = repl_wait_majority_ack(&g_mp.repl, 0,",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-06-12T15:45:39.679Z"
},
{
"id": "bug-454",
"timestamp": "2026-06-13T00:15:40.802Z",
"error_message": "Significant refactor of ",
"file": "src/controller/repl.c",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 6\u219211 lines (5 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T00:15:40.802Z"
},
{
"id": "bug-455",
"timestamp": "2026-06-13T00:16:42.277Z",
"error_message": "Significant refactor of ",
"file": "src/include/repl.h",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 4\u21927 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T00:16:42.277Z"
},
{
"id": "bug-456",
"timestamp": "2026-06-13T00:17:27.276Z",
"error_message": "Significant refactor of ",
"file": "src/controller/config_repl.c",
"root_cause": "28 lines replaced/restructured",
"fix": "Rewrote 73\u219285 lines (28 removed) | Also: /* 7. Push to standbys (best-effort; see push_conf; int acked = push_config_to_standbys(c, out_bytes, | Also: * 7. Push to standbys (best-effort); * 8. ACK admin tool",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-06-13T00:19:11.078Z"
},
{
"id": "bug-457",
"timestamp": "2026-06-13T00:18:17.080Z",
"error_message": "Missing guard clause",
"file": "src/controller/config_repl.c",
"root_cause": "No early return/throw for edge case: !c->ha.standby_endpoints",
"fix": "Added guard clause: if (!c->ha.standby_endpoints)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T00:18:17.080Z"
},
{
"id": "bug-458",
"timestamp": "2026-06-13T00:19:39.908Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/config_repl.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T00:19:39.908Z"
},
{
"id": "bug-459",
"timestamp": "2026-06-13T00:30:00Z",
"error_message": "configAck quorum fabricated success: counted acked_config_lsn > 0 (any previous upgrade's ack), denominator n_active with no self-count, and n_active==0 short-circuited to success; upgradeConfig also ACKed the admin tool unconditionally and requested restart even when the majority wait timed out (logged-only result)",
"file": "src/controller/repl.c, src/controller/config_repl.c",
"root_cause": "legacy connectivity-based counting on the configAck track predated the commit engine's per-push arithmetic; push_config_to_standbys returned the transport push count and only logged the barrier outcome, so do_upgrade_config_with_bytes could not observe failure",
"fix": "task 5.2: configAck branch counts acked_config_lsn >= push_tag (entry_lsn carries the tag), majority 1+count > n_peers/2 over engine n_peers, n_peers<=1 immediate 0, ce==NULL -EINVAL fail-loud; push_config_to_standbys returns the barrier result (push count via acked_out); do_upgrade_config_with_bytes sends send_upgrade_error and skips success ACK + restart on non-zero; committed_config_tag advance stays success-branch-only",
"tags": [
"ha",
"config-repl",
"quorum",
"configAck",
"commit-barrier",
"upgradeConfig"
],
"related_bugs": [
"bug-396"
],
"occurrences": 1,
"last_seen": "2026-06-13T00:30:00Z"
},
{
"id": "bug-460",
"timestamp": "2026-06-13T01:11:40.159Z",
"error_message": "Significant refactor of ",
"file": "src/controller/config_repl.c",
"root_cause": "7 lines replaced/restructured",
"fix": "Rewrote 14\u219219 lines (7 removed) | Also: cluster_t *c, const char *msg); reply.status = -EINVAL;",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-13T01:14:42.432Z"
},
{
"id": "bug-461",
"timestamp": "2026-06-13T01:11:49.673Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/config_repl.c",
"root_cause": "Condition was: if (n == 0)",
"fix": "Changed to: if (n_out)",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T01:11:49.673Z"
},
{
"id": "bug-462",
"timestamp": "2026-06-13T01:12:50.297Z",
"error_message": "Significant refactor of ",
"file": "src/controller/config_repl.h",
"root_cause": "8 lines replaced/restructured",
"fix": "Rewrote 22\u219239 lines (8 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T01:12:50.297Z"
},
{
"id": "bug-463",
"timestamp": "2026-06-13T01:13:19.561Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "6 lines replaced/restructured",
"fix": "Rewrote 10\u219218 lines (6 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T01:13:19.561Z"
},
{
"id": "bug-464",
"timestamp": "2026-06-13T01:14:15.668Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/join.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T01:14:15.668Z"
},
{
"id": "bug-465",
"timestamp": "2026-06-13T01:30:00Z",
"error_message": "Config-ACK signal never produced in production: repl_on_config_ack had zero production callers; standby replconfigpushreplymsg silently dropped in repl_ack_decode_and_dispatch (ha.c) and myreq_handler default case (cluster.c) -> every multi-member config upgrade barrier timed out (upgrades bricked)",
"file": "src/controller/ha.c",
"root_cause": "ha-config-bootstrap task 8.1's production ingestion half was never landed; the 5.2 barrier relied on a signal nothing produced (tests injected repl_on_config_ack directly)",
"fix": "Added replconfigpushreplymsg decode branch in repl_ack_decode_and_dispatch (ha.c) and an OPCode_reply ingestion case in cluster.c myreq_handler, both calling repl_on_config_ack(&c->persist.repl, ep, versionTag); wire-path integration test added (test_config_ack_wire_path_completes_barrier)",
"tags": [
"ha",
"config-repl",
"barrier",
"capnp",
"wire-path",
"task-5.2"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T01:30:00Z"
},
{
"id": "bug-466",
"timestamp": "2026-06-13T01:30:00Z",
"error_message": "Unconditional 500ms config barrier wait in push_config_to_standbys reachable from iomgr epoll thread (ha.c raft_cb_become_leader, ha_dispatch_repl_action_for_standby, legacy election path; join.c controller join) -> blocks all controller I/O; the awaited ACK arrives on the blocked thread (structural deadlock)",
"file": "src/controller/config_repl.c",
"root_cause": "task 5.2 made the barrier unconditional inside push_config_to_standbys while best-effort catch-up/election pushes on iomgr-reachable paths still called the same entry",
"fix": "Split the API: exported transport-only fan-out push_config_transport_only (no barrier, iomgr-safe) and switched all 5 ha.c sites + join.c:187 to it; push_config_to_standbys (transport+barrier) kept for the vtask-context upgrade path only; doc comments updated in config_repl.h",
"tags": [
"ha",
"iomgr",
"deadlock",
"config-repl",
"api-split",
"task-5.2"
],
"related_bugs": [
"bug-465"
],
"occurrences": 1,
"last_seen": "2026-06-13T01:30:00Z"
},
{
"id": "bug-467",
"timestamp": "2026-06-13T01:38:08.308Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/ha.c",
"root_cause": "Condition was: if (rep_s.data_which == RequestReply_data_replconfigpu)",
"fix": "Changed to: if (0 /* REVIEWER RED CHECK */ && rep_s.data_which == )",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-13T01:38:43.310Z"
},
{
"id": "bug-468",
"timestamp": "2026-06-13T03:56:09.185Z",
"error_message": "Function not marked async",
"file": "src/controller/testsuite/test_commit_barrier_reply.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T03:56:09.185Z"
},
{
"id": "bug-469",
"timestamp": "2026-06-13T06:33:41.449Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'testsuite/test_ha_cluster.c'",
"fix": "Changed to 'testsuite/test_ha_role_lifecycle.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T06:33:41.449Z"
},
{
"id": "bug-470",
"timestamp": "2026-06-13T06:34:01.929Z",
"error_message": "Wrong reference: test_ha_cluster should be test_ha_role_lifecycle",
"file": "src/controller/testsuite/controller_test.c",
"root_cause": "Used \"test_ha_cluster\" instead of \"test_ha_role_lifecycle\"",
"fix": "Changed test_ha_cluster \u2192 test_ha_role_lifecycle",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-13T06:34:05.212Z"
},
{
"id": "bug-471",
"timestamp": "2026-06-13T06:41:01.532Z",
"error_message": "Missing guard clause",
"file": "src/controller/testsuite/test_ha_role_lifecycle.c",
"root_cause": "No early return/throw for edge case: pid < 0",
"fix": "Added guard clause: if (pid < 0)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T06:41:01.532Z"
},
{
"id": "bug-472",
"timestamp": "2026-06-13T07:06:06.526Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_role_lifecycle.c",
"root_cause": "15 lines replaced/restructured",
"fix": "Rewrote 64\u2192108 lines (15 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T07:06:06.526Z"
},
{
"id": "bug-473",
"timestamp": "2026-06-13T07:32:43.287Z",
"error_message": "Wrong return value",
"file": "src/controller/persist.c",
"root_cause": "Was returning: WAL_MODE_LOCAL;",
"fix": "Now returns: WAL_MODE_RETAIN;",
"tags": [
"auto-detected",
"return-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T07:32:43.287Z"
},
{
"id": "bug-474",
"timestamp": "2026-06-13T08:17:21.222Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_role_lifecycle.c",
"root_cause": "21 lines replaced/restructured",
"fix": "Rewrote 35\u219257 lines (21 removed) | Also: /* \u2500\u2500 Case 3: HOOKS REGISTERED BY THE SHARED PROMO; * canonical promotion entry point ha_promote_to_pr",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-13T08:17:47.506Z"
},
{
"id": "bug-475",
"timestamp": "2026-06-13T08:35:38.780Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 10\u219214 lines (5 removed) | Also: /* Start primary heartbeat immediately in COMMITTI; * NOP during the committing window and their liven",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-13T08:36:06.318Z"
},
{
"id": "bug-476",
"timestamp": "2026-06-13T08:38:00.471Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: c->ha.hooks_registered",
"fix": "Added guard clause: if (c->ha.hooks_registered)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T08:38:00.471Z"
},
{
"error_message": "AddressSanitizer: global-buffer-overflow in xce_wal_batch_req_raw <- repl_broadcast <- persist_wal_async <- ha_arm_own_term_gate <- ha_promote_to_primary, during test_promotion_registers_persist_hooks (test_ha_role_lifecycle.c case 3)",
"file": "src/controller/testsuite/test_ha_role_lifecycle.c (fixture defect \u2014 OUT OF task 2.2 boundary)",
"root_cause": "task-2.2's ha_promote_to_primary now appends a WAL_NOOP via persist_wal_async, which broadcasts to registered standbys. The lifecycle fixture (lifecycle_cluster_setup) registers fake `int g_lc_eps[]` endpoints via repl_add_standby and NEVER installs repl_broadcast_send_hook, so repl_broadcast calls xce_wal_batch_req_raw(s->ep) and reads ep->peer (offset 36) past the 4-byte int. IDENTICAL to the prior test_p2_integration tests 8/9 bug already in buglog.",
"fix": "Test-side fix (parent must apply, mirrors the documented p2_integration fix): in test_ha_role_lifecycle.c add `extern int (*repl_broadcast_send_hook)(void*, wal_catchup_entry_t**, int);` and a no-op drop hook, install it in lifecycle_cluster_setup before promotion (reset to NULL in teardown), and cast endpoints to (void*). Production ha.c is correct per design (persist_wal_async appends+broadcasts by design).",
"tags": [
"ha-single-leader-role",
"task-2.2",
"test-fixture",
"asan",
"repl_broadcast",
"global-buffer-overflow",
"out-of-boundary"
],
"id": "bug-477",
"timestamp": "2026-06-13",
"last_seen": "2026-06-13",
"occurrences": 1,
"related_bugs": []
},
{
"error_message": "task-2.1 lifecycle fixture off-by-one: case 5/6/7 assert writable_lsn==noop_lsn and current_lsn==noop_lsn+1, but lifecycle_cluster_setup primes current_lsn = appended_lsn + 1, so a real persist_wal_async appends the noop at appended_lsn+1 (current_lsn->appended_lsn+2), giving noop_lsn=appended_lsn+1 != asserted appended_lsn.",
"file": "src/controller/testsuite/test_ha_role_lifecycle.c (fixture defect \u2014 OUT OF task 2.2 boundary)",
"root_cause": "persist_wal_async assigns hdr.lsn = current_lsn++ (entry takes the CURRENT value). The fixture comment assumes the next append takes current_lsn-1, which is off by one. To make the noop land at `appended_lsn`, the prime must be `current_lsn = appended_lsn`, not `appended_lsn + 1`.",
"fix": "Test-side fix (parent): set g_lc.persist.current_lsn = appended_lsn in lifecycle_cluster_setup. Production noop_lsn = current_lsn-1 (post-append) is correct per design \u00a7Promotion Rewrite / brief.",
"tags": [
"ha-single-leader-role",
"task-2.2",
"test-fixture",
"off-by-one",
"lsn",
"out-of-boundary"
],
"id": "bug-478",
"timestamp": "2026-06-13",
"last_seen": "2026-06-13",
"occurrences": 1,
"related_bugs": []
},
{
"id": "bug-479",
"timestamp": "2026-06-13T08:56:36.044Z",
"error_message": "Missing error handling in XCE_TESTING",
"file": "src/controller/testsuite/test_ha_role_lifecycle.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T08:56:36.044Z"
},
{
"id": "bug-480",
"timestamp": "2026-06-13T08:57:05.687Z",
"error_message": "Function not marked async",
"file": "src/controller/testsuite/test_ha_role_lifecycle.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T08:57:05.687Z"
},
{
"id": "bug-481",
"timestamp": "2026-06-13T08:57:15.674Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_role_lifecycle.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 5\u21927 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T08:57:15.674Z"
},
{
"id": "bug-482",
"timestamp": "2026-06-13T09:36:17.806Z",
"error_message": "Function not marked async",
"file": "src/controller/testsuite/test_ha_start_election_async.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T09:36:17.806Z"
},
{
"id": "bug-483",
"timestamp": "2026-06-13T09:45:01.531Z",
"error_message": "Function not marked async",
"file": "src/controller/testsuite/test_ha_role_lifecycle.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T09:45:01.531Z"
},
{
"id": "bug-484",
"timestamp": "2026-06-13T10:16:06.331Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-single-leader-role/tasks.md",
"root_cause": "Had `lifecycle_cluster_setup`",
"fix": "Changed to `ha_promote_to_primary`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T10:16:06.331Z"
},
{
"id": "bug-485",
"timestamp": "2026-06-13T10:19:08.844Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "11 lines replaced/restructured",
"fix": "Rewrote 16\u21924 lines (11 removed) | Also: /* Task 5.2: After updating convergence tracking, ; * majority of standbys have converged and promote ",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-13T10:19:43.629Z"
},
{
"id": "bug-486",
"timestamp": "2026-06-13T10:22:20.811Z",
"error_message": "Significant refactor of ",
"file": "src/controller/meson.build",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 5\u21923 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T10:22:20.811Z"
},
{
"id": "bug-487",
"timestamp": "2026-06-13T10:22:24.129Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/controller_test.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 5\u21923 lines (2 removed) | Also: TEST(test_ha_evaluate_committing);; TEST(test_ha_repl_ack);",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-13T10:22:41.219Z"
},
{
"id": "bug-488",
"timestamp": "2026-06-13T10:25:04.643Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_role.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 4\u219210 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T10:25:04.643Z"
},
{
"id": "bug-489",
"timestamp": "2026-06-13T11:41:32.142Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_role.c",
"root_cause": "196 lines replaced/restructured",
"fix": "Rewrote 230\u219212 lines (196 removed) | Also: /* \u2500\u2500 Task 5.3: committing timeout default value a; * Requirements: 6.4, 7.5 (ha-repl-hardening)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-13T11:42:05.841Z"
},
{
"id": "bug-490",
"timestamp": "2026-06-13T11:42:51.597Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_rdhup_integration.c",
"root_cause": "34 lines replaced/restructured",
"fix": "Rewrote 48\u21929 lines (34 removed) | Also: * Test 4: 3-node cluster RDHUP \u2014 two acks needed, ; * | Also: /* Drive to CTRL_PRIMARY via ack */; ha_repl_ack_received(&c.ha, &c); | Also: RUN_TEST(test_rdhup_committing_to_primary_on_ack);; RUN_TEST(test_rdhup_3node_one_ack_promotes);",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 4,
"last_seen": "2026-06-13T11:43:47.811Z"
},
{
"id": "bug-491",
"timestamp": "2026-06-13T11:44:14.184Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_connection_reuse.c",
"root_cause": "26 lines replaced/restructured",
"fix": "Rewrote 35\u21928 lines (26 removed) | Also: /* \u2500\u2500 Test 10 (Task 7.3): promoted connection carr; *",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-13T11:44:45.523Z"
},
{
"id": "bug-492",
"timestamp": "2026-06-13T12:04:59.483Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-single-leader-role/tasks.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T12:04:59.483Z"
},
{
"id": "bug-493",
"timestamp": "2026-06-13T12:08:04.621Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/ha.c",
"root_cause": "Condition was: if (role == CTRL_PRIMARY || role == CTRL_PRIMARY_COMMI)",
"fix": "Changed to: if (role == CTRL_PRIMARY)",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 4,
"last_seen": "2026-06-13T12:09:17.994Z"
},
{
"id": "bug-494",
"timestamp": "2026-06-13T12:10:08.938Z",
"error_message": "Wrong reference: CTRL_PRIMARY_COMMITTING should be CTRL_PRIMARY",
"file": "src/controller/ha.c",
"root_cause": "Used \"CTRL_PRIMARY_COMMITTING\" instead of \"CTRL_PRIMARY\"",
"fix": "Changed CTRL_PRIMARY_COMMITTING \u2192 CTRL_PRIMARY",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T12:10:08.938Z"
},
{
"id": "bug-495",
"timestamp": "2026-06-13T13:04:41.816Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_role.c",
"root_cause": "21 lines replaced/restructured",
"fix": "Rewrote 24\u21925 lines (21 removed) | Also: /* Task 5.3: committing timeout config-default kno; * survives until task 5.2; the degraded-mode commi",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-13T13:05:15.532Z"
},
{
"id": "bug-496",
"timestamp": "2026-06-13T13:07:42.791Z",
"error_message": "Incorrect value in code",
"file": "src/controller/testsuite/test_ha_role_lifecycle.c",
"root_cause": "Had \"winning election must land DIRECTLY in CTRL_PRIMA",
"fix": "Changed to \"winning election must land DIRECTLY in CTRL_PRIMA",
"tags": [
"auto-detected",
"wrong-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T13:07:42.791Z"
},
{
"id": "bug-497",
"timestamp": "2026-06-13T13:10:05.452Z",
"error_message": "Wrong reference: CTRL_PRIMARY_COMMITTING should be CTRL_PRIMARY",
"file": "src/controller/testsuite/test_ha_connection_reuse.c",
"root_cause": "Used \"CTRL_PRIMARY_COMMITTING\" instead of \"CTRL_PRIMARY\"",
"fix": "Changed CTRL_PRIMARY_COMMITTING \u2192 CTRL_PRIMARY",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T13:10:05.452Z"
},
{
"id": "bug-498",
"timestamp": "2026-06-13T13:10:16.164Z",
"error_message": "Incorrect value in code",
"file": "src/controller/testsuite/test_ha_connection_reuse.c",
"root_cause": "Had \"err_handler: ep must be removed from standby_endp",
"fix": "Changed to \"err_handler: ep must be removed from standby_endp",
"tags": [
"auto-detected",
"wrong-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T13:10:16.164Z"
},
{
"id": "bug-499",
"timestamp": "2026-06-13T13:14:03.917Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_ha_startup.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T13:14:03.917Z"
},
{
"id": "bug-500",
"timestamp": "2026-06-13T13:14:11.496Z",
"error_message": "Incorrect value in code",
"file": "src/controller/testsuite/test_ha_startup.c",
"root_cause": "Had \"test_dispatch_gate_committing_allows_repl_ops: PA",
"fix": "Changed to \"test_dispatch_gate_primary_no_quorum_allows_repl_",
"tags": [
"auto-detected",
"wrong-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T13:14:11.496Z"
},
{
"id": "bug-501",
"timestamp": "2026-06-13T13:15:33.777Z",
"error_message": "Wrong reference: test_nonblocking_single_node_election_enters_committing should be test_nonblocking_single_node_election_enters_primary_directly",
"file": "src/controller/testsuite/test_ha_startup.c",
"root_cause": "Used \"test_nonblocking_single_node_election_enters_committing\" instead of \"test_nonblocking_single_node_election_enters_primary_directly\"",
"fix": "Changed test_nonblocking_single_node_election_enters_committing \u2192 test_nonblocking_single_node_election_enters_primary_directly",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T13:15:33.777Z"
},
{
"id": "bug-502",
"timestamp": "2026-06-13T13:16:26.379Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_rdhup_integration.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 3\u21924 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T13:16:26.379Z"
},
{
"id": "bug-503",
"timestamp": "2026-06-13T13:30:00.000Z",
"error_message": "test_dispatch_gate_primary_no_quorum_denies_job_ops: Expected -10013 Was 0 (jobsub allowed, expected -XCE_ERR_NOT_READY)",
"file": "src/controller/testsuite/test_ha_startup.c",
"root_cause": "Retargeting the dispatch-gate test from CTRL_PRIMARY_COMMITTING to CTRL_PRIMARY (ha-single-leader-role task 5.1) changed gate semantics: the deleted COMMITTING branch denied job ops UNCONDITIONALLY, but the CTRL_PRIMARY branch only denies job ops when ha_has_write_quorum() is false. ha_init leaves n_peers=0, so ha_has_write_quorum returns true (single-node = self-majority, ha.c:1437) and jobsub was ALLOWED (rc=0). A blind role swap does not reproduce the original deny.",
"fix": "Set ha.n_peers = 2 in both retargeted dispatch-gate tests so a multi-node primary with zero connected standbys genuinely lacks write quorum (connected 0 < n_peers/2=1), making the universal commit barrier deny job ops with -XCE_ERR_NOT_READY while still permitting replication ops.",
"tags": [
"ha-single-leader-role",
"dispatch-gate",
"write-quorum",
"test-retarget",
"commit-barrier",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T13:30:00.000Z"
},
{
"id": "bug-504",
"timestamp": "2026-06-13T14:01:26.000Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.h",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 4\u21923 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T14:01:26.000Z"
},
{
"id": "bug-505",
"timestamp": "2026-06-13T14:01:32.553Z",
"error_message": "Wrong reference: uint32_t should be ha_config_t",
"file": "src/controller/ha.h",
"root_cause": "Used \"uint32_t\" instead of \"ha_config_t\"",
"fix": "Changed uint32_t \u2192 ha_config_t",
"tags": [
"auto-detected",
"wrong-reference",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T14:01:32.553Z"
},
{
"id": "bug-506",
"timestamp": "2026-06-13T14:06:15.280Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_role.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 7\u21924 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T14:06:15.280Z"
},
{
"id": "bug-507",
"timestamp": "2026-06-13T14:43:54.194Z",
"error_message": "Incorrect value in code",
"file": ".kiro/steering/ha-async-io.md",
"root_cause": "Had `CTRL_PRIMARY_COMMITTING \u2192 CTRL_PRIMARY`",
"fix": "Changed to 's own-term commit rule (\u00a75.4.2): an election winn",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T14:43:54.194Z"
},
{
"id": "bug-508",
"timestamp": "2026-06-13T14:54:21.781Z",
"error_message": "Incorrect value in code",
"file": ".claude/skills/xce-deploy-ha/SKILL.md",
"root_cause": "Had `\u2192 CTRL_PRIMARY_COMMITTING`",
"fix": "Changed to `HA FSM (raft): \u2192 CTRL_PRIMARY (term=...)`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-13T14:54:21.781Z"
},
{
"id": "bug-509",
"timestamp": "2026-06-13T15:31:21.740Z",
"error_message": "Incorrect value in code",
"file": "../../../../../claude/.claude/projects/-home-rshen-projects-xce-xce/memory/project_ha_consistency_invariants.md",
"root_cause": "Had \"XCE HA Raft+CP umbrella \u2014 sub-specs 1&2 of 4 IMPL",
"fix": "Changed to \"XCE HA Raft+CP umbrella \u2014 sub-specs 1,2,3 of 4 IM",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-13T15:31:40.089Z"
},
{
"id": "bug-510",
"timestamp": "2026-06-14T00:30:31.077Z",
"error_message": "Wrong reference: stdint should be stdbool",
"file": "src/controller/include/cluster.h",
"root_cause": "Used \"stdint\" instead of \"stdbool\"",
"fix": "Changed stdint \u2192 stdbool",
"tags": [
"auto-detected",
"wrong-reference",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T00:30:31.077Z"
},
{
"id": "bug-511",
"timestamp": "2026-06-14T00:34:17.543Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_egress_filter.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 7\u219217 lines (4 removed) | Also: /* \u2500\u2500 Cross-module link stubs (dataex.c/misc.c/sch; /* clang-format off */",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-14T00:35:27.905Z"
},
{
"id": "bug-512",
"timestamp": "2026-06-14T00:34:38.745Z",
"error_message": "Wrong reference: xlist_destroy should be xlist_fini",
"file": "src/controller/testsuite/test_egress_filter.c",
"root_cause": "Used \"xlist_destroy\" instead of \"xlist_fini\"",
"fix": "Changed xlist_destroy \u2192 xlist_fini",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T00:34:38.745Z"
},
{
"id": "bug-513",
"timestamp": "2026-06-14T00:35:13.711Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'commit.c'",
"fix": "Changed to 'testsuite/test_egress_filter.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T00:35:13.711Z"
},
{
"id": "bug-514",
"timestamp": "2026-06-14T00:37:31.926Z",
"error_message": "Missing guard clause",
"file": "src/controller/testsuite/test_egress_filter.c",
"root_cause": "No early return/throw for edge case: iter_make(&it, c->jobmgr",
"fix": "Added guard clause: if (iter_make(&it, c->jobmgr)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T00:37:31.926Z"
},
{
"id": "bug-515",
"timestamp": "2026-06-14T00:45:06.450Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_egress_filter.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 12\u219217 lines (2 removed) | Also: jdef.jobid = 202;; jdef.state = JOB_STAT_PEND;",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-14T00:46:18.449Z"
},
{
"id": "bug-516",
"timestamp": "2026-06-14T01:46:09.600Z",
"error_message": "Function not marked async",
"file": "src/controller/persist.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T01:46:09.600Z"
},
{
"id": "bug-517",
"timestamp": "2026-06-14T01:46:53.301Z",
"error_message": "Significant refactor of ",
"file": "src/controller/persist.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 4\u21926 lines (2 removed) | Also: extern int restore_job(cluster_t* c, uint64_t jobi; extern int restore_job_old_unused(cluster_t* c, ui",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-14T01:47:22.530Z"
},
{
"id": "bug-518",
"timestamp": "2026-06-14T01:50:24.429Z",
"error_message": "Missing guard clause",
"file": "src/controller/sched.c",
"root_cause": "No early return/throw for edge case: l->count > 0",
"fix": "Added guard clause: if (l->count > 0)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T01:50:24.429Z"
},
{
"id": "bug-519",
"timestamp": "2026-06-14T01:52:56.833Z",
"error_message": "Incorrect value in code",
"file": "src/controller/testsuite/test_egress_filter.c",
"root_cause": "Had \"\\n>> commit-gated scheduler egress tests (RED, ta",
"fix": "Changed to \"\\n>> commit-gated scheduler egress tests (GREEN, ",
"tags": [
"auto-detected",
"wrong-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T01:52:56.833Z"
},
{
"id": "bug-520",
"timestamp": "2026-06-14T03:52:21.920Z",
"error_message": "Significant refactor of ",
"file": "src/controller/cluster.c",
"root_cause": "8 lines replaced/restructured",
"fix": "Rewrote 9\u21924 lines (8 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T03:52:21.920Z"
},
{
"id": "bug-521",
"timestamp": "2026-06-14T03:55:55.380Z",
"error_message": "Incorrect value in code",
"file": "src/controller/testsuite/test_demotion_convergence.c",
"root_cause": "Had \"commit.h\"",
"fix": "Changed to \"cluster.h\"",
"tags": [
"auto-detected",
"wrong-value",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-14T03:58:21.222Z"
},
{
"id": "bug-522",
"timestamp": "2026-06-14T03:57:42.389Z",
"error_message": "Significant refactor of ",
"file": "src/controller/include/cluster.h",
"root_cause": "8 lines replaced/restructured",
"fix": "Rewrote 12\u21923 lines (8 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T03:57:42.389Z"
},
{
"id": "bug-523",
"timestamp": "2026-06-14T04:21:18.071Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha_convergence.c",
"root_cause": "No early return/throw for edge case: ctx == NULL || ctx->c == NULL",
"fix": "Added guard clause: if (ctx == NULL || ctx->c == NULL)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T04:21:18.071Z"
},
{
"id": "bug-524",
"timestamp": "2026-06-14T04:31:35.539Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_demotion_convergence.c",
"root_cause": "11 lines replaced/restructured",
"fix": "Rewrote 16\u219234 lines (11 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T04:31:35.539Z"
},
{
"id": "bug-343",
"timestamp": "2026-06-14T04:34:32+00:00",
"error_message": "AddressSanitizer: heap-use-after-free in ha_rejoin_reconcile_fn (ha_convergence.c:236) during test_rejoin_second_call_no_second_restart",
"file": "src/controller/testsuite/test_demotion_convergence.c",
"root_cause": "dc_run_pending_task peeked tasks.head and ran entry(args) WITHOUT dequeuing. The once-guard correctly makes the 2nd ha_rejoin_reconcile schedule no new task, so head still pointed at the first (already-run) task whose body had freed its heap ctx (args). The 2nd dc_run_pending_task re-ran that task on the freed ctx. The convergence task bodies free their own args (production delaymgr killer frees only the delay_task_t node, never args; production execv never re-runs a one-shot).",
"fix": "Made dc_run_pending_task DEQUEUE via ordq_get(&mgr->tasks, NULL), run the body, then free(t)/free(it) \u2014 mirroring the real delaymgr worker (ordq_get -> runner_fn -> FREEUP for runcount==1). A 2nd call now returns DC_NO_TASK as production would. Production ha_rejoin_reconcile/ha_rejoin_reconcile_fn unchanged (the body-frees-ctx pattern is correct).",
"tags": [
"asan",
"use-after-free",
"ha",
"rejoin",
"delaymgr",
"test-harness",
"ha-convergence-recovery",
"task-3.2"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T04:34:32+00:00"
},
{
"id": "bug-526",
"timestamp": "2026-06-14T04:52:58.813Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-convergence-recovery/tasks.md",
"root_cause": "Had \"No space left on device\"",
"fix": "Changed to `/tmp/xce_*`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T04:52:58.813Z"
},
{
"id": "bug-527",
"timestamp": "2026-06-14T04:57:22.178Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: /*; * ha_walack_continuation_for_test: test-only entry point for",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-14T04:57:42.146Z"
},
{
"id": "bug-528",
"timestamp": "2026-06-14T04:57:59.221Z",
"error_message": "Missing error handling in XCE_TESTING",
"file": "src/controller/ha_convergence.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T04:57:59.221Z"
},
{
"id": "bug-529",
"timestamp": "2026-06-14T05:23:00.737Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T05:23:00.737Z"
},
{
"id": "bug-530",
"timestamp": "2026-06-14T05:24:33.033Z",
"error_message": "Missing error handling in XCE_TESTING",
"file": "src/controller/config_repl.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T05:24:33.033Z"
},
{
"id": "bug-531",
"timestamp": "2026-06-14T05:25:04.524Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T05:25:04.524Z"
},
{
"id": "bug-532",
"timestamp": "2026-06-14T06:12:36.513Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha_convergence.c",
"root_cause": "No early return/throw for edge case: ha == NULL",
"fix": "Added guard clause: if (ha == NULL)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T06:12:36.513Z"
},
{
"id": "bug-533",
"timestamp": "2026-06-14T06:37:35.904Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_convergence_verification.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: printf(\"\\n>> Regression pins: fan-out / snapshot fallback / ; \"re-inclusion (task 6.1 \u2014 PASS against current code)\\n\\n\"); | Also: /* \u2500\u2500 Fan-out counting send-hook (task 6.1 (a)/(d), umbrella; * repl_broadcast routes each enqueue through repl_broadcast_",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-06-14T06:40:03.882Z"
},
{
"id": "bug-534",
"timestamp": "2026-06-14T06:38:38.792Z",
"error_message": "Incorrect value in code",
"file": "src/controller/testsuite/test_convergence_verification.c",
"root_cause": "Had \"delay.h\"",
"fix": "Changed to \"controller.capnp.h\"",
"tags": [
"auto-detected",
"wrong-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T06:38:38.792Z"
},
{
"id": "bug-535",
"timestamp": "2026-06-14T06:39:49.073Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_convergence_verification.c",
"root_cause": "22 lines replaced/restructured",
"fix": "Rewrote 33\u21923 lines (22 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T06:39:49.073Z"
},
{
"id": "bug-536",
"timestamp": "2026-06-14T07:56:01.819Z",
"error_message": "Function not marked async",
"file": "src/controller/testsuite/test_ha_rdhup_integration.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T07:56:01.819Z"
},
{
"id": "bug-537",
"timestamp": "2026-06-14T08:02:40.832Z",
"error_message": "Function not marked async",
"file": "src/controller/ha.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T08:02:40.832Z"
},
{
"id": "bug-538",
"timestamp": "2026-06-14",
"error_message": "config-less controller (my_config_tag==0) became PRIMARY after RDHUP and pushed empty config, breaking replication on a live 3-node cluster",
"file": "src/controller/ha.c",
"root_cause": "ha_on_primary_ctrl_fd_rdhup did not apply the no-config voter-only guard that ha_start_election_async has; after primary RDHUP it set CTRL_ELECTING, allocated elect_ctx and called raft_on_leader_lost even for tag=0 nodes. Two tag=0 nodes granted each other (freshness gate only denies LOWER tag; tag0==tag0 granted), electing a config-less primary.",
"fix": "Added an election-safety guard in ha_on_primary_ctrl_fd_rdhup after the WAL-truncate block and before elect_ctx alloc/hook/raft_on_leader_lost: if my_config_tag==0 && candidates_count>1, log + set role=CTRL_STANDBY and return (stays passive voter). Mirrors ha_start_election_async. Single-node (n_peers==1) unaffected.",
"tags": [
"ha",
"election-safety",
"rdhup",
"config-bootstrap",
"Req2.8",
"Req10.5",
"voter-only-guard"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14"
},
{
"id": "bug-539",
"timestamp": "2026-06-14T08:35:02.456Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_ha_vote_gate.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T08:35:02.456Z"
},
{
"id": "bug-540",
"timestamp": "2026-06-14T08:42:03.810Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "6 lines replaced/restructured",
"fix": "Rewrote 12\u219217 lines (6 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T08:42:03.810Z"
},
{
"id": "bug-541",
"timestamp": "2026-06-14T08:42:17.355Z",
"error_message": "Significant refactor of ",
"file": "src/controller/cluster.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 8\u219216 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T08:42:17.355Z"
},
{
"id": "bug-542",
"timestamp": "2026-06-14T09:29:31.490Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'commit.c'",
"fix": "Changed to 'testsuite/test_coldstart_lsn0.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T09:29:31.490Z"
},
{
"id": "bug-543",
"timestamp": "2026-06-14T09:36:36.967406Z",
"error_message": "WAL HOLE on cold-start catch-up: a fresh EMPTY standby (standby_lsn=0) catching up to a primary holding [0,1] receives ONLY lsn 1, missing lsn 0",
"file": "src/controller/config_repl.c",
"root_cause": "ha_stream_wal_to_standby filter `if (hdr.lsn > standby_lsn)` excludes lsn 0 when standby_lsn==0 (0>0 is false). standby_lsn=0 is ambiguous: it means BOTH 'empty standby (applied nothing)' AND 'standby has applied lsn 0'. The streamer cannot distinguish, computes start_lsn=standby_lsn+1=1, and drops the genuine lsn-0 entry. Only non-cosmetic because lsn-0 entries can be REAL data (first-ever WAL entry of a fresh cluster is lsn 0 from a real write OR the promotion NOOP).",
"fix": "FIXED via reserve-lsn-0: persist_init() now sets current_lsn=1 on a fresh store (persist.c), so lsn 0 is reserved as the none/empty sentinel and the first-ever WAL entry (promotion NOOP) is lsn 1. The streamer filter hdr.lsn>standby_lsn now yields 1>0=true for an empty standby (standby_lsn=0), streaming the first entry \u2014 no hole. No streamer change needed; the reserved base makes the existing filter correct. Also fixes the uncommittable cold-start NOOP (now lsn 1, committable 0->1) and the own-term writable_lsn gate (now 1, effective). Test: test_coldstart_lsn0.c H1-H4 all green incl H4 no-hole. Base-shift fallout fixed in test_commit_engine, test_commit_barrier_rollout, test_commit_barrier_reply, test_p2_integration, test_egress_filter (removed now-redundant priming appends / wired engine).",
"tags": [
"ha",
"replication",
"wal",
"cold-start",
"lsn-0",
"catch-up",
"correctness",
"off-by-one"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T10:00:00Z"
},
{
"id": "bug-544",
"timestamp": "2026-06-14T09:51:22.861Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_egress_filter.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 7\u21929 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T09:51:22.861Z"
},
{
"id": "bug-545",
"timestamp": "2026-06-14T09:51:50.354Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_p3_hardening.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 4\u21926 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T09:51:50.354Z"
},
{
"id": "bug-546",
"timestamp": "2026-06-14T10:03:46.645Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_commit_barrier_reply.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 8\u21929 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T10:03:46.645Z"
},
{
"id": "bug-547",
"timestamp": "2026-06-14T10:56:37.412Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_convergence_verification.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 32\u2192111 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T10:56:37.412Z"
},
{
"id": "bug-548",
"timestamp": "2026-06-14T10:58:04.523Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.h",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 8\u219215 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T10:58:04.523Z"
},
{
"id": "bug-549",
"timestamp": "2026-06-14T10:58:59.601Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 30\u219238 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T10:58:59.601Z"
},
{
"id": "bug-550",
"timestamp": "2026-06-14T11:38:09.614Z",
"error_message": "Wrong reference: test_pin_dispatch_gate_degraded_allowlist should be test_empty_standby_fresh_cluster_streams_not_snapshot",
"file": "src/controller/testsuite/test_convergence_verification.c",
"root_cause": "Used \"test_pin_dispatch_gate_degraded_allowlist\" instead of \"test_empty_standby_fresh_cluster_streams_not_snapshot\"",
"fix": "Changed test_pin_dispatch_gate_degraded_allowlist \u2192 test_empty_standby_fresh_cluster_streams_not_snapshot",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T11:38:09.614Z"
},
{
"id": "bug-551",
"timestamp": "2026-06-14T11:45:02.411Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/ha.c",
"root_cause": "Condition was: if (standby_lsn < oldest_wal_lsn)",
"fix": "Changed to: if (standby_lsn + 1 < oldest_wal_lsn)",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T11:45:02.411Z"
},
{
"id": "bug-552",
"timestamp": "2026-06-14T11:45:34.585Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_convergence_verification.c",
"root_cause": "18 lines replaced/restructured",
"fix": "Rewrote 35\u219254 lines (18 removed) | Also: /* HA_REPL_SEND_SNAPSHOT: standby_lsn predates the; \"heartbeat decision: standby_lsn below oldest_wal_",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-14T11:45:52.313Z"
},
{
"id": "bug-553",
"timestamp": "2026-06-14T11:47:05.280Z",
"error_message": "Significant refactor of ",
"file": "src/controller/repl.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 5\u219210 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T11:47:05.280Z"
},
{
"id": "bug-554",
"timestamp": "2026-06-14T11:47:21.564Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_p2_integration.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 5\u219220 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T11:47:21.564Z"
},
{
"id": "bug-555",
"timestamp": "2026-06-14T12:23:52.351Z",
"error_message": "Missing guard clause",
"file": "src/controller/testsuite/test_repl_apply.c",
"root_cause": "No early return/throw for edge case: !p",
"fix": "Added guard clause: if (!p)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T12:23:52.351Z"
},
{
"id": "bug-556",
"timestamp": "2026-06-14T12:25:37.723Z",
"error_message": "Function not marked async",
"file": "src/include/persist.h",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T12:25:37.723Z"
},
{
"id": "bug-557",
"timestamp": "2026-06-14T12:26:04.137Z",
"error_message": "Missing guard clause",
"file": "src/controller/persist.c",
"root_cause": "No early return/throw for edge case: !p",
"fix": "Added guard clause: if (!p)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T12:26:04.137Z"
},
{
"id": "bug-558",
"timestamp": "2026-06-14T14:03:21.674Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test.c",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 7\u21929 lines (5 removed) | Also: config.nmasters = 1;; config.masters[0] = get_setting(\"host\");",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-14T14:03:42.165Z"
},
{
"id": "bug-559",
"timestamp": "2026-06-14T14:30:38.316Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 4\u219214 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T14:30:38.316Z"
},
{
"id": "bug-560",
"timestamp": "2026-06-14T19:54:55.428Z",
"error_message": "Wrong reference: myconf_t should be uint32_t",
"file": "src/include/myconf.h",
"root_cause": "Used \"myconf_t\" instead of \"uint32_t\"",
"fix": "Changed myconf_t \u2192 uint32_t",
"tags": [
"auto-detected",
"wrong-reference",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T19:54:55.428Z"
},
{
"id": "bug-561",
"timestamp": "2026-06-14T20:05:48.755409",
"error_message": "jobsub intermittent -ETIMEDOUT \"Connection timed out\": commit: WAIT deadline expired without commit (timeout_ms=50)",
"file": "src/include/config.h",
"root_cause": "DEFAULT_SYNC_TIMEOUT_MS=50 too tight for durable sync majority replication (each standby fdatasyncs before ACK); not configurable (controller always used persist_config_defaults).",
"fix": "Raised DEFAULT_SYNC_TIMEOUT_MS 50->500; added --sync-timeout-ms CLI flag plumbed arguments->myconf.sync_timeout_ms->pcfg.sync_timeout_ms (0=use default) in main.c/myconf.h/cluster.c.",
"tags": [
"ha",
"commit-barrier",
"timeout",
"replication",
"jobsub",
"config"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T20:05:48.755409"
},
{
"id": "bug-562",
"timestamp": "2026-06-14T23:55:00Z",
"error_message": "AddressSanitizer: heap-use-after-free in encode_RequestReply / strlen (lib/controller.capnp.c:13168) on ctrl-2 startup, via xce_reply->xce_encode from OPCode_nop handler (cluster.c:307). Also: job submission succeeds but joblist shows no jobs.",
"file": "src/lib/request.c",
"root_cause": "init_reply_by_req() only set seq+opcode, leaving the rest of the stack-declared xce_reply_t uninitialized. The Cap'n-C generated encode_RequestReply reads the common trailer field redirect_host UNCONDITIONALLY (gated only on != NULL), so a garbage stack pointer in reply.redirect_host was strlen'd. The garbage aliased a 4KB capnp segment freed moments earlier by the WAL-ack reply encode on the same thread -> UAF. Handlers that build a reply via init_reply_by_req and only set status/data_which/data (e.g. the NOP/state-report path) never cleared redirect_host. Empty joblist is downstream: ctrl-2 crash-looping on this UAF destabilizes replication/quorum, so a get request that fails over to the not-caught-up standby reads an empty jobmgr (standby serves get from its own committed state).",
"fix": "memset(reply,0,sizeof(*reply)) at the top of init_reply_by_req() (src/lib/request.c) before setting seq/opcode. All 30+ reply sites follow declare->init->populate, so zeroing in the shared initializer fixes the whole class (redirect_host/redirect_port/status/data garbage) at the source. Added regression test test_init_reply_by_req_zeroes_reply in src/lib/testsuite/test_request.c (poisons reply with 0xFF, asserts redirect_host==NULL etc).",
"tags": [
"use-after-free",
"asan",
"capnp",
"encode_RequestReply",
"redirect_host",
"init_reply_by_req",
"ha",
"joblist",
"uninitialized-stack"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-14T23:55:00Z"
},
{
"id": "bug-563",
"timestamp": "2026-06-15T09:16:53.679025Z",
"error_message": "jobsub returns ok (status 0, jobid) but joblist AND jobinfo show the job absent on a stable single primary (ctrl-1); reslist works.",
"file": "src/lib/request.c",
"root_cause": "SOLVED (reproduced locally via /xce-build + 3-node deploy-ha, ASAN). cluster_start() \u2014 the ONLY place that sets c->running=1 \u2014 is ORPHANED (zero callers; grep confirms). The HA startup path (myapp_run) starts iomgr/vtaskmgr/delaymgr/persist_start itself but never calls cluster_start, so c->running stays 0 (calloc default) on the primary. check_controller() (the streaming gate passed to xce_reply_get for joblist/workerlist) returns -EINVAL when !c->running; xce_reply_get then sets nc=0 (chunk count), shipping an EMPTY list to the client even though collect_jobs/key_find found the job. reslist passes checkf=NULL so it was immune. DIAG proof: 'reply_get send: table=2 pos=0 nc=0 nrows=1 checkstatus=-22' (pre-fix) -> 'nc=1 ... checkstatus=1' (post-fix). Single-node/legacy cluster_init path called cluster_start, which is why non-replicated worked.",
"fix": "Set c->running=1 at the TOP of cluster_run() (src/controller/cluster.c), symmetric with the existing c->running=0 on shutdown \u2014 the orphaned cluster_start() used to set it. c->running is a liveness/shutdown flag: check_controller() is polled PER CHUNK inside xce_reply_get()'s streaming loop so a long multi-chunk fetch (e.g. thousands of jobs) ABORTS mid-stream (nc=0) if a shutdown request arrives during it. The bug: running started 0 and was never set under HA, so the gate fired on every reply, not just during shutdown. Fix restores running=1 for the run-loop lifetime; the shutdown abort path (running=0 when cluster_run's cbuf_get loop breaks on the stop signal) is unchanged. Verified E2E on a local 3-node deploy-ha (ASAN): jobs now appear in joblist; DIAG showed checkstatus/nc flip -22/0 -> 1/1. Final fix is in cluster_run (not myapp_run \u2014 moved there so the 1<->0 lifecycle is co-located in the function that receives the shutdown signal).",
"tags": [
"joblist",
"workerlist",
"jobsub",
"ha",
"check_controller",
"c-running",
"cluster_start",
"orphaned-function",
"xce_reply_get",
"SOLVED"
],
"related_bugs": [
"bug-562"
],
"occurrences": 1,
"last_seen": "2026-06-15T09:16:53.679025Z"
},
{
"id": "bug-564",
"timestamp": "2026-06-15T09:50:02.164Z",
"error_message": "Significant refactor of ",
"file": "src/controller/opget.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 6\u21923 lines (2 removed) | Also: {; extern uint64_t g_diag_last_jobid;",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-15T09:50:10.236Z"
},
{
"id": "bug-565",
"timestamp": "2026-06-15T10:46:08.441Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_ha_rdhup_integration.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-15T10:46:08.441Z"
},
{
"id": "bug-566",
"timestamp": "2026-06-15T10:46:31.815Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-15T10:46:31.815Z"
},
{
"id": "bug-567",
"timestamp": "2026-06-15T10:46:42.282Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 5\u21924 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-15T10:46:42.282Z"
},
{
"id": "bug-339",
"timestamp": "2026-06-15T11:00:00.000Z",
"error_message": "After killing the primary in a 3-node controller HA cluster, the two surviving controllers enter an infinite election loop: both only ever raft_cb_become_follower (never become_leader), terms climb in lockstep (4..23), RDHUP -> CTRL_ELECTING -> CTRL_STANDBY repeats forever.",
"file": "src/controller/ha.c, src/controller/myapp.c, src/controller/testsuite/test_ha_rdhup_integration.c",
"root_cause": "LSN-source asymmetry between candidate-advertised LSN and voter freshness floor, specific to the RDHUP failover election path. ha_on_primary_ctrl_fd_rdhup advertised c->persist.committed_lsn as the RequestVote last_log_lsn, but a STANDBY never advances persist.committed_lsn (only the primary's commit engine writes it at persist.c:1192). Standbys advance applied_lsn (ha_apply_wal_catchup_entry) and last_known_committed_lsn (heartbeat replies). The voter-side freshness floor (cluster.c OPCode_requestVote) is max(applied_lsn, last_known_committed_lsn) via ha_vote_self_freshness. So once a standby applied any WAL beyond its last snapshot, every surviving standby advertised a stale-low LSN (e.g. 0) while each peer computed a HIGH floor (e.g. 10); the freshness gate cand_lsn < my_lsn tripped on BOTH sides, each denied the other's vote, neither reached quorum (2 of 3), each election timed out -> become_follower -> 10s liveness timeout -> RDHUP -> re-elect at term+1. The boot path (myapp.c:217) already advertised applied_lsn, so cold-boot election worked; only the RDHUP failover path was inconsistent.",
"fix": "In ha_on_primary_ctrl_fd_rdhup, compute candidate freshness ONCE via ha_vote_self_freshness(ha, config_version_tag, applied_lsn, &cand_tag, &cand_lsn) right after ha->raft_c=c, and use cand_tag/cand_lsn for BOTH the elect_ctx (votes[0].my_tag/my_lsn + self_tag/self_lsn) and the XCE_TESTING ha_rdhup_election_hook args. This makes candidate-advertised LSN identical to the voter-side floor, so for any two nodes A,B: A grants B iff floor_B >= floor_A -> the freshest node is always granted by every peer; equal-floor ties are broken by raft priority delay. Regression test added: test_rdhup_candidate_advertises_freshness_floor_not_stale_committed (applied/learned=10, persist.committed=0 -> asserts advertised my_lsn==10). RED (Was 0) -> GREEN verified. Follow-up: boot election path (myapp.c) also routed through ha_vote_self_freshness (was raw applied_lsn) so both election paths are symmetric with the voter floor.",
"tags": [
"ha",
"election",
"raft",
"rdhup",
"failover",
"freshness-gate",
"committed_lsn",
"applied_lsn",
"split-vote",
"infinite-loop"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-15T11:00:00.000Z"
},
{
"id": "bug-569",
"timestamp": "2026-06-15T10:58:35.588Z",
"error_message": "Significant refactor of ",
"file": "src/controller/myapp.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 3\u219211 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-15T10:58:35.588Z"
},
{
"id": "bug-570",
"timestamp": "2026-06-15T11:10:10.553Z",
"error_message": "Incorrect value in code",
"file": ".kiro/steering/product.md",
"root_cause": "Had `raft.c`",
"fix": "Changed to `src/lib/raft/`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-15T11:10:10.553Z"
},
{
"id": "bug-571",
"timestamp": "2026-06-15T11:10:19.238Z",
"error_message": "Significant refactor of ",
"file": ".kiro/steering/product.md",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 4\u21927 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-15T11:10:19.238Z"
},
{
"id": "bug-572",
"timestamp": "2026-06-15T11:10:26.312Z",
"error_message": "Incorrect value in code",
"file": ".kiro/steering/tech.md",
"root_cause": "Had `raft.c`",
"fix": "Changed to `src/lib/raft/`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-15T11:10:26.312Z"
},
{
"id": "bug-573",
"timestamp": "2026-06-15T14:45:22.804Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "9 lines replaced/restructured",
"fix": "Rewrote 13\u21925 lines (9 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-15T14:45:22.804Z"
},
{
"id": "bug-340",
"timestamp": "2026-06-15T15:00:00.000Z",
"error_message": "After kill+RESTART of a controller (ctrl-1), the restarted node loops forever: ha_on_primary_ctrl_fd_rdhup \u2192 CTRL_ELECTING \u2192 raft_cb_become_follower \u2192 CTRL_STANDBY every ~heartbeat_timeout, term climbing unbounded (473+), while ctrl-2 stays PRIMARY at term 3. On ctrl-2: every heartbeat tick logs `xce_encode op 0 (NOP)` then `WARN endpoint_update_epoll rc1=-1 < 0` (netio.c:575) \u2014 a wedged outbound standby endpoint.",
"file": "src/controller/ha.c, src/controller/testsuite/test_ha_liveness.c",
"root_cause": "primary_heartbeat_fn never evicted a dead/wedged outbound standby endpoint from ha->standby_endpoints. When a peer is killed/restarted, its outbound ep on the primary wedges: handle_error (netio.c:420) runs iomgr_unmonitor (EPOLL_CTL_DEL, does NOT close the fd) and the err handler may leave the ep in standby_endpoints; epoll_ctl(EPOLL_CTL_MOD) on the DEL'd fd then returns ENOENT (rc1=-1) on every heartbeat enqueue. xce_nop_req still returns >=0 (enqueue ok) so the heartbeat layer never detected the wedge. Critically, primary_heartbeat_fn step 2 (reconnect) treats a peer as 'found' (connected) if ANY ep for it is in standby_endpoints \u2014 so the wedged ep SUPPRESSED reconnection. ctrl-2 therefore never opened a fresh connection to the restarted ctrl-1, never sent a ctrlhello, so ctrl-1 never set primary_ctrl_fd / refreshed last_activity and its liveness watchdog re-elected every heartbeat_timeout forever. (The earlier suspected 'become_follower doesn't reset last_activity' was NOT a bug: ha_arm_heartbeat_timeout_vtask already stamps last_activity=now, so the ~11s period is exactly one full timeout \u2014 confirming the watchdog is correct and the sole cause is the broken channel.)",
"fix": "In primary_heartbeat_fn (ha.c) step 1, added liveness eviction symmetric with the standby's own liveness poll: for each standby ep, if ep->ts_last_in > 0 (was responsive at least once) AND (now_wall - ep->ts_last_in) > heartbeat_timeout_s, remove it from ha->standby_endpoints (zarray_del, under ha->lock) and collect it; after releasing ha->lock, repl_remove_standby() each evicted ep. Removal is the load-bearing action \u2014 the reconnect scan (step 2) then re-establishes a fresh ctrlhello channel to the restarted peer on this/next tick, and ctrl-1 settles via ha_discover_primary (no term gate, ha.c:3807) \u2192 become_follower \u2192 STANDBY. ts_last_in/ts_last_out are existing endpoint_t fields (wall clock, set in handle_input/handle_output), so no libnetio change. The evicted ep object itself is reclaimed by its err handler when the dead connection finally surfaces an epoll event (bounded leak, consistent with codebase). Eviction keys on ts_last_in>0 so a just-connected joiner (ts_last_in==0) gets grace. Regression tests: test_primary_hb_evicts_silent_standby (RED\u2192GREEN), test_primary_hb_keeps_live_standby, test_primary_hb_keeps_unconfirmed_standby in test_ha_liveness.c.",
"tags": [
"ha",
"heartbeat",
"rejoin",
"restart",
"standby-endpoints",
"reconnect",
"epoll",
"liveness",
"election-loop"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-15T15:00:00.000Z"
},
{
"id": "bug-575",
"timestamp": "2026-06-16T00:10:49.295Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-prevote/research.md",
"root_cause": "Had 't understand PreVote (older binary) \u2014 does the ca",
"fix": "Changed to 's \"",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T00:10:49.295Z"
},
{
"id": "bug-576",
"timestamp": "2026-06-16T00:18:28.793Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-prevote/research.md",
"root_cause": "Had 's \"",
"fix": "Changed to `ha_heartbeat_is_fresh()`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T00:18:28.793Z"
},
{
"id": "bug-577",
"timestamp": "2026-06-16T00:26:16.193Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-prevote/research.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T00:26:16.193Z"
},
{
"id": "bug-578",
"timestamp": "2026-06-16T03:00:48.818Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-prevote/design.md",
"root_cause": "Had `ha_elect_ctx_t`",
"fix": "Changed to `raft_on_vote_reply`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 9,
"last_seen": "2026-06-16T03:02:59.202Z"
},
{
"id": "bug-579",
"timestamp": "2026-06-16T03:01:07.659Z",
"error_message": "Wrong return value",
"file": ".kiro/specs/ha-prevote/design.md",
"root_cause": "Was returning: codes (e.g. `RAFT_PRE_VOTE_WON`, `RAFT_PRE_VOTE_LO",
"fix": "Now returns: codes (e.g. `RAFT_PRE_VOTE_WON`, `RAFT_PRE_VOTE_LO",
"tags": [
"auto-detected",
"return-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T03:01:07.660Z"
},
{
"id": "bug-580",
"timestamp": "2026-06-16T03:06:57.732Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-prevote/tasks.md",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 7\u21927 lines (3 removed) | Also: - [ ] 5.1 Wire the PreVote reply opcode to the can; - Dispatch the incoming PreVote-reply opcode to th",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-16T03:07:10.762Z"
},
{
"id": "bug-581",
"timestamp": "2026-06-16T04:02:13.927Z",
"error_message": "Significant refactor of ",
"file": "src/lib/raft/raft.h",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 4\u21925 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T04:02:13.927Z"
},
{
"id": "bug-582",
"timestamp": "2026-06-16T04:18:41.611Z",
"error_message": "Missing error handling in unknown",
"file": "src/lib/testsuite/test_raft.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T04:18:41.611Z"
},
{
"id": "bug-583",
"timestamp": "2026-06-16T04:19:25.513Z",
"error_message": "Missing error handling in never",
"file": "src/lib/raft/raft.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T04:19:25.513Z"
},
{
"id": "bug-584",
"timestamp": "2026-06-16T04:27:50.039Z",
"error_message": "Missing guard clause",
"file": "src/lib/raft/raft.c",
"root_cause": "No early return/throw for edge case: s->cbs->on_trace",
"fix": "Added guard clause: if (s->cbs->on_trace)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T04:27:50.039Z"
},
{
"id": "bug-585",
"timestamp": "2026-06-16T04:36:28.796Z",
"error_message": "Missing guard clause",
"file": "src/lib/testsuite/test_raft.c",
"root_cause": "No early return/throw for edge case: rc != 0",
"fix": "Added guard clause: if (rc != 0)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T04:36:28.796Z"
},
{
"id": "bug-586",
"timestamp": "2026-06-16T04:50:38.855Z",
"error_message": "Missing error handling in struct",
"file": "src/controller/testsuite/test_ha_vote_gate.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: /* Task 3.1 \u2014 voter-side PreVote dispatch gate (stickiness +; * no mutation, reply term unchanged) */",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-16T04:50:49.601Z"
},
{
"id": "bug-587",
"timestamp": "2026-06-16T04:51:17.702Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_vote_gate.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 4\u21924 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T04:51:17.703Z"
},
{
"id": "bug-588",
"timestamp": "2026-06-16T04:57:16.230Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/cluster.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T04:57:16.230Z"
},
{
"id": "bug-589",
"timestamp": "2026-06-16T04:57:49.245Z",
"error_message": "Significant refactor of ",
"file": "src/controller/cluster.c",
"root_cause": "6 lines replaced/restructured",
"fix": "Rewrote 20\u219225 lines (6 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T04:57:49.245Z"
},
{
"id": "bug-590",
"timestamp": "2026-06-16T05:21:02.997Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-prevote/tasks.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T05:21:02.997Z"
},
{
"id": "bug-591",
"timestamp": "2026-06-16T05:27:09.380Z",
"error_message": "Wrong reference: test_commit_engine should be test_ha_prevote",
"file": "src/controller/testsuite/controller_test.c",
"root_cause": "Used \"test_commit_engine\" instead of \"test_ha_prevote\"",
"fix": "Changed test_commit_engine \u2192 test_ha_prevote",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-16T05:27:18.877Z"
},
{
"id": "bug-592",
"timestamp": "2026-06-16T05:28:01.236Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: !c || !c->myconf",
"fix": "Added guard clause: if (!c || !c->myconf)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-16T05:30:07.209Z"
},
{
"id": "bug-593",
"timestamp": "2026-06-16T05:44:57.430Z",
"error_message": "Function not marked async",
"file": ".kiro/specs/ha-prevote/tasks.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T05:44:57.430Z"
},
{
"id": "bug-594",
"timestamp": "2026-06-16T05:50:25.729Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'testsuite/test_commit_engine.c'",
"fix": "Changed to 'testsuite/test_ha_failover_prevote.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T05:50:25.730Z"
},
{
"id": "bug-595",
"timestamp": "2026-06-16T05:50:35.123Z",
"error_message": "Wrong reference: test_commit_engine should be test_ha_failover_prevote",
"file": "src/controller/testsuite/controller_test.c",
"root_cause": "Used \"test_commit_engine\" instead of \"test_ha_failover_prevote\"",
"fix": "Changed test_commit_engine \u2192 test_ha_failover_prevote",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-16T05:50:39.775Z"
},
{
"id": "bug-596",
"timestamp": "2026-06-16T05:52:32.982Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "104 lines replaced/restructured",
"fix": "Rewrote 157\u219290 lines (104 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T05:52:32.982Z"
},
{
"id": "bug-597",
"timestamp": "2026-06-16T05:59:43.939Z",
"error_message": "Function not marked async",
"file": "src/controller/ha.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T05:59:43.939Z"
},
{
"id": "bug-598",
"timestamp": "2026-06-16T06:33:05.644Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: role == CTRL_STANDBY && ha->raft.pre_vote_in_progress",
"fix": "Added guard clause: if (role == CTRL_STANDBY && ha->raft.pre_vot)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T06:33:05.644Z"
},
{
"id": "bug-599",
"timestamp": "2026-06-16T06:58:28.916Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_ha_prevote.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T06:58:28.916Z"
},
{
"id": "bug-600",
"timestamp": "2026-06-16T07:54:55.333Z",
"error_message": "Significant refactor of ",
"file": ".claude/settings.json",
"root_cause": "9 lines replaced/restructured",
"fix": "Rewrote 13\u21923 lines (9 removed) | Also: },; {",
"tags": [
"auto-detected",
"refactor",
"json"
],
"related_bugs": [],
"occurrences": 4,
"last_seen": "2026-06-16T07:57:04.100Z"
},
{
"id": "bug-601",
"timestamp": "2026-06-16T07:55:35.829Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-prevote/tasks.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T07:55:35.829Z"
},
{
"id": "bug-602",
"timestamp": "2026-06-16T08:07:10.459Z",
"error_message": "Significant refactor of ",
"file": ".claude/settings.json",
"root_cause": "9 lines replaced/restructured",
"fix": "Rewrote 13\u21923 lines (9 removed) | Also: },; {",
"tags": [
"auto-detected",
"refactor",
"json"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-16T08:07:18.239Z"
},
{
"id": "bug-603",
"timestamp": "2026-06-16T08:18:48.567Z",
"error_message": "Function not marked async",
"file": "src/controller/persist.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T08:18:48.567Z"
},
{
"id": "bug-604",
"timestamp": "2026-06-16T15:55:00Z",
"error_message": "controller unit test TIMEOUT 300.01s killed by SIGTERM; suite exceeds 300s meson cap",
"file": "src/controller/persist.c",
"root_cause": "fsync_worker slept the full wal_sync_ms in one uninterruptible nanosleep() then checked fsync_stop. persist_stop sets the flag and immediately pthread_join()s, so the join blocked until the in-progress sleep returned \u2014 up to a full wal_sync_ms per teardown. Tests set wal_sync_ms=5000 ('slow fsync, no races'), so each persist_stop cost ~5s; across ~7 suites with many fixtures the cumulative teardown time blew past the 300s controller-test cap. The 'commit: WAIT deadline expired' warnings in the log were unrelated intentional negative tests (50-300ms).",
"fix": "Replaced the nanosleep with pthread_cond_timedwait on a new fsync_mutex/fsync_cond (added to persist_t, init in persist_init, destroyed in persist_fini). persist_stop now sets fsync_stop and pthread_cond_signal(fsync_cond) under fsync_mutex before join, so the worker wakes immediately. fdatasync still runs under p->lock, released before re-acquiring fsync_mutex (no lock nesting). Full controller suite now completes in ~10s (was >300s); 0 failures.",
"tags": [
"controller",
"persist",
"fsync",
"thread-shutdown",
"test-timeout",
"pthread_join",
"nanosleep",
"condvar",
"ha"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T15:55:00Z"
},
{
"id": "bug-605",
"timestamp": "2026-06-16T16:30:00Z",
"error_message": "3-node fresh HA deploy never elects a primary: all nodes stay CTRL_STANDBY, config-holder (ctrl-1) loops PreVote LOST every ~11s forever; config-less peers idle as voter-only. REPRODUCED via /xce-deploy-ha + clean restart 2026-06-16.",
"file": "src/controller/ha.c (ha_dispatch_gate); test: src/controller/testsuite/test_ha_role.c",
"root_cause": "ha_dispatch_gate() admitted OPCode_requestVote in CTRL_INIT/CTRL_ELECTING/CTRL_STANDBY but NEVER OPCode_preVoteRequest (opcode 38). ha-prevote added the new opcode + handler (cluster.c:440) but missed wiring it into the role-admission gate. So a STANDBY voter rejected an incoming PreVote with -XCE_ERR_STANDBY (-10014) BEFORE the handler ran -> no preVoteReply sent -> candidate's failed/empty exchange tallied as a denial (pre_vote_reply_decode_and_dispatch counts ok=0 as non-grant; vote_ep_err_handler synthesizes a denied vote). In a cold cluster (config-holder + config-less voter-only peers) every PreVote 'lost' with NO voter ever making a liveness decision (zero 'PreVote DENIED' logs), so no primary was ever elected and the config-holder looped PreVote forever. Confirmed via gdb: myreq_handler ha_dispatch_gate rc=-10014 on opcode 38. Design invariant: a PreVote (strictly non-mutating) must be at least as admissible as a real requestVote in every role.",
"fix": "Added OPCode_preVoteRequest alongside OPCode_requestVote in ha_dispatch_gate() for CTRL_INIT, CTRL_ELECTING, and the CTRL_STANDBY switch (src/controller/ha.c). PreVote now reaches the cluster.c handler and a proper preVoteReply is sent. Added TDD test test_dispatch_gate_allows_prevote_in_voter_roles (test_ha_role.c) asserting gate(preVoteRequest)==gate(requestVote)==0 across voter roles. VERIFIED: controller unit suite OK (new test PASS); fresh /xce-deploy-ha 3-node cold start now elects ctrl-1 PRIMARY (term=2), standbys establish primary channel + config committed, prevote-LOST=0, connections 96->8.",
"tags": [
"ha",
"prevote",
"ha-dispatch-gate",
"opcode-38",
"cold-start",
"bootstrap-deadlock",
"FIXED",
"XCE_ERR_STANDBY"
],
"related_bugs": [
"bug-339"
],
"occurrences": 1,
"last_seen": "2026-06-16T09:38:00Z"
},
{
"id": "bug-606",
"timestamp": "2026-06-16T17:46:00Z",
"error_message": "After killing the primary (ctrl-1), the two surviving standbys (ctrl-2,ctrl-3) livelock in synchronized elections: PreVote win \u2192 CTRL_ELECTING \u2192 become_follower (term bumped) \u2192 ~10s \u2192 repeat, term climbing unbounded (3\u21929\u2192\u221e), no new primary ever elected. Reproduce: deploy 3-node HA, elect primary, submit 3-5 jobs, kill ctrl-1.",
"file": "src/controller/ha.c (ha_begin_failover, ha_election_stagger_ms, ha_failover_stagger_fn); src/controller/ha.h; test: src/controller/testsuite/test_ha_role.c",
"root_cause": "Dueling-candidates split-vote livelock \u2014 Raft \u00a75.2 randomized election timeout is missing on the FAILOVER path. Both survivors lose the primary at the same instant; their liveness polls fire on the identical fixed heartbeat_timeout, so they start PreVote+real-election in perfect lock-step (ms-aligned timestamps). Both win PreVote (neither sees a primary, so each grants the other \u2014 PreVote cannot break this tie), then both campaign at the same term, each votes for itself and denies the other (quorum 2, only 2 live nodes) \u2192 split vote \u2192 election times out (fixed election_timeout_ms, raft.c:105, NO jitter) \u2192 become_follower, term+1 \u2192 repeat forever. The priority/jitter config (election_jitter_max_ms, election_priority_step_ms) is applied ONLY at startup (ha_wait_for_heartbeat_or_timeout); the failover re-election path (liveness_poll_fn \u2192 ha_on_primary_ctrl_fd_rdhup \u2192 PreVote \u2192 ha_start_election_async \u2192 raft_start_election) has no de-synchronization. raft_on_leader_lost DOES have a priority stagger (raft.c:421) but the failover loop does not go through it.",
"fix": "Added ha_election_stagger_ms() (ha.c/ha.h): per-node failover delay = my_priority*election_priority_step_ms + random[0,election_jitter_max_ms], re-randomized each call (mirrors the startup stagger). ha_begin_failover() now schedules the PreVote start via delaymgr after that stagger (production only; c==NULL/no-delaymgr stays synchronous so existing tests are unaffected). The delaymgr callback ha_failover_stagger_fn guards with role==STANDBY && ha_heartbeat_is_fresh \u2192 skips PreVote if a primary connected during the stagger. Effect: two survivors no longer campaign in lock-step; the higher-priority survivor wins and its heartbeats reset the other. TDD: test_election_stagger_desyncs_by_priority (bounds + step>jitter ordering). VERIFIED on kill-primary repro: ctrl-2 (stagger 630ms) won \u2192 PRIMARY term=1; ctrl-3 (stagger 1072ms) received ctrl-2's ctrlhello first \u2192 STANDBY, then its stagger timer hit the guard and skipped PreVote ('a primary is alive \u2014 skipping PreVote'). No term inflation, no livelock. NOTE: optional raft.c:105 give-up-watchdog randomization NOT needed \u2014 the failover-start stagger alone resolves it; left as future defense-in-depth.",
"tags": [
"ha",
"raft",
"election",
"split-vote",
"dueling-candidates",
"livelock",
"randomized-timeout",
"failover",
"stagger",
"jitter",
"FIXED"
],
"related_bugs": [
"bug-605"
],
"occurrences": 1,
"last_seen": "2026-06-16T10:04:00Z"
},
{
"id": "bug-607",
"timestamp": "2026-06-16T10:37:37.021Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/libxce-failover/requirements.md",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 5\u21928 lines (5 removed) | Also: 1. If a controller returns a not-ready (no current; shall retry the request with backoff.",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-16T10:38:03.618Z"
},
{
"id": "bug-608",
"timestamp": "2026-06-16T10:36:00Z",
"error_message": "libxce client never fails over after primary killed; xce_joblist returns 'Invalid argument' (EINVAL) indefinitely",
"file": "src/lib/request.c",
"root_cause": "Two gaps: (1) xce_request_with_retry() (request.c:1956) is implemented+unit-tested but NO production path calls it - every xce_*_req wrapper calls plain xce_request() (request.c:1385 etc). (2) The retry primitive keys on E_XCE_STANDBY + reply.redirect_host/port (request.c:2010), but the real controller emits a dedicated E_XCE_REDIRECT status with data_which=nodata (join.c:264-266) and never populates those trailer fields. Controller non-primary taxonomy is E_XCE_REDIRECT / E_XCE_NOMASTER / E_XCE_NOT_READY / E_XCE_STANDBY (errnox.h:22-25). So the client both bypasses the wrapper AND, even if wired, would not detect the controller's actual redirect signal.",
"fix": "Spec libxce-failover: wire all production request paths through transparent failover; classify on actual controller statuses (REDIRECT=fast-rotate to find existing primary, address-if-present else rotate master list; NOMASTER/NOT_READY=backoff then cluster-not-ready; STANDBY=rotate); realign the existing retry unit tests to the emitted statuses. Implementation pending (requirements phase).",
"tags": [
"libxce",
"failover",
"ha",
"E_XCE_REDIRECT",
"retry",
"client",
"protocol-mismatch"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T10:36:00Z"
},
{
"id": "bug-609",
"timestamp": "2026-06-16T10:52:01.800Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/libxce-failover/requirements.md",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 6\u21929 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T10:52:01.800Z"
},
{
"id": "bug-610",
"timestamp": "2026-06-16T10:52:36.535Z",
"error_message": "Function not marked async",
"file": ".kiro/steering/roadmap.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T10:52:36.535Z"
},
{
"id": "bug-611",
"timestamp": "2026-06-16T13:02:01.004Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/libxce-failover/design.md",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 20\u219227 lines (3 removed) | Also: - On every reply, copy `reply.status` and **deep-c; with the reply \u2014 see request.c:243-250 hazard) + ` | Also: - Preconditions: `ctx` initialized; `conf->nmaster; exhaustion returns `-E_XCE_NOT_READY`; ctx left us",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-06-16T13:02:46.348Z"
},
{
"id": "bug-612",
"timestamp": "2026-06-16T13:09:39.339Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/libxce-failover/design.md",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 6\u219210 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T13:09:39.339Z"
},
{
"id": "bug-613",
"timestamp": "2026-06-16T13:15:11.048Z",
"error_message": "Function not marked async",
"file": ".kiro/specs/libxce-failover/design.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T13:15:11.048Z"
},
{
"id": "bug-614",
"timestamp": "2026-06-16T13:18:29.113Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/libxce-failover/design.md",
"root_cause": "Had `xce_ctx_call`",
"fix": "Changed to `xcecli_retry_next`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-16T13:18:35.874Z"
},
{
"id": "bug-615",
"timestamp": "2026-06-16T13:18:59.337Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/libxce-failover/research.md",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 4\u219210 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T13:18:59.337Z"
},
{
"id": "bug-616",
"timestamp": "2026-06-16T13:36:08.340Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/libxce-failover/design.md",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 12\u219220 lines (2 removed) | Also: F->>E: reconnect to address; F->>E: reconnect to next master | Also: | 5.1, 5.3 | Reads+writes; no silent drop | Xcecli; | XcecliRetryLoop | client (`client.c`) | `do/whil | Also: - `src/lib/client.c` \u2014 wrap each `xcecli_*` op bod; (xcecli_retry_next(ac,&rc,is_write,&st));` loop; a",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 4,
"last_seen": "2026-06-16T13:39:20.214Z"
},
{
"id": "bug-617",
"timestamp": "2026-06-16T23:38:24.000Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/libxce-failover/design.md",
"root_cause": "Had `redirect_host/port`",
"fix": "Changed to `host/port`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-16T23:38:53.585Z"
},
{
"id": "bug-618",
"timestamp": "2026-06-16T23:40:05.565Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/libxce-failover/tasks.md",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 3\u21923 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T23:40:05.565Z"
},
{
"id": "bug-619",
"timestamp": "2026-06-16T23:40:22.003Z",
"error_message": "Wrong reference: address should be hint",
"file": ".kiro/specs/libxce-failover/tasks.md",
"root_cause": "Used \"address\" instead of \"hint\"",
"fix": "Changed address \u2192 hint",
"tags": [
"auto-detected",
"wrong-reference",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T23:40:22.003Z"
},
{
"id": "bug-620",
"timestamp": "2026-06-16T23:55:21.886Z",
"error_message": "Significant refactor of ",
"file": "src/lib/client.c",
"root_cause": "11 lines replaced/restructured",
"fix": "Rewrote 22\u219210 lines (11 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T23:55:21.886Z"
},
{
"id": "bug-621",
"timestamp": "2026-06-16T23:56:22.835Z",
"error_message": "Significant refactor of ",
"file": "src/lib/request.c",
"root_cause": "81 lines replaced/restructured",
"fix": "Rewrote 106\u219214 lines (81 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T23:56:22.835Z"
},
{
"id": "bug-622",
"timestamp": "2026-06-16T23:56:36.669Z",
"error_message": "Significant refactor of ",
"file": "src/include/request.h",
"root_cause": "22 lines replaced/restructured",
"fix": "Rewrote 40\u219217 lines (22 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-16T23:56:36.669Z"
},
{
"id": "bug-623",
"timestamp": "2026-06-17T00:04:51.775Z",
"error_message": "Wrong reference: XCE_MAXHOST_LEN should be XCE_MAXHOSTNAME_LEN",
"file": ".kiro/specs/libxce-failover/design.md",
"root_cause": "Used \"XCE_MAXHOST_LEN\" instead of \"XCE_MAXHOSTNAME_LEN\"",
"fix": "Changed XCE_MAXHOST_LEN \u2192 XCE_MAXHOSTNAME_LEN",
"tags": [
"auto-detected",
"wrong-reference",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T00:04:51.775Z"
},
{
"id": "bug-624",
"timestamp": "2026-06-17T02:35:29.695Z",
"error_message": "Incorrect value in code",
"file": "src/lib/meson.build",
"root_cause": "Had 'dataq.c'",
"fix": "Changed to 'client_failover.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T02:35:29.695Z"
},
{
"id": "bug-625",
"timestamp": "2026-06-17T02:47:55.586Z",
"error_message": "Significant refactor of ",
"file": "src/lib/client_failover.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 13\u219223 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T02:47:55.586Z"
},
{
"id": "bug-626",
"timestamp": "2026-06-17T02:48:27.547Z",
"error_message": "Missing guard clause",
"file": "src/lib/client_failover.c",
"root_cause": "No early return/throw for edge case: ac == NULL || host_out == NULL || host_sz == 0 || port_out =",
"fix": "Added guard clause: if (ac == NULL || host_out == NULL || host_s)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T02:48:27.547Z"
},
{
"id": "bug-627",
"timestamp": "2026-06-17T02:54:16.472Z",
"error_message": "Significant refactor of ",
"file": "src/include/xce/client_failover.h",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 7\u21923 lines (3 removed) | Also: * EndpointRotator \u2014 choose the next connect target; *",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-17T02:54:47.480Z"
},
{
"id": "bug-628",
"timestamp": "2026-06-17T02:55:18.468Z",
"error_message": "Significant refactor of ",
"file": "src/lib/client_failover.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 3\u21924 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T02:55:18.468Z"
},
{
"id": "bug-629",
"timestamp": "2026-06-17T03:18:22.365Z",
"error_message": "Missing guard clause",
"file": "src/lib/client_failover.c",
"root_cause": "No early return/throw for edge case: base >= (double",
"fix": "Added guard clause: if (base >= (double)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T03:18:22.365Z"
},
{
"id": "bug-630",
"timestamp": "2026-06-17T03:18:49.743Z",
"error_message": "Significant refactor of ",
"file": "src/lib/client_failover.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 9\u219221 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T03:18:49.743Z"
},
{
"id": "bug-631",
"timestamp": "2026-06-17T03:31:29.120Z",
"error_message": "Missing guard clause",
"file": "src/lib/client_failover.c",
"root_cause": "No early return/throw for edge case: ac == NULL",
"fix": "Added guard clause: if (ac == NULL)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T03:31:29.120Z"
},
{
"id": "bug-632",
"timestamp": "2026-06-17T03:39:44.187Z",
"error_message": "Significant refactor of ",
"file": "src/lib/client_internal.h",
"root_cause": "6 lines replaced/restructured",
"fix": "Rewrote 10\u21927 lines (6 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T03:39:44.187Z"
},
{
"id": "bug-633",
"timestamp": "2026-06-17T03:40:10.853Z",
"error_message": "Missing guard clause",
"file": "src/lib/client_failover.c",
"root_cause": "No early return/throw for edge case: ac == NULL",
"fix": "Added guard clause: if (ac == NULL)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T03:40:10.853Z"
},
{
"id": "bug-634",
"timestamp": "2026-06-17T03:40:45.973Z",
"error_message": "Significant refactor of ",
"file": "src/lib/client_failover.c",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 35\u219253 lines (5 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T03:40:45.973Z"
},
{
"id": "bug-635",
"timestamp": "2026-06-17T03:51:08.767Z",
"error_message": "Wrong return value",
"file": "src/lib/client.c",
"root_cause": "Was returning: xce_reslist(&(ctx->ctx), res);",
"fix": "Now returns: XCECLI_FAILOVER_CALL(ctx, /*is_write=*/false,",
"tags": [
"auto-detected",
"return-value",
"c"
],
"related_bugs": [],
"occurrences": 8,
"last_seen": "2026-06-17T03:51:29.554Z"
},
{
"id": "bug-636",
"timestamp": "2026-06-17T03:51:27.648Z",
"error_message": "Significant refactor of ",
"file": "src/lib/client.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 5\u21927 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T03:51:27.648Z"
},
{
"id": "bug-637",
"timestamp": "2026-06-17T03:57:33.232Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/libxce-failover/design.md",
"root_cause": "Had `nop`",
"fix": "Changed to `jobinfo`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-17T03:57:40.348Z"
},
{
"id": "bug-638",
"timestamp": "2026-06-17T04:02:05.572Z",
"error_message": "Missing guard clause",
"file": "src/lib/client_failover.c",
"root_cause": "No early return/throw for edge case: ac == NULL",
"fix": "Added guard clause: if (ac == NULL)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T04:02:05.572Z"
},
{
"id": "bug-639",
"timestamp": "2026-06-17T04:11:59.759Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'testsuite/test_p1_integration.c'",
"fix": "Changed to 'testsuite/test_join_redirect.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T04:11:59.759Z"
},
{
"id": "bug-640",
"timestamp": "2026-06-17T04:12:01.203Z",
"error_message": "Wrong reference: test_p1_integration should be test_join_redirect",
"file": "src/controller/testsuite/controller_test.c",
"root_cause": "Used \"test_p1_integration\" instead of \"test_join_redirect\"",
"fix": "Changed test_p1_integration \u2192 test_join_redirect",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-17T04:12:02.464Z"
},
{
"id": "bug-641",
"timestamp": "2026-06-17T04:19:58.697Z",
"error_message": "Wrong reference: test_recover_resets_err_state_to_run should be test_decide_jitter_staggers_many_clients",
"file": "src/lib/testsuite/test_libxce_retry.c",
"root_cause": "Used \"test_recover_resets_err_state_to_run\" instead of \"test_decide_jitter_staggers_many_clients\"",
"fix": "Changed test_recover_resets_err_state_to_run \u2192 test_decide_jitter_staggers_many_clients",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T04:19:58.697Z"
},
{
"id": "bug-609",
"timestamp": "2026-06-17T04:45:00Z",
"error_message": "After primary killed, libxce client xce_joblist/jobsubmit returns 'Invalid argument' (-EINVAL) on every fresh call \u2014 transparent failover did not engage",
"file": "src/lib/client_failover.c",
"root_cause": "handle_disconnect leaves xce_ctx_t.state=XCE_CTX_ERR after the primary's connection drops; the per-op xceapi guard (xceapi.c:14) returns -EINVAL when state!=XCE_CTX_RUN, BEFORE the op reaches a primary. xcecli_retry_decide classified -EINVAL as TERMINAL (non-retriable), so the failover loop bailed without rotating/recovering. The ctx->state ERR->RUN recovery only ran AFTER a rotate, which a terminal classification never triggered. Surfaced by the live 3-node E2E (task 6.2); the unit tests fed status codes directly to decide() and bypassed the real guard, so they missed it.",
"fix": "In xcecli_retry_decide, before classifying *rc, detect ac->ctx.state==XCE_CTX_ERR (known-dead connection) and treat it as a prompt transport-style failover cause (XCE_FO_RETRY_NOW, no backoff) regardless of *rc, so the loop rotates+recovers. On budget exhaustion surface -E_XCE_NOT_READY (cluster-not-ready), never -EINVAL. Regression: test_decide_known_dead_ctx_retries_not_terminal.",
"tags": [
"libxce",
"failover",
"EINVAL",
"XCE_CTX_ERR",
"reconnect",
"E2E"
],
"related_bugs": [
"bug-608"
],
"occurrences": 1,
"last_seen": "2026-06-17T04:45:00Z"
},
{
"id": "bug-610",
"timestamp": "2026-06-17T15:00:00Z",
"error_message": "ASan SEGV in endpoint_connect (netio.c:672) via xce_failover_rotate \u2192 xcecli_retry_next \u2192 xcecli_joblist during live master failover (NULL ep->iomgr deref)",
"file": "src/lib/client_failover.c",
"root_cause": "xce_failover_rotate reconnected via endpoint_fini + endpoint_init + endpoint_connect, but endpoint_init (do_endpoint_init) resets the endpoint struct including ep->iomgr, and the rotate never re-bound it. The client's endpoint gets ep->iomgr = &ctx->iomgr only via xce_ctx_set_endpoint (called once in xcecli_start). endpoint_connect derefs iomgr->ssl_ctx when ep->ssl==NULL (true after endpoint_fini frees the SSL) \u2192 NULL deref crash. Also the rotate never re-set owner/msg_handler/err_handler nor iomgr_monitor'd the new fd, so even without the crash the reconnected endpoint would not route replies. Pure unit tests could not exercise the live socket/iomgr path; only the live failover E2E hit it.",
"fix": "Added xce_ctx_reconnect(ctx,host,port) in xcectx.c (where static handle_msg/handle_disconnect live) that mirrors the connection-establishment of xcecli_start/xce_ctx_start without restarting iomgr/vtaskmgr or touching ctx->state: endpoint_fini \u2192 endpoint_init \u2192 endpoint_set_peer \u2192 re-bind ep->iomgr=&ctx->iomgr \u2192 endpoint_connect \u2192 re-set owner+msg/err handlers \u2192 iomgr_monitor. xce_failover_rotate now delegates the reconnect to it.",
"tags": [
"libxce",
"failover",
"crash",
"SEGV",
"endpoint_connect",
"iomgr",
"reconnect",
"E2E"
],
"related_bugs": [
"bug-609",
"bug-608"
],
"occurrences": 1,
"last_seen": "2026-06-17T15:00:00Z"
},
{
"id": "bug-644",
"timestamp": "2026-06-17T08:15:04.978Z",
"error_message": "Incorrect value in code",
"file": "src/lib/meson.build",
"root_cause": "Had 'testsuite/test_raft.c'",
"fix": "Changed to 'testsuite/test_netio_arm_failure.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T08:15:04.978Z"
},
{
"id": "bug-645",
"timestamp": "2026-06-17T08:15:18.557Z",
"error_message": "Significant refactor of ",
"file": "src/lib/netio.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 25\u219239 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T08:15:18.557Z"
},
{
"id": "bug-646",
"timestamp": "2026-06-17T08:21:32.099Z",
"error_message": "Wrong reference: 611 should be 646",
"file": "src/lib/testsuite/test_netio_arm_failure.c",
"root_cause": "Used \"611\" instead of \"646\"",
"fix": "Changed 611 \u2192 646",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T08:21:32.099Z"
},
{
"id": "bug-647",
"timestamp": "2026-06-17T08:21:56.735Z",
"error_message": "Wrong reference: 611 should be 646",
"file": "src/lib/netio.c",
"root_cause": "Used \"611\" instead of \"646\"",
"fix": "Changed 611 \u2192 646",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T08:21:56.735Z"
},
{
"id": "bug-646",
"timestamp": "2026-06-17T16:30:00Z",
"error_message": "xce_test jobsub hangs forever after a failover; main thread blocked in cbuf_get (xceapi.c:304) while io_worker sits idle in epoll_wait. Logs: 'rotate failed (rc=-111)' then 'endpoint_update_epoll rc1=-1 < 0'.",
"file": "src/lib/netio.c",
"root_cause": "endpoint_update_epoll() swallowed iomgr_update_poll() failures: it WARN'd 'rc1=-1' but returned 0 and left ep->flags unchanged, so the poll interest was never armed. iomgr_update_poll uses EPOLL_CTL_MOD, which fails with ENOENT when the fd is no longer registered (e.g. after a failed reconnect: xce_ctx_reconnect endpoint_fini's the old fd but only iomgr_monitor/EPOLL_CTL_ADDs on a SUCCESSFUL connect). The next endpoint_enq() send then MOD-failed silently, request bytes were never flushed, no reply arrived, and the synchronous client blocked forever in cbuf_get (no timeout) with no socket-drop event to wake it (handle_disconnect only fires on a broken socket). Server side was a red herring: DEFAULT_SYNC_TIMEOUT_MS=500 bounds the commit barrier, and ha_dispatch_gate already replies STANDBY/NOT_READY for non-serving roles.",
"fix": "endpoint_update_epoll() captures errno and RETURNS -errno (not 0) on iomgr_update_poll failure. endpoint_enq(): on negative arm result, run handle_error(ep) (iomgr_unmonitor + handle_disconnect -> state=ERR + inject -ECONNRESET into wbuf, waking the blocked cbuf_get) and return the error so the failover loop rotates. handle_output(): propagates the arm failure so io_handler runs the error path. TDD: test_netio_arm_failure.c drives EPOLL_CTL_MOD ENOENT via endpoint_enq on an unregistered fd; asserts loud rc<0 + err_handler fired (verified red without fix, green with).",
"tags": [
"libxce",
"failover",
"netio",
"epoll",
"EPOLL_CTL_MOD",
"ENOENT",
"silent-failure",
"hang",
"cbuf_get",
"reconnect"
],
"related_bugs": [
"bug-610",
"bug-609"
],
"occurrences": 1,
"last_seen": "2026-06-17T16:30:00Z"
},
{
"id": "bug-649",
"timestamp": "2026-06-17T09:26:05.914Z",
"error_message": "Significant refactor of ",
"file": "src/lib/netio.c",
"root_cause": "13 lines replaced/restructured",
"fix": "Rewrote 48\u219266 lines (13 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T09:26:05.914Z"
},
{
"id": "bug-648",
"timestamp": "2026-06-17T17:30:00Z",
"error_message": "Peer-close/EOF on an SSL connection was swallowed: io_fsm_do() set fsm->state=FSM_STATE_ERROR but returned rc=0 on a clean EOF, so handle_input() returned >=0, handle_error/handle_disconnect never ran, and a blocked cbuf_get() reply-waiter was not woken on the first close event.",
"file": "src/lib/netio.c",
"root_cause": "io_fsm_do() computed rc = -errno when a closed/reset connection was detected. By OpenSSL 3.x contract (verified against docs + a live probe on OpenSSL 3.6.0), a peer close makes SSL_read() return 0 and is reported via SSL_get_error(), NOT via the return value or errno: clean close_notify -> SSL_ERROR_ZERO_RETURN (errno 0); unexpected EOF (FIN, no close_notify) -> SSL_ERROR_SSL since OpenSSL 3.0 (pre-3.0 it was SSL_ERROR_SYSCALL with errno 0 -- documented); RST -> SSL_ERROR_SYSCALL errno=ECONNRESET. errno is only meaningful for SSL_ERROR_SYSCALL; for SSL_ERROR_SSL the error queue is authoritative and any errno (we observed EPIPE=32) is a leaked side effect of OpenSSL's internal alert-write (write() on a broken connection returns EPIPE; read() never does). So -errno is 0 for the documented EOF cases -> the close looked like success. NOTE: on this 3.6 build a process-death FIN surfaced as SSL_ERROR_SSL/errno=32, which the OLD code propagated -- so this swallow is NOT necessarily the cause of the observed controller-kill permanent hang (that still implicates the reconnect/SSL-handshake path); it is a real, separate, errno-dependent non-determinism.",
"fix": "Extracted pure io_classify_io_error(ssl_err, ecode, io_rc): returns 0 only for WANT_READ/WANT_WRITE and EAGAIN/EWOULDBLOCK syscall; otherwise returns a NEGATIVE error ((ecode!=0)?-ecode:-ECONNRESET) so a detected close NEVER returns 0 regardless of the unreliable errno. io_fsm_do() now sets FSM_STATE_ERROR iff the classifier returns <0. TDD: test_netio_close_propagation.c asserts ZERO_RETURN/errno0 and SSL_ERROR_SSL/EOF map to <0 (verified red with old -ecode, green with fix). libxce suite 168/0; controller_unit_test links clean.",
"tags": [
"libxce",
"netio",
"ssl",
"SSL_read",
"EOF",
"close_notify",
"openssl-3.x",
"SSL_ERROR_ZERO_RETURN",
"SSL_ERROR_SSL",
"silent-failure",
"hang"
],
"related_bugs": [
"bug-646",
"bug-610"
],
"occurrences": 1,
"last_seen": "2026-06-17T17:30:00Z"
},
{
"id": "bug-651",
"timestamp": "2026-06-17T10:44:37.350Z",
"error_message": "Wrong return value",
"file": "src/lib/request.c",
"root_cause": "Was returning: 0;",
"fix": "Now returns: (enq_rc < 0) ? enq_rc : 0;",
"tags": [
"auto-detected",
"return-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T10:44:37.350Z"
},
{
"id": "bug-650",
"timestamp": "2026-06-17T18:30:00Z",
"error_message": "xce_test jobsub hangs in cbuf_get (xceapi.c:304) after failover even with bug-646/648 deployed. Log shows 'endpoint marked dead' (bug-646 firing) then a permanent hang; target primary (ctrl-2) is fully idle (no vtask in handle_jobsubmit) and the client fd is an unconnected TCP socket \u2014 the request was never transmitted yet the client waits for a reply forever.",
"file": "src/lib/request.c",
"root_cause": "xce_request() and the 5 other request.c senders (xce_reply, xce_replconfigpush_req_raw, xce_wal_batch_req_raw, xce_snapshot_chunk_req_raw, xce_replconfig_reply_raw) called endpoint_enq(ep,&pkt->link) and IGNORED its return, always `return 0`. So when the transport was dead, endpoint_enq() correctly returned <0 and ran handle_error() (bug-646 fix) \u2014 but xce_request() swallowed that <0 and reported success. xce_jobsubmit() (xceapi.c:299-304) then saw rc>=0 and fell through to the BLOCKING cbuf_get(); the request was never flushed (server idle) and when err_handler was NULL after a failed reconnect, handle_disconnect never injected -ECONNRESET, so nothing woke the waiter. The bug-646 netio fix was defeated one layer up: the request layer reported success on a failed send. This was the missing link making every prior netio fix insufficient for the live hang.",
"fix": "All six request.c senders propagate the enq result: `int enq_rc = endpoint_enq(ep,&pkt->link); return (enq_rc < 0) ? enq_rc : 0;`. A failed send now returns <0 through xce_jobsubmit_req -> xce_jobsubmit, which returns before cbuf_get; the failover loop classifies the transport error and rotates instead of blocking on a reply that never arrives. TDD: test_request_send_propagation.c builds an OPCode_nop request (encodes OK) on a dead endpoint (EPOLL_CTL_MOD ENOENT) and asserts xce_request returns <0 (verified red with old `return 0`, green with fix). libxce 169/0; controller_unit_test links clean.",
"tags": [
"libxce",
"request",
"xce_request",
"failover",
"silent-failure",
"hang",
"cbuf_get",
"endpoint_enq",
"send-propagation"
],
"related_bugs": [
"bug-646",
"bug-648"
],
"occurrences": 1,
"last_seen": "2026-06-17T18:30:00Z"
},
{
"id": "bug-653",
"timestamp": "2026-06-17T11:21:17.173Z",
"error_message": "Significant refactor of ",
"file": "src/lib/netio.c",
"root_cause": "8 lines replaced/restructured",
"fix": "Rewrote 14\u219219 lines (8 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T11:21:17.173Z"
},
{
"id": "bug-654",
"timestamp": "2026-06-17T11:21:51.571Z",
"error_message": "Wrong return value",
"file": "src/lib/testsuite/test_netio_arm_failure.c",
"root_cause": "Was returning: a negative error and (2) invoke the endpoint's err",
"fix": "Now returns: a negative, RETRIABLE error so the caller propagat",
"tags": [
"auto-detected",
"return-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T11:21:51.571Z"
},
{
"id": "bug-655",
"timestamp": "2026-06-17T11:22:11.296Z",
"error_message": "Significant refactor of ",
"file": "src/lib/testsuite/test_netio_arm_failure.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 11\u219213 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T11:22:11.296Z"
},
{
"id": "bug-656",
"timestamp": "2026-06-17T11:22:17.916Z",
"error_message": "Wrong reference: test_enq_arm_failure_is_loud_and_fires_errhandler should be test_enq_arm_failure_is_loud_no_errhandler",
"file": "src/lib/testsuite/test_netio_arm_failure.c",
"root_cause": "Used \"test_enq_arm_failure_is_loud_and_fires_errhandler\" instead of \"test_enq_arm_failure_is_loud_no_errhandler\"",
"fix": "Changed test_enq_arm_failure_is_loud_and_fires_errhandler \u2192 test_enq_arm_failure_is_loud_no_errhandler",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T11:22:17.916Z"
},
{
"id": "bug-652",
"timestamp": "2026-06-17T19:10:00Z",
"error_message": "Controller (primary) self-deadlocks on ha->lock after bug-646/650 deploy: jobsub now works, but the controller freezes. gdb shows Thread 3 in primary_heartbeat_fn holding ha->lock (owner=self) and re-acquiring it via xce_nop_req -> xce_request -> endpoint_enq -> handle_error -> vote_ep_err_handler (ha.c:3478); Thread 9 (io_worker) also blocked on the same ha->lock. Whole controller frozen.",
"file": "src/lib/netio.c",
"root_cause": "REGRESSION from bug-646: endpoint_enq() invoked handle_error() synchronously on the send path when the poll arm failed. handle_error() calls the endpoint's err_handler, which on a controller vote endpoint is vote_ep_err_handler() \u2014 it locks ha->lock. But endpoint_enq runs on the CALLER's thread, and the controller's primary_heartbeat_fn already holds ha->lock when it sends heartbeat NOPs. Non-recursive mutex -> self-deadlock. The err_handler is contractually an io_worker-thread callback (off an epoll error event, holding no caller locks); calling it from the synchronous send path violated that. With bug-650 now propagating the enq error up the return chain, the handle_error call in endpoint_enq was both redundant and harmful.",
"fix": "endpoint_enq() no longer calls handle_error(); on arm failure it just returns a RETRIABLE -ECONNRESET. The caller propagates it (request.c senders return it -> client failover classifies ECONNRESET as RETRY_NOW and rotates; controller heartbeat path simply gets the error, no lock re-entry). The real teardown stays on the io_worker thread (handle_input/handle_output -> io_handler -> handle_error), which holds no caller locks. Updated test_netio_arm_failure.c: endpoint_enq must return <0 AND must NOT invoke the err_handler (g_err_count==0). libxce 169/0; controller_unit_test links clean.",
"tags": [
"libxce",
"netio",
"endpoint_enq",
"deadlock",
"self-deadlock",
"ha-lock",
"reentrancy",
"regression",
"controller",
"vote_ep_err_handler"
],
"related_bugs": [
"bug-646",
"bug-650"
],
"occurrences": 1,
"last_seen": "2026-06-17T19:10:00Z"
},
{
"id": "bug-658",
"timestamp": "2026-06-17T14:46:54.135Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/ha.c",
"root_cause": "Condition was: if (role == CTRL_STANDBY && ha_heartbeat_is_fresh(ha)",
"fix": "Changed to: if (role == CTRL_STANDBY && ha->primary_ctrl_fd >= 0 &)",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T14:46:54.135Z"
},
{
"id": "bug-659",
"timestamp": "2026-06-17T14:47:25.446Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/cluster.c",
"root_cause": "Condition was: if (role == CTRL_STANDBY &&\n )",
"fix": "Changed to: if (role == CTRL_STANDBY &&\n )",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T14:47:25.446Z"
},
{
"id": "bug-660",
"timestamp": "2026-06-17T22:00:00Z",
"error_message": "Failover election takes minutes (11+ PreVote rounds) to converge. A standby keeps denying a legitimately-higher-term candidate's PreVote with reason=fresh_heartbeat for ~2.5 min AFTER its primary died (ctrl-3 killed 21:44:14, ctrl-2 logs 'PreVote DENIED ... reason=fresh_heartbeat (my_term=3)' until 21:46:58).",
"file": "src/controller/ha.c",
"root_cause": "The PreVote/vote eligibility gate raft_cb_vote_eligible (ha.c:311) denied on `role==CTRL_STANDBY && ha_heartbeat_is_fresh(ha)` \u2014 checking freshness ALONE. ha_heartbeat_is_fresh derives from ha->last_activity, but ha_arm_heartbeat_timeout_vtask resets last_activity=now on EVERY watchdog (re-)arm, and ha_prevote_rearm_liveness re-arms it after every lost PreVote. So a node with NO live primary perpetually refreshes its own 'fresh heartbeat' each failover cycle and denies all other candidates (reason=fresh_heartbeat), blocking convergence until it happens to restart. The sibling gate in handle_request_vote (ha.c:2205) already required `primary_ctrl_fd >= 0 && is_fresh`; raft_cb_vote_eligible was missing the primary_ctrl_fd guard. The existing fresh-deny tests even documented the intent ('the deny gate requires a live connection AND a fresh heartbeat', set primary_ctrl_fd=999), but production didn't enforce it.",
"fix": "Added `ha->primary_ctrl_fd >= 0 &&` to the ha.c:311 eligibility gate (mirrors ha.c:2205). primary_ctrl_fd is -1 on init / after the primary RDHUPs / after the liveness watchdog fires, and a real fd only via config_repl.c:1451 (first ctrlhello from the live primary) \u2014 so a dead/absent primary no longer masquerades as fresh and the standby GRANTS, converging in ~1 round. Kept cluster.c:526 denial-reason logging in sync. TDD: test_pre_vote_dead_primary_grants_despite_fresh_activity (fresh last_activity + primary_ctrl_fd=-1 -> GRANT); verified RED (Expected 1 Was 0) without the guard, GREEN with it, and the 3 existing fresh-deny tests (fd=999) unaffected. Full controller suite + libxce 169/0, zero regressions.",
"tags": [
"controller",
"ha",
"election",
"prevote",
"convergence",
"fresh_heartbeat",
"raft_cb_vote_eligible",
"primary_ctrl_fd",
"slow-election"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T22:00:00Z"
},
{
"id": "bug-661",
"timestamp": "2026-06-17T23:30:00Z",
"error_message": "3-node failover test lost committed jobs: 7 earliest JobIds (WAL LSN<=20), majority-ACKed and survived first failover, permanently gone after a restarted node with near-empty WAL won election. joblist dropped from 10 to 3.",
"file": "src/controller/persist.c, src/controller/commit.c, src/controller/repl.c",
"root_cause": "'committed' does not imply 'durable'. WAL fsync is asynchronous (persist.c:173 fsync_worker, timer wal_sync_ms); persist_append and the standby WalAck path do NOT fdatasync before ACK. commit_on_ack (commit.c:303) advances committed_lsn on majority ACK = OS page cache only, durable on zero disks. On kill+restart, killed nodes lose the not-yet-fsynced tail; persist_recover hits CRC break at zeroed region (prev_crc=00000000, offset 40) and truncates replay to ~0 entries, yet the hollow node stays eligible, wins election under degraded required=1 quorum (PreVote+freshness gate cannot fence it because the committed entries were durable on nobody), self-promotes advertising committed_lsn=21 over an empty job table, and the node holding the real data converges DOWN. Violates Leader-Completeness assumption (majority-ACK != durable-on-majority) in src/controller/CLAUDE.md.",
"fix": "NOT YET FIXED. Discovery -> new spec ha-commit-durability (Path C, brief written). R1 fsync-before-ACK (standby fdatasync before WalAck, primary self-count only after local fdatasync, committed_lsn advances only on durable majority, group-commit to bound latency). R2 promotion fence (WAL CRC/replay failure => ineligible to lead until caught up, FATAL not silent truncate; never lead below known committed high-water even under degraded quorum). Live E2E reproduces via xce_test jobsub + primary kills on /xce-deploy-ha. DETERMINISTIC REPRO (task 1.3, 2026-06-18): `bash src/tools/test-commit-durability.sh --deterministic` launches the cluster with --wal-sync-ms 30000 (plumbed via deploy-ha.sh start.sh `$*` passthrough, EXTRA_CTRL_ARGS) so the primary's fsync_worker never fires in-window -> every committed entry is page-cache-only on the primary (majority_candidate_locked counts cap=highest_appended_lsn=current_lsn-1, NOT durable). It then drives rolling PRIMARY kills (each right after committing to that primary) + restart, so hollow nodes re-lead. RED CONFIRMED: 6-round run lost the 3 EARLIEST committed JobIds permanently (rounds 4 and 6 + final check), Results 5 passed/3 failed, exit=1 \u2014 matching the incident signature (earliest jobs gone). NOTE: a single double-kill does NOT repro \u2014 this codebase enforces strict majority (lone survivor will NOT self-elect: log shows 'no single-voter primary within 40s'); loss needs the ROLLING/term-accumulating path the incident used. Evidence log: dur-det-run.log in worktree.",
"tags": [
"controller",
"ha",
"durability",
"fsync",
"wal",
"commit-engine",
"data-loss",
"failover",
"leader-completeness",
"promotion-fence",
"async-fsync",
"deterministic-repro",
"wal-sync-ms"
],
"related_bugs": [
"bug-339",
"bug-447",
"bug-396"
],
"occurrences": 2,
"last_seen": "2026-06-18T00:00:00Z"
},
{
"id": "bug-662",
"timestamp": "2026-06-17T23:34:32.115Z",
"error_message": "Function not marked async",
"file": "../../../../../claude/.claude/projects/-home-rshen-projects-xce-xce/memory/MEMORY.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T23:34:32.115Z"
},
{
"id": "bug-663",
"timestamp": "2026-06-17T23:59:39.221Z",
"error_message": "Significant refactor of ",
"file": "src/tools/test-commit-durability.sh",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 19\u219235 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"sh"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-17T23:59:39.221Z"
},
{
"id": "bug-664",
"timestamp": "2026-06-17T23:59:44.577Z",
"error_message": "Incorrect value in code",
"file": "src/tools/test-commit-durability.sh",
"root_cause": "Had \"${2:-6}\"",
"fix": "Changed to \"${2:-8}\"",
"tags": [
"auto-detected",
"wrong-value",
"sh"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-17T23:59:50.630Z"
},
{
"id": "bug-665",
"timestamp": "2026-06-18T00:04:40.582Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-commit-durability/brief.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T00:04:40.582Z"
},
{
"id": "bug-666",
"timestamp": "2026-06-18T02:32:07.670Z",
"error_message": "Function not marked async",
"file": ".kiro/specs/ha-commit-durability/brief.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T02:32:07.670Z"
},
{
"id": "bug-667",
"timestamp": "2026-06-18T02:35:08.157Z",
"error_message": "Function not marked async",
"file": ".kiro/steering/roadmap.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T02:35:08.157Z"
},
{
"id": "bug-668",
"timestamp": "2026-06-18T03:12:26.259Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-commit-durability/design.md",
"root_cause": "Had `persist.c:515`",
"fix": "Changed to `fsync_worker`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 5,
"last_seen": "2026-06-18T03:15:00.270Z"
},
{
"id": "bug-669",
"timestamp": "2026-06-18T03:13:32.314Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-commit-durability/design.md",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 6\u21926 lines (5 removed) | Also: - **Persistence & consistency:** `durable_lsn` adv; - **Concurrency strategy:** advanced under `p->loc",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T03:13:49.756Z"
},
{
"id": "bug-670",
"timestamp": "2026-06-18T03:14:30.410Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-commit-durability/design.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T03:14:30.410Z"
},
{
"id": "bug-671",
"timestamp": "2026-06-18T03:15:13.287Z",
"error_message": "Incorrect value in code",
"file": ".kiro/steering/roadmap.md",
"root_cause": "Had `fsync_worker`",
"fix": "Changed to `/kiro-validate-design`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T03:15:13.287Z"
},
{
"id": "bug-672",
"timestamp": "2026-06-18T03:35:27.530Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-commit-durability/tasks.md",
"root_cause": "7 lines replaced/restructured",
"fix": "Rewrote 18\u219225 lines (7 removed) | Also: - _Depends: 4.1, 3.3_; - Before a member becomes primary, refuse promotio",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T03:35:46.457Z"
},
{
"id": "bug-673",
"timestamp": "2026-06-18T03:50:26.761Z",
"error_message": "Function not marked async",
"file": "src/controller/CLAUDE.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T03:50:26.761Z"
},
{
"id": "bug-674",
"timestamp": "2026-06-18T03:50:55.752Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-commit-durability/tasks.md",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 5\u21926 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T03:50:55.752Z"
},
{
"id": "bug-675",
"timestamp": "2026-06-18T03:59:55.411Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-commit-durability/design.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T03:59:55.411Z"
},
{
"id": "bug-676",
"timestamp": "2026-06-18T04:00:06.872Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-commit-durability/design.md",
"root_cause": "Had `src/include/persist.h`",
"fix": "Changed to `persist_wal_sync_append`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T04:00:06.872Z"
},
{
"id": "bug-677",
"timestamp": "2026-06-18T04:39:24.460Z",
"error_message": "Wrong reference: myconf_t should be uint32_t",
"file": "src/include/myconf.h",
"root_cause": "Used \"myconf_t\" instead of \"uint32_t\"",
"fix": "Changed myconf_t \u2192 uint32_t",
"tags": [
"auto-detected",
"wrong-reference",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T04:39:24.460Z"
},
{
"id": "bug-678",
"timestamp": "2026-06-18T04:50:36.884Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'commit.c'",
"fix": "Changed to 'testsuite/test_commit_durability.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T04:50:36.884Z"
},
{
"id": "bug-679",
"timestamp": "2026-06-18T04:51:30.430Z",
"error_message": "Missing guard clause",
"file": "src/controller/persist.c",
"root_cause": "No early return/throw for edge case: !p",
"fix": "Added guard clause: if (!p)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T04:51:30.430Z"
},
{
"id": "bug-680",
"timestamp": "2026-06-18T05:00:22.007Z",
"error_message": "Missing error handling in unknown",
"file": "src/tools/test-commit-durability.sh",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"sh"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T05:00:22.007Z"
},
{
"id": "bug-681",
"timestamp": "2026-06-18T05:01:45.135Z",
"error_message": "Significant refactor of ",
"file": "src/tools/test-commit-durability.sh",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 85\u2192202 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"sh"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T05:01:45.135Z"
},
{
"id": "bug-682",
"timestamp": "2026-06-18T05:02:07.556Z",
"error_message": "Incorrect value in code",
"file": "src/tools/test-commit-durability.sh",
"root_cause": "Had \"$(mktemp /tmp/xce-durability-acked.XXXXXX)\"",
"fix": "Changed to \"$(mktemp \"",
"tags": [
"auto-detected",
"wrong-value",
"sh"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T05:02:07.556Z"
},
{
"id": "bug-683",
"timestamp": "2026-06-18T05:07:20.589Z",
"error_message": "Missing error handling in unknown",
"file": "src/tools/test-commit-durability.sh",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"sh"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T05:07:20.589Z"
},
{
"id": "bug-684",
"timestamp": "2026-06-18T05:28:05.352Z",
"error_message": "Function not marked async",
"file": "src/tools/test-commit-durability.sh",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"sh"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-06-18T05:29:29.811Z"
},
{
"id": "bug-685",
"timestamp": "2026-06-18T05:42:21.676Z",
"error_message": "Missing error handling in advances",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T05:42:21.676Z"
},
{
"id": "bug-686",
"timestamp": "2026-06-18T05:43:02.761Z",
"error_message": "Function not marked async",
"file": "src/controller/persist.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T05:45:15.732Z"
},
{
"id": "bug-687",
"timestamp": "2026-06-18T05:43:49.070Z",
"error_message": "Significant refactor of ",
"file": "src/controller/persist.c",
"root_cause": "7 lines replaced/restructured",
"fix": "Rewrote 41\u2192152 lines (7 removed) | Also: /* Wake any WAIT caller blocked on the commit eval; * advanced, so a majority candidate may now cover ",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T05:44:05.035Z"
},
{
"id": "bug-688",
"timestamp": "2026-06-18T05:54:46.908Z",
"error_message": "Function not marked async",
"file": "src/include/persist.h",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"h"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T05:54:55.010Z"
},
{
"id": "bug-689",
"timestamp": "2026-06-18T05:55:28.140Z",
"error_message": "Missing error handling in FAILS",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T05:55:28.140Z"
},
{
"id": "bug-690",
"timestamp": "2026-06-18T05:55:33.474Z",
"error_message": "Wrong reference: else should be RUN_TEST",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "Used \"else\" instead of \"RUN_TEST\"",
"fix": "Changed else \u2192 RUN_TEST",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T05:55:33.474Z"
},
{
"id": "bug-691",
"timestamp": "2026-06-18T05:59:05.965Z",
"error_message": "Significant refactor of ",
"file": "src/controller/persist.c",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 24\u219252 lines (5 removed) | Also: * already joined and will not advance it again). *; fdatasync(p->wal_fd);",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T06:00:18.921Z"
},
{
"id": "bug-692",
"timestamp": "2026-06-18T05:59:17.869Z",
"error_message": "Function not marked async",
"file": "src/controller/persist.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-06-18T06:00:42.436Z"
},
{
"id": "bug-693",
"timestamp": "2026-06-18T06:05:00.000Z",
"error_message": "durable_lsn advanced even when fdatasync FAILED (EIO/ENOSPC) at two of three sites (flusher_flush_once, persist_stop), letting a non-durable LSN count toward the commit majority",
"file": "src/controller/persist.c",
"root_cause": "ha-commit-durability task 2.1 flush sites called fdatasync(p->wal_fd) without capturing/checking the return code, then advanced durable_lsn unconditionally. On sync error the bytes are not on stable storage, violating Req 1.1/1.2 and the fail-loud preference.",
"fix": "Capture int rc = fdatasync(...) at every durable_lsn advance site (flusher_flush_once gating + fallback paths, persist_stop) and advance durable_lsn ONLY when rc == 0; on error leave durable_lsn unchanged and log loudly via ERROR(). persist_flush already gated on rc==0 (reference). Added XCE_TESTING fault-injection seam (test_force_fsync_fail + persist_test_set_force_fsync_fail + flusher_fsync_forced_fail helper, constant-false in production) and error-path test test_durable_lsn_holds_on_fsync_failure proving durable_lsn holds at baseline under injected failure and recovers when cleared.",
"tags": [
"ha-commit-durability",
"durability",
"fdatasync",
"fail-loud",
"remediation",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T06:05:00.000Z"
},
{
"id": "bug-694",
"timestamp": "2026-06-18T06:09:08.298Z",
"error_message": "Incorrect value in code",
"file": "../../../../../claude/.claude/projects/-home-rshen-projects-xce-xce/memory/project_ha_commit_durability.md",
"root_cause": "Had `/kiro-spec-init ha-commit-durability`",
"fix": "Changed to 't fence the stale node because the entries were d",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T06:09:08.298Z"
},
{
"id": "bug-695",
"timestamp": "2026-06-18T06:12:59.924Z",
"error_message": "Function not marked async",
"file": "src/include/persist.h",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T06:12:59.924Z"
},
{
"id": "bug-696",
"timestamp": "2026-06-18T06:13:32.891Z",
"error_message": "Function not marked async",
"file": "src/controller/persist.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T06:13:32.891Z"
},
{
"id": "bug-697",
"timestamp": "2026-06-18T06:13:40.659Z",
"error_message": "Missing guard clause",
"file": "src/controller/persist.c",
"root_cause": "No early return/throw for edge case: !p",
"fix": "Added guard clause: if (!p)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T06:13:40.659Z"
},
{
"id": "bug-698",
"timestamp": "2026-06-18T06:13:54.196Z",
"error_message": "Significant refactor of ",
"file": "src/controller/commit.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 12\u219224 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T06:13:54.196Z"
},
{
"id": "bug-699",
"timestamp": "2026-06-18T06:14:16.158Z",
"error_message": "Function not marked async",
"file": "src/controller/commit.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T06:14:16.158Z"
},
{
"id": "bug-700",
"timestamp": "2026-06-18T06:15:12.451Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_commit_engine.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T06:15:12.451Z"
},
{
"id": "bug-701",
"timestamp": "2026-06-18T06:15:45.248Z",
"error_message": "Incorrect value in code",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "Had \"config.h\"",
"fix": "Changed to \"commit.h\"",
"tags": [
"auto-detected",
"wrong-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T06:15:45.248Z"
},
{
"id": "bug-702",
"timestamp": "2026-06-18T06:16:09.746Z",
"error_message": "Missing error handling in XCE_TESTING",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T06:16:09.746Z"
},
{
"id": "bug-703",
"timestamp": "2026-06-18T06:16:49.048Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_commit_engine.c",
"root_cause": "40 lines replaced/restructured",
"fix": "Rewrote 49\u21926 lines (40 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T06:16:49.048Z"
},
{
"id": "bug-704",
"timestamp": "2026-06-18",
"error_message": "controller suite regressions after capping commit self-contribution at durable_lsn: test_repl_majority/test_commit_barrier_rollout/test_coldstart_lsn0/test_demotion_convergence got -ETIMEDOUT / committed_lsn=0 (Expected N Was 0)",
"file": "src/controller/testsuite/{test_repl_majority,test_commit_barrier_rollout,test_coldstart_lsn0,test_demotion_convergence}.c",
"root_cause": "ha-commit-durability 2.2 changed majority_candidate_locked self-cap from highest_appended_lsn to persist_durable_lsn. Existing commit-path fixtures prime current_lsn (appended tip) but never set durable_lsn, so under the new cap self contributed 0 and committed_lsn never advanced.",
"fix": "In every commit-path stub/in-memory-primed fixture, set durable_lsn to the appended tip (appended_lsn / current_lsn-1) right after committed_lsn=0, preserving the pre-durability 'self covers every appended entry' model. The durability precondition itself is exercised by dedicated new tests.",
"tags": [
"durable",
"commit",
"majority",
"self-cap",
"test-fixture",
"ha-commit-durability",
"task-2.2"
],
"related_bugs": [
"bug-661",
"bug-693"
],
"occurrences": 1,
"last_seen": "2026-06-18"
},
{
"id": "bug-705",
"timestamp": "2026-06-18T06:33:12.523Z",
"error_message": "Function not marked async",
"file": "src/include/persist.h",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"h"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T06:33:25.815Z"
},
{
"id": "bug-706",
"timestamp": "2026-06-18T06:33:50.093Z",
"error_message": "Significant refactor of ",
"file": "src/controller/persist.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 3\u219222 lines (2 removed) | Also: int fsrc = fdatasync(p->wal_fd);; if (fsrc != 0 || flusher_fsync_forced_fail(p)) {",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T06:36:02.935Z"
},
{
"id": "bug-707",
"timestamp": "2026-06-18T06:34:06.875Z",
"error_message": "Missing guard clause",
"file": "src/controller/persist.c",
"root_cause": "No early return/throw for edge case: p",
"fix": "Added guard clause: if (p)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T06:34:06.875Z"
},
{
"id": "bug-708",
"timestamp": "2026-06-18T06:34:36.356Z",
"error_message": "Function not marked async",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T06:34:36.356Z"
},
{
"id": "bug-709",
"timestamp": "2026-06-18T06:34:53.620Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 7\u219210 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T06:34:53.620Z"
},
{
"id": "bug-710",
"timestamp": "2026-06-18T06:50:13.989Z",
"error_message": "Missing error handling in XCE_TESTING",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T06:50:13.989Z"
},
{
"id": "bug-711",
"timestamp": "2026-06-18T06:50:49.987Z",
"error_message": "Missing guard clause",
"file": "src/controller/persist.c",
"root_cause": "No early return/throw for edge case: written_lsn > durable",
"fix": "Added guard clause: if (written_lsn > durable)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T06:50:49.987Z"
},
{
"id": "bug-712",
"timestamp": "2026-06-18T06:50:59.047Z",
"error_message": "Significant refactor of ",
"file": "src/controller/persist.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 8\u219210 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T06:50:59.047Z"
},
{
"id": "bug-713",
"timestamp": "2026-06-18T07:00:10.385Z",
"error_message": "Significant refactor of ",
"file": "src/controller/persist.c",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 9\u21926 lines (5 removed) | Also: /* RED-PHASE: invariant assert DISABLED to let the; * the over-advance instead of aborting the binary.",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T07:00:44.663Z"
},
{
"id": "bug-714",
"timestamp": "2026-06-18T07:00:36.008Z",
"error_message": "Missing guard clause",
"file": "src/controller/persist.c",
"root_cause": "No early return/throw for edge case: written_lsn > durable",
"fix": "Added guard clause: if (written_lsn > durable)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T07:00:36.008Z"
},
{
"id": "bug-715",
"timestamp": "2026-06-18T07:15:03.763Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T07:15:03.763Z"
},
{
"id": "bug-716",
"timestamp": "2026-06-18T07:15:30.633Z",
"error_message": "Missing error handling in unknown",
"file": "src/include/persist.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T07:15:30.633Z"
},
{
"id": "bug-717",
"timestamp": "2026-06-18T07:16:20.314Z",
"error_message": "Significant refactor of ",
"file": "src/controller/persist.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 10\u219223 lines (2 removed) | Also: break; /* clean end of segment */; break; /* truncated or pre-allocated zeros */",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T07:16:37.162Z"
},
{
"id": "bug-718",
"timestamp": "2026-06-18T07:19:17.397Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 12\u219214 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T07:19:17.397Z"
},
{
"id": "bug-719",
"timestamp": "2026-06-18T07:51:32.985Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-commit-durability/design.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T07:51:32.985Z"
},
{
"id": "bug-720",
"timestamp": "2026-06-18T07:52:20.595Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: /* task 3.2 \u2014 Boot Policy Decision Table skeletons (IGNORED,; * 3.3/4.3). Registered so each row is reported as IGNORED, n",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T07:52:29.952Z"
},
{
"id": "bug-721",
"timestamp": "2026-06-18T08:04:18.857Z",
"error_message": "Missing error handling in enum",
"file": "src/include/persist.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: /* Bounded catch-up window (ha-commit-durability task 3.3, R; * The FINITE deadline a recovery-truncated / behind member i",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T08:04:38.131Z"
},
{
"id": "bug-722",
"timestamp": "2026-06-18T08:05:05.233Z",
"error_message": "Missing error handling in of",
"file": "src/controller/persist.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T08:05:05.233Z"
},
{
"id": "bug-723",
"timestamp": "2026-06-18T08:06:25.738Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 7\u219251 lines (4 removed) | Also: TEST_IGNORE_MESSAGE(; \"row 4b (CLEAN + below + no peer + bounded catch-u",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T08:06:39.996Z"
},
{
"id": "bug-724",
"timestamp": "2026-06-18T08:07:00.123Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T08:07:00.123Z"
},
{
"id": "bug-725",
"timestamp": "2026-06-18T08:18:57.946Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T08:18:57.946Z"
},
{
"id": "bug-726",
"timestamp": "2026-06-18T08:19:47.036Z",
"error_message": "Function not marked async",
"file": "src/controller/persist.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T08:19:47.036Z"
},
{
"id": "bug-727",
"timestamp": "2026-06-18T08:32:37.878Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-commit-durability/design.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T08:32:37.878Z"
},
{
"id": "bug-728",
"timestamp": "2026-06-18T08:39:54.889Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-commit-durability/design.md",
"root_cause": "Had `durable_floor \u2264 applied_lsn`",
"fix": "Changed to `applied_lsn`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T08:39:54.889Z"
},
{
"id": "bug-729",
"timestamp": "2026-06-18T08:49:08.264Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 9\u219214 lines (3 removed) | Also: /* RED-DEMO (temporary): simulate the PRE-FIX bug ; * with a stale-high learned value so the candidate",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T08:52:37.412Z"
},
{
"id": "bug-730",
"timestamp": "2026-06-18T08:49:30.666Z",
"error_message": "Significant refactor of ",
"file": "src/controller/myapp.c",
"root_cause": "7 lines replaced/restructured",
"fix": "Rewrote 11\u219217 lines (7 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T08:49:30.666Z"
},
{
"id": "bug-731",
"timestamp": "2026-06-18T08:49:41.212Z",
"error_message": "Significant refactor of ",
"file": "src/controller/cluster.c",
"root_cause": "6 lines replaced/restructured",
"fix": "Rewrote 10\u219215 lines (6 removed) | Also: uint64_t local_lsn = (uint64_t)atomic_load_explici; &c->ha.applied_lsn, memory_order_acquire);",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T08:49:49.852Z"
},
{
"id": "bug-732",
"timestamp": "2026-06-18T08:51:34.635Z",
"error_message": "Missing guard clause",
"file": "src/controller/testsuite/test_ha_vote_gate.c",
"root_cause": "No early return/throw for edge case: !mkdtemp(tmp",
"fix": "Added guard clause: if (!mkdtemp(tmp)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T08:51:34.635Z"
},
{
"id": "bug-733",
"timestamp": "2026-06-18T08:52:12.840Z",
"error_message": "Wrong return value",
"file": "src/controller/ha.c",
"root_cause": "Was returning: persist_durable_floor(p);",
"fix": "Now returns: floor > 8ULL ? floor : 8ULL; /* BUG: pretends lear",
"tags": [
"auto-detected",
"return-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T08:52:12.840Z"
},
{
"id": "bug-734",
"timestamp": "2026-06-18T09:07:33.096Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T09:07:33.096Z"
},
{
"id": "bug-735",
"timestamp": "2026-06-18T09:08:09.215Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: /* \u2500\u2500 ha-commit-durability task 4.3: pre-promotion eligibili; * Refuse promotion BEFORE the node becomes authoritative CTR",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T09:08:55.973Z"
},
{
"id": "bug-736",
"timestamp": "2026-06-18T09:09:28.348Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: /* Empty first-boot WAL: durable=0, HWM=0 -> ELIGIBLE. A fr; * member is not behind anything and must be promotable (no f",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T09:10:32.435Z"
},
{
"id": "bug-737",
"timestamp": "2026-06-18T09:09:42.763Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 7\u219236 lines (4 removed) | Also: TEST_IGNORE_MESSAGE(; \"row 3 (TRUNCATED + peer + catch-up ok -> FENCE+CA | Also: TEST_IGNORE_MESSAGE(; \"row 5 (snapshot-sentinel CLEAN + below + peer -> ",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-06-18T09:10:12.609Z"
},
{
"id": "bug-738",
"timestamp": "2026-06-18T09:45:40.163Z",
"error_message": "Function not marked async",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T09:50:15.505Z"
},
{
"id": "bug-739",
"timestamp": "2026-06-18T09:46:18.019Z",
"error_message": "Function not marked async",
"file": "src/include/persist.h",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"h"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T09:46:36.395Z"
},
{
"id": "bug-740",
"timestamp": "2026-06-18T09:46:46.814Z",
"error_message": "Function not marked async",
"file": "src/controller/persist.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T09:47:04.913Z"
},
{
"id": "bug-741",
"timestamp": "2026-06-18T09:49:58.840Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: /* Test-injectable send hook (defined in repl.c under XCE_TE; * repl_broadcast from dereferencing the dummy endpoints as r",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T09:50:07.979Z"
},
{
"id": "bug-742",
"timestamp": "2026-06-18T10:22:00.509Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-commit-durability/tasks.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T10:22:00.509Z"
},
{
"id": "bug-743",
"timestamp": "2026-06-18T10:25:02.673Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: /* ha_cancel_promotion_fence_timer: cancel a pending bounded; * (idempotent; no-op when none is armed). Called when the m",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T10:27:05.112Z"
},
{
"id": "bug-744",
"timestamp": "2026-06-18T10:26:12.640Z",
"error_message": "Missing error handling in XCE_TESTING",
"file": "src/controller/ha.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T10:26:12.640Z"
},
{
"id": "bug-745",
"timestamp": "2026-06-18T10:26:34.227Z",
"error_message": "Wrong operator: != should be ==",
"file": "src/controller/ha.c",
"root_cause": "Used \"!=\" instead of \"==\"",
"fix": "Changed operator != \u2192 ==",
"tags": [
"auto-detected",
"operator-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T10:26:34.227Z"
},
{
"id": "bug-746",
"timestamp": "2026-06-18T10:30:18.073Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: /* task 4.4 \u2014 bounded-window catch-up before FATAL (no synch; * deferred-timer FATAL only after a real bounded failure; fe",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-18T10:30:51.746Z"
},
{
"id": "bug-747",
"timestamp": "2026-06-18T10:42:48.932Z",
"error_message": "Missing error handling in unknown",
"file": "src/include/persist.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T10:42:48.932Z"
},
{
"id": "bug-748",
"timestamp": "2026-06-18T10:43:04.187Z",
"error_message": "Significant refactor of ",
"file": "src/include/persist.h",
"root_cause": "10 lines replaced/restructured",
"fix": "Rewrote 17\u219227 lines (10 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T10:43:04.187Z"
},
{
"id": "bug-749",
"timestamp": "2026-06-18T10:44:38.816Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/persist.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T10:44:38.816Z"
},
{
"id": "bug-750",
"timestamp": "2026-06-18T10:45:30.263Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "11 lines replaced/restructured",
"fix": "Rewrote 15\u219222 lines (11 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T10:45:30.263Z"
},
{
"id": "bug-751",
"timestamp": "2026-06-18T10:47:24.587Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T10:47:24.587Z"
},
{
"id": "bug-752",
"timestamp": "2026-06-18T10:47:33.818Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.h",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 6\u21929 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T10:47:33.818Z"
},
{
"id": "bug-753",
"timestamp": "2026-06-18T10:48:41.920Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T10:48:41.920Z"
},
{
"id": "bug-754",
"timestamp": "2026-06-18T10:54:08.903Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-commit-durability/design.md",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 8\u21929 lines (2 removed) | Also: | Intent | Distinguish clean log end from corrupti; - FATAL policy: if a recovery-truncated member can | Also: > **Status:** DECISION recorded (task 3.2). No pro; **Decision (Req 2.2, 2.4):** A member that boots w",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-06-18T10:55:04.759Z"
},
{
"id": "bug-755",
"timestamp": "2026-06-18T10:55:31.898Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-commit-durability/design.md",
"root_cause": "Had \"bounded window\"",
"fix": "Changed to `DEFAULT_RECOVERY_CATCHUP_WINDOW_MS`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T10:55:31.898Z"
},
{
"id": "bug-756",
"timestamp": "2026-06-18T11:07:54.918Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/CLAUDE.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T11:07:54.918Z"
},
{
"id": "bug-757",
"timestamp": "2026-06-18T11:08:39.844Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/steering/ha-async-io.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T11:08:39.844Z"
},
{
"id": "bug-758",
"timestamp": "2026-06-18T11:14:25.437Z",
"error_message": "Missing error handling in gap",
"file": "src/controller/CLAUDE.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T11:14:25.437Z"
},
{
"id": "bug-759",
"timestamp": "2026-06-18T11:21:44.844Z",
"error_message": "Incorrect value in code",
"file": "../../../../../claude/.claude/projects/-home-rshen-projects-xce-xce/memory/project_ha_commit_durability.md",
"root_cause": "Had `--wal-sync-ms`",
"fix": "Changed to `:FAIL:`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T11:21:44.844Z"
},
{
"id": "bug-760",
"timestamp": "2026-06-18T13:00:00Z",
"error_message": "test_commit_barrier_rollout.c:446 test_fact_hook_append_is_retained_and_nonblocking FAIL: Expected 1 Was 0 \u2014 a covering ACK must advance committed_lsn over the retained fact (6/6 deterministic)",
"file": "src/controller/testsuite/test_commit_barrier_rollout.c",
"root_cause": "ha-commit-durability task 2.2 capped the primary commit self-contribution at durable_lsn (advanced asynchronously by the demand-driven group-commit flusher) and wired a durable-advance commit-wake callback. This adjacent-spec (ha-commit-barrier-rollout) test uses a REAL persist+flusher and checks committed_lsn SYNCHRONOUSLY the instant after repl_on_ack(fact_lsn); the flusher has not yet fdatasync'd LSN1, so durable_lsn==0, self-cap==0, majority candidate==0, committed_lsn stays 0. Pre-spec the test passed (self counted the appended tip immediately). Task 2.2 primed durable_lsn in the in-memory stub fixtures (barrier_setup_vcpus) but did NOT update this real-flusher test. The implementation-note claim that this is a pre-existing /tmp-overlay fdatasync-EIO artifact is FALSE in this env: fdatasync returns rc=0 on /tmp here, and the test passed pre-spec.",
"fix": "FIXED \u2014 test_commit_barrier_rollout.c:445: insert persist_flush(g_fp) + assert persist_durable_lsn>=fact_lsn BEFORE repl_on_ack, so the covering ACK (commit_on_ack runs synchronously inside repl_on_ack) deterministically completes the durable majority. Mirrors task 2.2's durable_lsn priming of the in-memory barrier_setup_vcpus stubs. Verified: was 6/6 deterministic FAIL, now fact_hook PASS across 4 runs + meson controller suite Ok:1 Fail:0, all groups 0 Failures. Production was never affected (RETAIN facts have no waiter; WAIT-mode replies block on commit barrier commit.c:334).",
"tags": [
"ha-commit-durability",
"commit-barrier-rollout",
"durable_lsn",
"group-commit",
"test-race",
"async-durability",
"validation",
"NO-GO"
],
"related_bugs": [
"bug-661",
"bug-704"
],
"occurrences": 6,
"last_seen": "2026-06-18T13:30:00Z"
},
{
"id": "bug-761",
"timestamp": "2026-06-18T13:13:49.968Z",
"error_message": "Function not marked async",
"file": "src/controller/testsuite/test_commit_barrier_rollout.c",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T13:13:49.968Z"
},
{
"id": "bug-762",
"timestamp": "2026-06-18T13:18:43.638Z",
"error_message": "Function not marked async",
"file": ".kiro/specs/ha-commit-durability/tasks.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T13:18:43.638Z"
},
{
"id": "bug-763",
"timestamp": "2026-06-18T14:54:25.478Z",
"error_message": "Function not marked async",
"file": ".kiro/steering/roadmap.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T14:54:25.478Z"
},
{
"id": "bug-764",
"timestamp": "2026-06-18T14:55:00.167Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/steering/error-handling.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T14:55:00.167Z"
},
{
"id": "bug-765",
"timestamp": "2026-06-18T14:30:00Z",
"error_message": "scheduler-controller-msg-gap marked 36/36 [x] but NOT truly implemented: schedUpdateJob notify path hits the bulk CREATE path (sched_update_existing_job is dead code) \u2192 corrupts/duplicates live job state, no -ENOENT; Req 3 broken at dequeue, Req 6 stores nothing (rusage never stored).",
"file": "src/scheduler/ (sched_update_existing_job dead; schedUpdateJob \u2192 CREATE path)",
"root_cause": "Tasks were checked [x] without the dequeue/update path and rusage storage actually being wired; gap surfaced only by cross-task re-audit (per-task review missed it).",
"fix": "FIXED 2026-06-18 (commits 5c1f715,93124c5,080ff78,276e26c): G-8/G-4 (route notify job-update to in-place sched_update_existing_job, all mutable fields, -ENOENT no-create); G-5 (store rusage on xce_sched_job_t via sched_apply_job_rusage + free_JobRusages_ptr); G-3 (free all 5 killer op payloads with generated deep-freers); G-7 (doc reconciliation \u2014 sched_op_name stays static in scheduler.c, lib must not depend on scheduler headers); G-6 (real white-box tests: test_handlers.c 6/6 for 9.2/9.3, test_job_update.c 10/10 for 9.4/9.5/9.7, registered as meson tests). Scheduler suite 31/31 GREEN, ASAN-clean, boundary-clean. validate-impl GO. RESIDUAL (documented, non-blocking): 9.6 dequeue worker-resvals APPLY unit test (dormant path R-3 \u2014 enqueue tested), 9.8 documented compile-time absence, 9.9 log-capture gated, 9.2 -ENOMEM fault-injection.",
"tags": [
"scheduler",
"controller",
"msg-gap",
"validate-gap",
"not-implemented",
"HIGH",
"job-state-corruption"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-18T17:00:00Z"
},
{
"id": "bug-766",
"timestamp": "2026-06-19T02:55:49.212Z",
"error_message": "Wrong return value",
"file": ".kiro/specs/scheduler-controller-msg-gap/tasks.md",
"root_cause": "Was returning: `-ENOENT` if job not found",
"fix": "Now returns: `-ENOENT` if job not found. _Remediation (bug-765,",
"tags": [
"auto-detected",
"return-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-19T02:55:49.212Z"
},
{
"id": "bug-767",
"timestamp": "2026-06-19T03:30:07.652Z",
"error_message": "Significant refactor of ",
"file": "src/scheduler/src/schedobj.c",
"root_cause": "7 lines replaced/restructured",
"fix": "Rewrote 18\u219212 lines (7 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-19T03:30:07.652Z"
},
{
"id": "bug-768",
"timestamp": "2026-06-19T03:30:28.056Z",
"error_message": "Wrong condition in logic",
"file": "src/scheduler/src/schedobj.c",
"root_cause": "Condition was: if (job->rusages != NULL && job->rusages != rusages)",
"fix": "Changed to: if (job->rusages != rusages)",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-19T03:30:28.056Z"
},
{
"id": "bug-769",
"timestamp": "2026-06-19T03:31:07.604Z",
"error_message": "Significant refactor of ",
"file": "src/scheduler/src/scheduler.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 18\u219233 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-19T03:31:07.604Z"
},
{
"id": "bug-770",
"timestamp": "2026-06-19T03:48:40.507Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/scheduler-controller-msg-gap/tasks.md",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 9\u219211 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-19T03:48:40.507Z"
},
{
"id": "bug-771",
"timestamp": "2026-06-19T03:49:03.016Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/scheduler-controller-msg-gap/design.md",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 3\u21925 lines (2 removed) | Also: #### New function: `xce_sched_op_name`; Signature: char* xce_sched_op_name(xce_sched_op_t ",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-19T03:49:12.246Z"
},
{
"id": "bug-772",
"timestamp": "2026-06-19T03:49:23.624Z",
"error_message": "Wrong reference: xce_sched_op_name should be sched_op_name",
"file": ".kiro/specs/scheduler-controller-msg-gap/design.md",
"root_cause": "Used \"xce_sched_op_name\" instead of \"sched_op_name\"",
"fix": "Changed xce_sched_op_name \u2192 sched_op_name",
"tags": [
"auto-detected",
"wrong-reference",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-19T03:49:23.624Z"
},
{
"id": "bug-773",
"timestamp": "2026-06-19T03:49:39.373Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/scheduler-controller-msg-gap/design.md",
"root_cause": "Had `xce_sched_op_name()`",
"fix": "Changed to `sched_op_name()`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-19T03:49:46.161Z"
},
{
"id": "bug-774",
"timestamp": "2026-06-19T03:50:12.460Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/scheduler-controller-msg-gap/tasks.md",
"root_cause": "Had `xce_sched_op_name()`",
"fix": "Changed to `sched_op_name()`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-19T03:50:20.916Z"
},
{
"id": "bug-775",
"timestamp": "2026-06-19T04:07:03.964Z",
"error_message": "Significant refactor of ",
"file": "src/scheduler/testsuite/test_handlers.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 5\u219211 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-19T04:07:03.964Z"
},
{
"id": "bug-776",
"timestamp": "2026-06-19T04:13:42.107Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/scheduler-controller-msg-gap/tasks.md",
"root_cause": "7 lines replaced/restructured",
"fix": "Rewrote 7\u21927 lines (7 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-19T04:13:42.107Z"
},
{
"id": "bug-777",
"timestamp": "2026-06-19T13:00:00Z",
"error_message": "3-node rolling-SIGKILL soak round 3: 'no new primary elected within 40s'; soak reports 'DATA LOSS 5/5 jobs vanished'. Both surviving nodes recovered RECOVER_TRUNCATED after SIGKILL (torn WAL tail) and stay permanently fenced/non-promotable even though durable_floor==cluster_hwm (they hold ALL committed data).",
"file": "src/controller/ha.c (raft_cb_become_leader promotion fence release) + persist.c (recovery_truncated verdict stickiness); design ha-commit-durability Req 2.2/2.6 + Boot Policy Decision Table",
"root_cause": "A SIGKILL tears the WAL tail; on restart replay_wal hits a CRC-break/short-read at the tail -> RECOVER_TRUNCATED (sticky flag). The promotion-fence release condition requires `!recovery_truncated`, but the truncated flag is NEVER cleared by catch-up \u2014 so a node whose intact durable prefix (durable_floor) already reaches/exceeds the cluster committed high-water (durable_floor>=hwm, i.e. holds ALL committed entries; the torn tail is entirely UNCOMMITTED) stays permanently non-promotable. The design assumed 'TRUNCATED => provably below HWM', which is FALSE for a torn TAIL above the committed prefix. When all survivors are in this state (after multiple rolling failovers), none can promote => election/availability WEDGE. Observed: ctrl-1 recovery_truncated=1 durable_floor=13 cluster_hwm=13, PreVote-DENY peers reason=catch_up, indefinitely.",
"fix": "DATA-LOSS dimension RESOLVED by the bug-778 fix (commit 64ab210): the cold-restart loss was the CRC-chain clobber; with the chain intact, cold restart recovers all committed jobs (soak 5/5, joblist 6/6 after cold restart). The AVAILABILITY-WEDGE dimension was a CONSEQUENCE of the spurious RECOVER_TRUNCATED from the broken chain \u2014 no longer triggered (nodes now recover CLEAN; round-3 re-elects normally). RESIDUAL HARDENING (latent, not currently triggered): the promotion fence keeps recovery_truncated sticky even when durable_floor>=HWM, so a GENUINE torn-tail that leaves a node RECOVER_TRUNCATED while holding all committed data could still over-fence. Optional follow-up: clear the truncated fence when durable_floor>=cluster_hwm (the torn tail is provably uncommitted). Not blocking \u2014 the systematic trigger is gone.",
"tags": [
"ha",
"convergence",
"promotion-fence",
"recovery-truncated",
"torn-tail",
"SIGKILL",
"availability",
"election-wedge",
"ha-commit-durability",
"ha-convergence-recovery",
"live-E2E",
"false-positive-data-loss"
],
"related_bugs": [
"bug-661",
"bug-339"
],
"occurrences": 2,
"last_seen": "2026-06-19T14:30:00Z"
},
{
"id": "bug-778",
"timestamp": "2026-06-19T13:40:00Z",
"error_message": "persist_recover RECOVER_TRUNCATED: 'CRC chain break ... prev_crc=00000000 expected=<crc>' at the first replicated job entry on cold restart; committed jobs unrecoverable (joblist=0). ROOT CAUSE of bug-777's cold-restart data loss.",
"file": "src/controller/persist.c:1336 (apply_wal_entry) + src/controller/ha.c ha_apply_single_entry (~1570-1588)",
"root_cause": "On the standby replicated-apply path, ha_apply_single_entry first calls persist_wal_write_replicated() which correctly sets p->last_crc to the standby's SELF-computed chain crc (the stream carries no crc; the on-disk CRC chain is node-local, prev_crc==last_crc). It THEN builds a synthetic wal_entry_hdr with hdr.crc=0 and calls apply_wal_entry(), whose line 1336 `p->last_crc = hdr->crc` OVERWRITES the correct chain link with 0. The next replicated write computes prev_crc=(seg_offset==0?WAL_CRC_NONE:last_crc)=0 and stamps prev_crc=0 on disk. So the on-disk CRC chain breaks at the 2nd replicated entry. Invisible while live (standby serves in-memory entities; never replays its own WAL), detonates on COLD RESTART where replay_wal validates the chain -> RECOVER_TRUNCATED -> recovers only the clean prefix -> committed jobs lost + the truncated verdict drives the promotion-fence availability wedge (the other half of bug-777). NOT an fd-position/offset race (pwrite+p->lock are correct); it is shared CRC-chain state (p->last_crc) written by two paths where the logical-apply step clobbers the physical-writer's link with 0.",
"fix": "FIXED 2026-06-19 (commit 64ab210). apply_wal_entry is now LOGICAL entity-restore only (signature (p,type,lsn,payload,payload_len); no header); it advances the current_lsn high-water but NEVER touches p->last_crc. The CRC chain has a single owner: persist_wal_write_replicated (live) + replay_wal/persist_recover (recovery). ha_apply_single_entry drops the fabricated crc=0 header. Verified: RED->GREEN test test_replicated_apply_chain_survives_cold_restart (real ha_apply_wal_catchup_entry path, cold-replay -> RECOVER_CLEAN); controller suite 0 failures; 3-node rolling-SIGKILL soak on real ext2/3 fs 5/5 (was wedge+loss at round 3); full cold restart recovers all 6 jobs (was 0), CLEAN verdicts, normal election. Test callers updated: test_repl_apply, test_ha_role_lifecycle, test_egress_filter.",
"tags": [
"ha",
"wal",
"crc-chain",
"last_crc",
"apply_wal_entry",
"persist_wal_write_replicated",
"cold-restart",
"data-loss",
"bug-661",
"standby-replication",
"recovery",
"root-caused"
],
"related_bugs": [
"bug-777",
"bug-661"
],
"occurrences": 2,
"last_seen": "2026-06-19T14:30:00Z"
},
{
"id": "bug-779",
"timestamp": "2026-06-19T13:59:32.538Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_commit_durability.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-19T13:59:32.538Z"
},
{
"id": "bug-780",
"timestamp": "2026-06-19T14:01:31.365Z",
"error_message": "Significant refactor of ",
"file": "src/include/persist.h",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 5\u219212 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-19T14:01:31.365Z"
},
{
"id": "bug-781",
"timestamp": "2026-06-19T14:02:49.235Z",
"error_message": "Wrong reference: hdr should be payload_len",
"file": "src/controller/persist.c",
"root_cause": "Used \"hdr\" instead of \"payload_len\"",
"fix": "Changed hdr \u2192 payload_len",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-19T14:02:49.235Z"
},
{
"id": "bug-782",
"timestamp": "2026-06-19T14:03:49.830Z",
"error_message": "Significant refactor of ",
"file": "src/controller/persist.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 3\u21925 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-19T14:03:49.830Z"
},
{
"id": "bug-783",
"timestamp": "2026-06-19T14:04:05.032Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "8 lines replaced/restructured",
"fix": "Rewrote 9\u21927 lines (8 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-19T14:04:05.032Z"
},
{
"id": "bug-784",
"timestamp": "2026-06-19T14:07:12.930Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_repl_apply.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 11\u219213 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-19T14:07:12.930Z"
},
{
"id": "bug-785",
"timestamp": "2026-06-19T14:08:12.866Z",
"error_message": "Wrong reference: NULL should be type",
"file": "src/controller/testsuite/test_ha_role_lifecycle.c",
"root_cause": "Used \"NULL\" instead of \"type\"",
"fix": "Changed NULL \u2192 type",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-19T14:09:08.241Z"
},
{
"id": "bug-786",
"timestamp": "2026-06-19T15:00:00Z",
"error_message": "xce_test jobsub prints 'jobsubmit ok: JobId: 63-15--1-1015808' (uninitialized/garbage jobid) on repeated/mid-failover submits; controller then logs 'handle_jobsubmit fail to lock job 63-15--1-...'. Client claims success with a malformed id it never got a clean ack for.",
"file": "src/controller/testsuite/test.c (cmd_jobsub)",
"root_cause": "On the 2nd+ submit (and during failover windows) the jobsub reply/jobid is not cleanly populated, leaving an uninitialized jobid struct; cmd_jobsub still prints 'jobsubmit ok' with the garbage id instead of verifying the controller reply status and failing. Forces E2E scripts (test-commit-durability.sh) to strict-regex-filter the 4-field id to avoid chasing phantom jobs.",
"fix": "PENDING \u2014 jobsub must report success ONLY on a clean ack with a valid jobid; otherwise print a typed error (REDIRECT/NOMASTER/NOT_READY/TIMEOUT) and set non-zero status. Part of the xce-test-e2e-primitives work (exit-code-as-verdict + $jobid auto-var). | STRENGTHENED 2026-06-19 (commit 8609976): `jobid != 0` gate was insufficient \u2014 a stale non-zero reply id (63-15--1-1015808) from a non-jobid reply during failover slipped through. New gate requires the echoed jobid == the locally idgen-generated jobsubmit.jobid (controller commits/echoes exactly that id, job.c:616). Surfaced by the live durability soak (task 7.2).",
"tags": [
"xce_test",
"jobsub",
"garbage-jobid",
"e2e",
"client",
"test-tooling",
"xce-test-e2e-primitives",
"stale-reply-union",
"live-soak"
],
"related_bugs": [],
"occurrences": 4,
"last_seen": "2026-06-19"
},
{
"id": "bug-787",
"timestamp": "2026-06-19T15:26:46.318Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test.c",
"root_cause": "13 lines replaced/restructured",
"fix": "Rewrote 27\u219211 lines (13 removed) | Also: *; * XCE_TEST_VERDICT_FLAG gates the new exit-code/ab",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-19T15:26:54.160Z"
},
{
"id": "bug-788",
"timestamp": "2026-06-19T15:34:41.623Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/testsuite/test.c",
"root_cause": "Condition was: if (active_ctx->parent != NULL)",
"fix": "Changed to: if (i > 1)",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-19T15:34:41.623Z"
},
{
"id": "bug-789",
"timestamp": "2026-06-19T15:41:13.871Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test.c",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 9\u21923 lines (5 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-19T15:41:13.871Z"
},
{
"id": "bug-790",
"timestamp": "2026-06-19T15:58:57.460Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test.c",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 7\u21923 lines (5 removed) | Also: #if JOBSUB_RED_FORCE_SUCCESS; /* RED only: simulate a non-clean ack that surface",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-19T15:59:25.070Z"
},
{
"id": "bug-791",
"timestamp": "2026-06-19T16:07:20.038Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 38\u219285 lines (2 removed) | Also: * g_last_jobcount most recent job count; -1 means ; * cmd_joblist (task 5.1).",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-19T16:07:27.736Z"
},
{
"id": "bug-792",
"timestamp": "2026-06-19T16:13:02.715Z",
"error_message": "Incorrect value in code",
"file": "src/controller/testsuite/test.c",
"root_cause": "Had \"shutdown\"",
"fix": "Changed to \"expect-jobs\"",
"tags": [
"auto-detected",
"wrong-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-19T16:13:02.715Z"
},
{
"id": "bug-793",
"timestamp": "2026-06-19T16:32:47.571Z",
"error_message": "Significant refactor of ",
"file": "src/tools/test-commit-durability.sh",
"root_cause": "31 lines replaced/restructured",
"fix": "Rewrote 63\u2192115 lines (31 removed) | Also: if ! wait_for_primary 40; then; fail \"cluster did not elect an initial primary wit | Also: # Wait until some live node is CTRL_PRIMARY and th; wait_for_primary() { | Also: script=$(printf 'set masters %s\\nclient\\n' \"$MASTE; script+=$(printf 'expect-job %s\\n' \"$jid\") | Also: # format-agnostically, instead of re-imposing a br; # submit did not cleanly ack, jobsub fails -> sess",
"tags": [
"auto-detected",
"refactor",
"sh"
],
"related_bugs": [],
"occurrences": 6,
"last_seen": "2026-06-19T16:37:04.187Z"
},
{
"id": "bug-794",
"timestamp": "2026-06-19T16:50:45.275Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test.c",
"root_cause": "7 lines replaced/restructured",
"fix": "Rewrote 8\u219220 lines (7 removed) | Also: if (jobid == 0) {; /* Non-negative rc but no JobId was written: not a",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-19T16:50:54.261Z"
},
{
"id": "bug-795",
"timestamp": "2026-06-19",
"error_message": "Cold-restart-all (kill ALL 3 controllers + restart) non-deterministically loses a committed job: a job that returned 'jobsubmit ok' and survived every rolling single-node failover round vanishes after a full-cluster restart (expect-jobs expected N, actual N-2; expect-job <id> not found). Recovery logs show WAL truncate.",
"file": "src/controller/{persist.c recovery/truncate, commit.c commit-gate, ha.c promotion-fence/election} \u2014 UPSTREAM ha-commit-durability Phase 6.2",
"root_cause": "Commit-durability race under TOTAL-cluster-outage recovery. Acked (committed) entry not durable on a fault-tolerant majority before all nodes die, OR recovery truncates committed entries on cold restart. Non-deterministic (passed 1 run, failed next). Surfaced on overlayfs sandbox (NOT a real fsync-able fs) \u2014 must be reconfirmed on real hardware. UPDATE: with the hardened (trustworthy) soak, the loss ALSO reproduces in ROLLING single-node failover with the cluster confirmed serving (~1/3 runs) \u2014 broader than cold-restart-all; bug-661 not fully closed for rolling failover. Separate finding: >60s post-kill election (liveness) every run, always recovers. CORRECTION: NOT an overlay-fdatasync artifact \u2014 reproduces OUTSIDE the container (user's real host) AND on an in-sandbox real ext2/3 fs with ZERO fdatasync EIO. Real controller durability bug + a coupled liveness stall (>60s / stuck election after killing ctrl-1). Phase 6.1 answered (REAL); now at 6.2 root-cause.",
"fix": "NOT FIXED HERE \u2014 out of boundary for xce-test-e2e-primitives (this spec changes no controller/replication code). Routed to spec ha-commit-durability owner. The converted durability soak (src/tools/test-commit-durability.sh, new run_cold_restart_recovery phase) correctly detects it via the exit-code verdict.",
"tags": [
"ha-commit-durability",
"commit-durability",
"cold-restart",
"total-outage",
"wal-truncate",
"upstream",
"xce-test-e2e-primitives",
"needs-real-fs",
"rolling-failover",
"liveness",
"non-deterministic"
],
"related_bugs": [
"bug-661",
"bug-778",
"bug-786"
],
"occurrences": 3,
"last_seen": "2026-06-19"
},
{
"id": "bug-796",
"timestamp": "2026-06-20T00:32:43.144Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-commit-durability/spec.json",
"root_cause": "Had \"2026-06-18T04:00:00Z\"",
"fix": "Changed to \"2026-06-19T00:00:00Z\"",
"tags": [
"auto-detected",
"wrong-value",
"json"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T00:32:43.144Z"
},
{
"id": "bug-797",
"timestamp": "2026-06-20T00:42:36.967Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/xce-test-e2e-primitives/spec.json",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 3\u21928 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"json"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T00:42:36.967Z"
},
{
"id": "bug-798",
"timestamp": "2026-06-20T01:05:04.547Z",
"error_message": "Missing error handling in unknown",
"file": "src/tools/test-commit-durability.sh",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"sh"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T01:05:04.547Z"
},
{
"id": "bug-799",
"timestamp": "2026-06-20T01:05:25.091Z",
"error_message": "Incorrect value in code",
"file": "src/tools/test-commit-durability.sh",
"root_cause": "Had \"$label: DATA LOSS \u2014 a committed job vanished (bug",
"fix": "Changed to \"$label: DATA LOSS \u2014 a committed job vanished from",
"tags": [
"auto-detected",
"wrong-value",
"sh"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T01:05:25.091Z"
},
{
"id": "bug-800",
"timestamp": "2026-06-20T01:05:51.010Z",
"error_message": "Significant refactor of ",
"file": "src/tools/test-commit-durability.sh",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 8\u219212 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"sh"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T01:05:51.010Z"
},
{
"id": "bug-801",
"timestamp": "2026-06-20T01:14:42.334Z",
"error_message": "Significant refactor of ",
"file": "src/tools/test-commit-durability.sh",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 8\u219210 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"sh"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T01:14:42.334Z"
},
{
"id": "bug-802",
"timestamp": "2026-06-20T01:21:21.789Z",
"error_message": "Missing error handling in unknown",
"file": "src/tools/test-commit-durability.sh",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"sh"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T01:21:21.789Z"
},
{
"id": "bug-803",
"timestamp": "2026-06-20T01:27:31.000Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/xce-test-e2e-primitives/tasks.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T01:27:31.000Z"
},
{
"id": "bug-804",
"timestamp": "2026-06-20T03:29:22.678Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/controller-lsid/requirements.md",
"root_cause": "Had \"none\"",
"fix": "Changed to \"unknown\"",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-06-20T03:33:32.399Z"
},
{
"id": "bug-805",
"timestamp": "2026-06-20T03:29:29.570Z",
"error_message": "Wrong return value",
"file": ".kiro/specs/controller-lsid/requirements.md",
"root_cause": "Was returning: a well-defined \"unknown\" or \"none\" value for that ",
"fix": "Now returns: a well-defined \"unknown\" value for that field rath",
"tags": [
"auto-detected",
"return-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T03:29:29.570Z"
},
{
"id": "bug-806",
"timestamp": "2026-06-20T03:32:19.414Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/controller-lsid/requirements.md",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 6\u21928 lines (3 removed) | Also: ### Requirement 5: Committed configuration version; **Objective:** As an operator, I want the configur",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-20T03:32:34.774Z"
},
{
"id": "bug-807",
"timestamp": "2026-06-20T04:08:01.204Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/controller-status/design.md",
"root_cause": "12 lines replaced/restructured",
"fix": "Rewrote 16\u219213 lines (12 removed) | Also: clusterName @0: Text;; primaryName @1: Text; # empty \u21d2 \"unknown\" | Also: /* failover-aware read (is_write=false) */; - Postconditions: on success `*status` owns a deco | Also: - `configChecksum`/`configVersion` equal across tw; - `ctrlstatus` against a healthy 3-node cluster pr | Also: - Answerable on **any** node and across failover \u2014; - Report a content checksum of the committed confi",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 5,
"last_seen": "2026-06-20T04:11:28.379Z"
},
{
"id": "bug-808",
"timestamp": "2026-06-20T04:08:49.684Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/controller-status/design.md",
"root_cause": "Had `committed_config_tag`",
"fix": "Changed to `committedConfigVersion`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 5,
"last_seen": "2026-06-20T04:10:27.793Z"
},
{
"id": "bug-809",
"timestamp": "2026-06-20T04:40:36.648Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'commit.c'",
"fix": "Changed to 'ctrlstatus.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T04:40:36.648Z"
},
{
"id": "bug-810",
"timestamp": "2026-06-20T04:45:48.985Z",
"error_message": "Wrong reference: Data should be Text",
"file": "src/schema/controller.capnp",
"root_cause": "Used \"Data\" instead of \"Text\"",
"fix": "Changed Data \u2192 Text",
"tags": [
"auto-detected",
"wrong-reference",
"capnp"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T04:45:48.985Z"
},
{
"id": "bug-811",
"timestamp": "2026-06-20T04:45:49.790Z",
"error_message": "Wrong reference: xce_data_t should be char",
"file": "src/include/typemap.h",
"root_cause": "Used \"xce_data_t\" instead of \"char\"",
"fix": "Changed xce_data_t \u2192 char",
"tags": [
"auto-detected",
"wrong-reference",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T04:45:49.790Z"
},
{
"id": "bug-812",
"timestamp": "2026-06-20T05:08:41.030Z",
"error_message": "Incorrect value in code",
"file": "src/lib/meson.build",
"root_cause": "Had 'raft/raft_sim.c'",
"fix": "Changed to 'testsuite/test_ctrlstatus.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T05:08:41.030Z"
},
{
"id": "bug-813",
"timestamp": "2026-06-20T05:42:31.707Z",
"error_message": "Wrong operator: >= should be ==",
"file": "src/controller/testsuite/test.c",
"root_cause": "Used \">=\" instead of \"==\"",
"fix": "Changed operator >= \u2192 ==",
"tags": [
"auto-detected",
"operator-fix",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-20T05:42:46.894Z"
},
{
"id": "bug-814",
"timestamp": "2026-06-20T05:51:48.030Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ctrlstatus.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 23\u219273 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T05:51:48.030Z"
},
{
"id": "bug-815",
"timestamp": "2026-06-20T05:52:48.719Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ctrlstatus.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 3\u219213 lines (3 removed) | Also: /* primary identity \u2014 guarded by ha->lock (Req 2.2; st->primaryName = (ha->primary_host[0] != '\\0') ? ",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-20T05:53:00.264Z"
},
{
"id": "bug-816",
"timestamp": "2026-06-20T05:57:46.206Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ctrlstatus.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 13\u219216 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T05:57:46.206Z"
},
{
"id": "bug-817",
"timestamp": "2026-06-19",
"error_message": "client op (joblist, ctrlstatus, wait-primary) returns EINVAL / 'Invalid argument' and fails to reach the live primary when a DEAD controller is FIRST in the masters list; with a live-only masters list the same op succeeds in ~46ms.",
"file": "src/lib/client_failover.c / client.c failover-rotation (libxce) \u2014 UPSTREAM, not controller-status",
"root_cause": "libxce client failover does not cleanly advance past a dead FIRST master to the live nodes; surfaces a typed EINVAL instead of rotating. Pre-existing (controller-status consumes failover unchanged). Surfaced by controller-status task 5.1 E2E (authoritative wait-primary timed out after a primary kill while a dead node led the masters list, even though a new primary was serving).",
"fix": "NOT fixed in controller-status (out of boundary). Route to libxce-failover. Confirmed affects plain joblist identically. Workaround: ensure the masters list does not lead with a known-dead node, or restart killed nodes (as the durability soak does).",
"tags": [
"libxce",
"failover",
"master-rotation",
"dead-first-master",
"EINVAL",
"controller-status",
"upstream"
],
"related_bugs": [
"bug-646"
],
"occurrences": 1,
"last_seen": "2026-06-19"
},
{
"id": "bug-818",
"timestamp": "2026-06-20T06:11:49.084Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/testsuite/test.c",
"root_cause": "Condition was: if (!g_continue_on_error)",
"fix": "Changed to: if (!g_continue_on_error && !g_interactive)",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-20T06:14:41.073Z"
},
{
"id": "bug-819",
"timestamp": "2026-06-20T06:14:51.644Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 4\u21928 lines (4 removed) | Also: /* Session verdict toggle (xce-test-e2e-primitives; * `set continue-on-error` keeps the read loop runn",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-20T06:15:17.616Z"
},
{
"id": "bug-820",
"timestamp": "2026-06-20T06:16:34.685Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/xce-test-e2e-primitives/tasks.md",
"root_cause": "Had `g_interactive = isatty(STDIN_FILENO)`",
"fix": "Changed to `-e`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T06:16:34.685Z"
},
{
"id": "bug-821",
"timestamp": "2026-06-20T08:14:43.577Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/controller-status/requirements.md",
"root_cause": "Had 's identity and role, the configured controller to",
"fix": "Changed to 's identity and role, the configured controller to",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T08:14:43.577Z"
},
{
"id": "bug-822",
"timestamp": "2026-06-20T08:15:28.319Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/controller-status/spec.json",
"root_cause": "6 lines replaced/restructured",
"fix": "Rewrote 24\u219230 lines (6 removed)",
"tags": [
"auto-detected",
"refactor",
"json"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T08:15:28.319Z"
},
{
"id": "bug-823",
"timestamp": "2026-06-20T09:03:03.345Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ctrlstatus.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 4\u219212 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T09:03:03.345Z"
},
{
"id": "bug-824",
"timestamp": "2026-06-20T09:30:23.040Z",
"error_message": "Function not marked async",
"file": ".kiro/specs/controller-status/tasks.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T09:30:23.040Z"
},
{
"id": "bug-825",
"timestamp": "2026-06-20T09:31:24.076Z",
"error_message": "Function not marked async",
"file": ".kiro/specs/controller-status/spec.json",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"json"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T09:31:24.076Z"
},
{
"id": "bug-826",
"timestamp": "2026-06-20T10:10:14.423Z",
"error_message": "Significant refactor of ",
"file": "src/lib/utils.c",
"root_cause": "13 lines replaced/restructured",
"fix": "Rewrote 26\u219250 lines (13 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T10:10:14.423Z"
},
{
"id": "bug-827",
"timestamp": "2026-06-20T18:30:00.000Z",
"error_message": "AddressSanitizer: global-buffer-overflow READ in xce_strerror_r (lib/utils.c:335), triggered from cmd_ctrlstatus (test.c:1273) when ctrlstatus failover exhausts and returns E_XCE_NOT_READY (-10013) on a primary-less cluster",
"file": "src/lib/utils.c",
"root_cause": "Enum/table drift: errnox.h E_XCE_* enum gained NOMASTER(10011)/REDIRECT(10012)/NOT_READY(10013)/STANDBY(10014), bumping E_XCE_MAX to 10015, but xce_err_str[] still had only 10 strings + a NULL (11 slots, 88 bytes). xce_strerror_r's only upper guard was errnum>=E_XCE_MAX, so 10011-10014 passed the gate and indexed past the table: NOMASTER->xce_err_str[10]==NULL (strncpy NULL deref); NOT_READY->xce_err_str[12] = 8 bytes past the 88-byte array (the ASAN OOB). Pre-existing libxce foundation bug; controller-status ctrlstatus was the first caller to format these HA codes on a failing cluster.",
"fix": "Filled xce_err_str[] with strings for all 14 codes (enum order); hardened xce_strerror_r to bound against the ACTUAL array size (idx>=nstr) + reject NULL slots (degrade to 'unknown error', never OOB) + null-terminate; added a _Static_assert tying sizeof(xce_err_str) to (E_XCE_MAX-XCE_ERRNO_BASE) so future enum additions without a string fail the build. RED: new test_strerror_all_xce_codes SEGV'd at utils.c:335 under ASAN; GREEN: lib suite Ok:1 Fail:0. Commit 1aa0761.",
"tags": [
"global-buffer-overflow",
"asan",
"xce_strerror_r",
"errnox",
"enum-table-drift",
"libxce",
"controller-status",
"ctrlstatus",
"E_XCE_NOT_READY"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T18:30:00.000Z"
},
{
"id": "bug-828",
"timestamp": "2026-06-20T10:19:56.678Z",
"error_message": "Function not marked async",
"file": ".kiro/specs/ha-convergence-recovery/research.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T10:19:56.678Z"
},
{
"id": "bug-829",
"timestamp": "2026-06-20T11:44:25.496Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'ctrlstatus.c'",
"fix": "Changed to 'testsuite/test_ha_heartbeat_committed.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T11:44:25.496Z"
},
{
"id": "bug-830",
"timestamp": "2026-06-20T11:45:26.943Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: !c",
"fix": "Added guard clause: if (!c)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T11:45:26.943Z"
},
{
"id": "bug-831",
"timestamp": "2026-06-20T11:54:30.060Z",
"error_message": "Incorrect value in code",
"file": "src/controller/testsuite/test_ha_heartbeat_committed.c",
"root_cause": "Had \"xce/cluster_def.h\"",
"fix": "Changed to \"typemap.h\"",
"tags": [
"auto-detected",
"wrong-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T11:54:30.060Z"
},
{
"id": "bug-832",
"timestamp": "2026-06-20T11:56:28.240Z",
"error_message": "Missing guard clause",
"file": "src/controller/ha.c",
"root_cause": "No early return/throw for edge case: !c || !hb",
"fix": "Added guard clause: if (!c || !hb)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T11:56:28.240Z"
},
{
"id": "bug-833",
"timestamp": "2026-06-20T12:09:25.213Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 12\u219226 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T12:09:25.213Z"
},
{
"id": "bug-834",
"timestamp": "2026-06-20T12:22:39.011Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-heartbeat-committed-propagation/tasks.md",
"root_cause": "Had `heartbeatmsg`",
"fix": "Changed to `xce-build.sh controller`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T12:22:39.011Z"
},
{
"id": "bug-835",
"timestamp": "2026-06-20T12:26:15.999Z",
"error_message": "Incorrect value in code",
"file": "src/controller/meson.build",
"root_cause": "Had 'ctrlstatus.c'",
"fix": "Changed to 'testsuite/test_ha_vote_floor_heartbeat.c'",
"tags": [
"auto-detected",
"wrong-value",
"build"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T12:26:15.999Z"
},
{
"id": "bug-836",
"timestamp": "2026-06-20T12:31:51.359Z",
"error_message": "Function not marked async",
"file": ".kiro/specs/ha-heartbeat-committed-propagation/tasks.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T12:31:51.359Z"
},
{
"id": "bug-837",
"timestamp": "2026-06-20T12:32:25.549Z",
"error_message": "Function not marked async",
"file": ".kiro/specs/ha-heartbeat-committed-propagation/spec.json",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"json"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T12:32:25.549Z"
},
{
"id": "bug-828",
"timestamp": "2026-06-20T21:30:00.000Z",
"error_message": "Controller failover test loses committed jobs: ACKed jobs (jobsubmit ok, visible in joblist) disappear after kill/restart cycles. Predates libxce-failover (long-standing, unfixed).",
"file": "src/controller/persist.c / config_repl.c (CtrlHello catch-up)",
"root_cause": "REAL data loss (not commit-index). Decoded WAL bytes at /tmp/xce-ha-deploy: committed prefix entries (LSN 2-12, the lost job submits) are PHYSICALLY ABSENT from the live nodes' segments (ctrl-2 WAL starts at LSN 16, ctrl-3 at 13) and exist only on the down node (ctrl-1, LSN 1-15). snap/ dirs empty. Mechanism: a node (re)joining with an empty WAL is brought up to the cluster's CURRENT committed watermark via WAL streaming [watermark..committed], NOT from LSN 1, and no snapshot backfills [1..watermark-1] -> permanent prefix gap. When the only full-log node is down while others rejoined high, committed jobs are gone. replay_wal (persist.c:1422) is correct (read-only recovery); the gap is in catch-up start-point + missing entity-bearing snapshots.",
"fix": "NOT YET FIXED. Full findings: .kiro/specs/ha-commit-durability/INVESTIGATION-failover-job-loss.md. Open forks: (1) test clean-vs-preserve data on restart; (2) CtrlHello advertise real applied_lsn vs learned committed (config_repl.c handle_ctrlhello); (3) is snapshot creation implemented or a stub (XCESNAP header carries only an lsn, no entities). Likely architectural: catch-up assumes a snapshot safety net that does not exist. Secondary: WAL hdr.term always 0 (p->term never set) -> no term-based divergence detection.",
"tags": [
"data-loss",
"failover",
"committed-job-loss",
"wal",
"catch-up",
"snapshot",
"ha-commit-durability",
"bug-795",
"architecture",
"NOT-FIXED"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T21:30:00.000Z"
},
{
"id": "bug-839",
"timestamp": "2026-06-20T13:51:29.352Z",
"error_message": "Missing error handling in unknown",
"file": "../../../../../claude/.claude/projects/-home-rshen-projects-xce-xce/memory/MEMORY.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T13:51:29.352Z"
},
{
"id": "bug-840",
"timestamp": "2026-06-20T14:05:49.912Z",
"error_message": "Incorrect value in code",
"file": "src/controller/testsuite/test.c",
"root_cause": "Had \"xce/cluster.h\"",
"fix": "Changed to \"waldump.h\"",
"tags": [
"auto-detected",
"wrong-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T14:05:49.912Z"
},
{
"id": "bug-841",
"timestamp": "2026-06-20T14:06:11.393Z",
"error_message": "Wrong condition in logic",
"file": "src/controller/testsuite/test.c",
"root_cause": "Condition was: if (active_ctx->parent != NULL)",
"fix": "Changed to: if (argc < 2)",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T14:06:11.393Z"
},
{
"id": "bug-842",
"timestamp": "2026-06-20T14:09:03.676Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-commit-durability/INVESTIGATION-failover-job-loss.md",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 6\u21925 lines (5 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T14:09:03.676Z"
},
{
"id": "bug-843",
"timestamp": "2026-06-20T14:15:35.599Z",
"error_message": "Incorrect value in code",
"file": ".kiro/steering/roadmap.md",
"root_cause": "Had `!<command>`",
"fix": "Changed to `xce_test`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T14:15:35.599Z"
},
{
"id": "bug-844",
"timestamp": "2026-06-20T14:20:00.730Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-commit-durability/INVESTIGATION-failover-job-loss.md",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 6\u219216 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T14:20:00.730Z"
},
{
"id": "bug-845",
"timestamp": "2026-06-20T14:30:00.000Z",
"error_message": "Every committed job appears as TWO consecutive WAL_JOB_SUBMIT entries with the SAME jobid (e.g. ctrl-1 LSN 2,3 = jobid 1868520205844480). Surfaced by waldump on /tmp/xce-ha-deploy.",
"file": "src/controller/job.c (handle_jobsubmit / persist_job_hook_fun path)",
"root_cause": "NOT array expansion \u2014 job_submit() assigns array members DISTINCT ids (base_id+i, job.c) and the Job capnp schema has a single jobid field, so identical-jobid pairs cannot be two array tasks. A single client submit is producing two WAL_JOB_SUBMIT appends of the same job. EXACTLY 2 entries per job (never 1 or 3), always at ADJACENT LSNs, for every job on every node. CONFIRMED via enhanced waldump (payload-CRC + subtime columns): each pair is BYTE-IDENTICAL (same PCRC, e.g. LSN 2,3 both 6d79074e; same subtime 1781959730) \u2014 proving a literal double-append of the SAME encoded job_t in one submit flow; a failover retry would re-stamp subtime=time(NULL) and differ, so retry is DEFINITIVELY ruled out. Remaining candidates: AFTER_EVENT jlist contains the job twice, or the JOB_NEW hook/handler persists twice per submit. So 'ctrl-1 has 12 submits' is really 6 jobs (halve when reconciling failover-test job totals). Doubles LSN consumption; consistent across nodes here (F@14,15 on both ctrl-1 and ctrl-3) so not itself divergence, but a latent cross-node LSN-divergence risk if the duplicate count ever varies by primary.",
"fix": "NOT YET FIXED \u2014 investigation finding. Next: extend waldump to print per-entry CRC + payload taskid to confirm byte-identical duplicates, then trace handle_jobsubmit -> persist_job_hook_fun AFTER_EVENT loop for the double append.",
"tags": [
"ha",
"wal",
"persistence",
"job-submit",
"duplicate",
"waldump",
"investigation"
],
"related_bugs": [
"bug-828",
"bug-795"
],
"occurrences": 1,
"last_seen": "2026-06-20T14:30:00.000Z"
},
{
"id": "bug-846",
"timestamp": "2026-06-20T14:27:17.198Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-commit-durability/INVESTIGATION-failover-job-loss.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T14:27:17.198Z"
},
{
"id": "bug-847",
"timestamp": "2026-06-20T14:37:08.863Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/waldump.c",
"root_cause": "6 lines replaced/restructured",
"fix": "Rewrote 27\u219238 lines (6 removed) | Also: /* Per-entry line, with jobid for submits. */; char info[64] = \"\"; | Also: fprintf(out, \" %8s | %5s | %-11s | %5s | %s\\n\",; \"LSN\", \"TERM\", \"TYPE\", \"PLEN\", \"INFO\");",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 3,
"last_seen": "2026-06-20T14:39:19.887Z"
},
{
"id": "bug-848",
"timestamp": "2026-06-20T14:40:02.211Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_waldump.c",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 13\u219216 lines (5 removed) | Also: size_t plen;; uint8_t* job = encode_job(2001, &plen);",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-20T14:40:43.204Z"
},
{
"id": "bug-849",
"timestamp": "2026-06-20T14:42:09.400Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-commit-durability/INVESTIGATION-failover-job-loss.md",
"root_cause": "Had `handle_jobsubmit`",
"fix": "Changed to `6d79074e`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T14:42:09.400Z"
},
{
"id": "bug-850",
"timestamp": "2026-06-20T15:14:36.135Z",
"error_message": "Incorrect value in code",
"file": "src/controller/testsuite/test.c",
"root_cause": "Had \"shutdown\"",
"fix": "Changed to \"waldump\"",
"tags": [
"auto-detected",
"wrong-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T15:14:36.135Z"
},
{
"id": "bug-846",
"timestamp": "2026-06-20T15:20:00.000Z",
"error_message": "After the primary dies, xce_test client ops (ctrlstatus/joblist/jobsub) fail PERSISTENTLY with 'Invalid argument' (EINVAL) and wait-primary times out, even though a new primary was elected (ctrl-2 term 3). Blocks failover testing from the client.",
"file": "src/lib/xceapi.c (per-op state guard) + src/lib/client_failover.c (xce_failover_classify / xcecli_retry_decide)",
"root_cause": "Client-side, NOT server. ha_dispatch_gate ALLOWS OPCode_ctrlstatus in every role and rejects client writes with the RETRYABLE -XCE_ERR_NOT_READY (never EINVAL), so a reachable controller would answer. The EINVAL is the xceapi per-op guard: `if (ctx->state != XCE_CTX_RUN) return -EINVAL`. The failover loop only AUTO-RECOVERS ctx.state==XCE_CTX_ERR (xcecli_retry_decide rotates+recovers); xce_failover_classify maps EINVAL -> XCE_FO_TERMINAL ('everything else -> terminal'), so a bare EINVAL is surfaced and the sticky master cursor never advances to the live new primary. So once the ctx lands in a non-ERR non-RUN state (INIT/DOWN) \u2014 or yields a bare EINVAL while RUN \u2014 failover gives up permanently. Exact stuck state needs a live repro to confirm.",
"fix": "NOT YET FIXED. Recommended (B): make the xceapi guard return a connection-state code (-ECONNRESET or -XCE_ERR_NOT_READY) instead of -EINVAL when state != RUN, so xce_failover_classify rotates/recovers instead of treating it as terminal (EINVAL conflates 'bad argument' with 'not connected'). Reproduce first (drive a fresh /xce-deploy-ha, kill primary mid-session, capture rc+ctx.state) before patching.",
"tags": [
"libxce",
"failover",
"client",
"einval",
"ha",
"blocker"
],
"related_bugs": [
"bug-646"
],
"occurrences": 1,
"last_seen": "2026-06-20T15:20:00.000Z"
},
{
"id": "bug-852",
"timestamp": "2026-06-20T15:27:35.465Z",
"error_message": "Missing error handling in unknown",
"file": "src/lib/testsuite/test_wal_wire.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T15:27:35.465Z"
},
{
"id": "bug-853",
"timestamp": "2026-06-20T15:27:41.698Z",
"error_message": "Wrong reference: test_wal_batch_entry_without_payload should be test_wal_batch_roundtrip_large_payloads",
"file": "src/lib/testsuite/test_wal_wire.c",
"root_cause": "Used \"test_wal_batch_entry_without_payload\" instead of \"test_wal_batch_roundtrip_large_payloads\"",
"fix": "Changed test_wal_batch_entry_without_payload \u2192 test_wal_batch_roundtrip_large_payloads",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T15:27:41.698Z"
},
{
"id": "bug-847",
"timestamp": "2026-06-20T15:35:00.000Z",
"error_message": "Catch-up WAL streaming silently DROPS entry payloads at scale: a rejoining controller (ctrl-1 restarted) received [1..14] with correct LSN/type/CRC but PLEN=0 / empty job blobs (waldump PCRC=00000000, jobid=?). Structurally-intact but content-empty WAL = silent data corruption. THE committed-job-loss mechanism.",
"file": "src/lib/request.c (xce_wal_batch_encode_raw / wal_entry_to_wire / xce_decode extract loop) \u2014 capnp multi-segment Data pointers",
"root_cause": "Multi-segment capnp bug. xce_wal_batch_encode_raw builds a WalCatchupEntry struct-list where each element's payload is a capnp Data (List(UInt8)) allocated via capn_new_list8(cs=root_seg,...). When the message outgrows its first segment (large batch), the per-element payload Data pointer is lost across the segment boundary \u2014 on decode extract_data_bytes(we.payload) reads CAPN_NULL and returns len 0. write_WalCatchupEntry uses capn_setp (far-pointer-capable) so the fault is in the overflow/segment handling as used here. REPRODUCED deterministically: src/lib/testsuite/test_wal_wire.c test_wal_batch_roundtrip_large_payloads (14 entries x 872B) FAILS 'Expected 872 Was 0'; the 2-entry test_wal_batch_roundtrip_payload_bytes PASSES. Threshold is size, not count. Live replication (repl_broadcast) carries payloads fine \u2014 ONLY the catch-up/rejoin path corrupts, which is why loss only appears after a node restarts and catches up.",
"fix": "NOT YET FIXED. RED reproducer test_wal_batch_roundtrip_large_payloads is currently TEST_IGNORE'd (in src/lib/testsuite/test_wal_wire.c) so the libxce suite stays green \u2014 it both fails 'Expected 872 Was 0' AND leaks the orphaned multi-segment decode allocations under ASAN (meson runs abort_on_error=1 -> SIGABRT). The ASAN leak (decode_WalCatchupEntry_list/decode_Data_ptr, ~13.7KB over 61 allocs) is an EXTRA symptom: the lost cross-segment payload pointers also orphan the decoded sub-entry Data. When fixing, REMOVE the TEST_IGNORE_MESSAGE line and assert payloads survive + no leak. Candidate fixes: (a) carry all sub-entry payloads as ONE top-level capnp Data blob + lengths array (single Data round-trips correctly, sidesteps per-element cross-segment pointers) \u2014 LEAN; (b) cap WAL_STREAM_BATCH_BYTES below the single-segment threshold (fragile); (c) fix the cross-segment Data encoding in c-capnproto usage.",
"tags": [
"ha",
"wal",
"catchup",
"replication",
"capnp",
"data-loss",
"corruption",
"waldump",
"critical"
],
"related_bugs": [
"bug-828",
"bug-795",
"bug-661"
],
"occurrences": 1,
"last_seen": "2026-06-20T15:35:00.000Z"
},
{
"id": "bug-855",
"timestamp": "2026-06-20T15:30:48.257Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-commit-durability/INVESTIGATION-failover-job-loss.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T15:30:48.257Z"
},
{
"id": "bug-856",
"timestamp": "2026-06-20T15:31:23.821Z",
"error_message": "Missing error handling in unknown",
"file": "../../../../../claude/.claude/projects/-home-rshen-projects-xce-xce/memory/project_failover_job_loss.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-20T15:31:23.821Z"
},
{
"id": "bug-848",
"timestamp": "2026-06-20T15:50:00.000Z",
"error_message": "On a PRESERVED-DATA restart (no wipe \u2014 user confirmed), a controller recovers its WAL [1..7] from disk but rejoins advertising applied_lsn=0, so the primary re-streams the WHOLE log [1..committed] and O_TRUNC-overwrites the node's already-correct WAL. Logs: 'HA: learned committed_lsn=10 ... (was 0)'. THE root trigger that forces the full re-stream (then bug-847 empties it).",
"file": "src/controller/cluster.c (cluster_init_phase2, after persist_recover) + src/controller/ha.c (ha_init applied_lsn=0; state report sr->applied_lsn)",
"root_cause": "ha->applied_lsn is NEVER reconstructed from the recovered WAL on boot. ha_init zeros it (ha.c:1367); persist_recover (cluster.c:1352) replays the WAL and advances persist->current_lsn/durable_lsn, but nothing copies that recovered position into ha->applied_lsn (persist_t and ha_state_t are separate; the only setter besides ha_init is the SNAPSHOT receive path ha.c:1771 = checkpoint_lsn). So the standby state report advertises sr->applied_lsn = ha->applied_lsn = 0 (ha.c:1787) and the primary's ha_evaluate_repl_action streams [0+1 .. committed]. ASYMMETRY proving it's a bug: ELECTION advertise uses ha_candidate_advertise_lsn = persist_durable_floor (the RECOVERED position, correct), but CATCH-UP advertise uses the un-recovered applied_lsn=0. The system knows its durable tip for voting but not for catch-up. Defeats Raft incremental catch-up for every restarted node; also the upstream cause of the earlier missing-prefix cases (full re-stream from a trimmed primary -> prefix gap).",
"fix": "FIXED 2026-06-20 (HA-layer). Added ha_sync_applied_lsn_from_recovery(ha,p) (ha.c/ha.h) = monotonic store of persist_durable_floor(p) into ha->applied_lsn; wired into cluster_init_phase2 right after persist_recover, plus a diagnostic INFO log of recovered durable_floor/current_lsn/applied_lsn. TDD: test_recovered_member_advertises_real_applied_lsn (test_persist_recovery.c) write->recover->sync asserts applied_lsn==durable_floor>0 and monotonic. controller_unit_test 6/6 + adjacent HA 8/8, daemon builds. CAVEAT: live ctrl-1 also showed current_lsn=1 (seg O_TRUNC'd from LSN 1) implying persist_recover may not have loaded the WAL on that restart at all; if so this HA-layer fix is necessary but not sufficient. The new INFO log reveals on the next live restart whether persist_recover is effective (durable_floor>0) or not (bug-849 candidate: recovery not running/loading on the rejoin path).",
"tags": [
"ha",
"raft",
"recovery",
"catchup",
"applied_lsn",
"data-loss",
"root-trigger",
"critical"
],
"related_bugs": [
"bug-847",
"bug-828",
"bug-795"
],
"occurrences": 1,
"last_seen": "2026-06-20T15:50:00.000Z"
},
{
"id": "bug-858",
"timestamp": "2026-06-21T00:18:54.350Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.h",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"h"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T00:18:54.350Z"
},
{
"id": "bug-859",
"timestamp": "2026-06-21T00:19:18.673Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T00:19:18.673Z"
},
{
"id": "bug-860",
"timestamp": "2026-06-21T00:19:50.700Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/cluster.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T00:19:50.700Z"
},
{
"id": "bug-861",
"timestamp": "2026-06-21T00:20:55.974Z",
"error_message": "Incorrect value in code",
"file": "src/controller/testsuite/test_persist_recovery.c",
"root_cause": "Had \"persist.h\"",
"fix": "Changed to \"ha.h\"",
"tags": [
"auto-detected",
"wrong-value",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T00:20:55.974Z"
},
{
"id": "bug-849",
"timestamp": "2026-06-21T11:15:00.000Z",
"error_message": "After bug-848 fix, restart still loses the committed prefix: restarted ctrl-1 ended with WAL [15..16] only \u2014 missing [1..14] (waldump 'GAP: missing prefix LSN 1..14'). Payloads now full (bug-848 era), but the prefix is gone. Loss mode changed (empty-payload -> missing-prefix), loss remains.",
"file": "src/controller/myapp.c (standby-rejoin path ~317-320) + src/controller/cluster.c cluster_init_phase2 (holds persist_recover)",
"root_cause": "CONFIRMED from live logs (/tmp/xce-ha-deploy/logs/ctrl-1.log). persist_recover (and the bug-848 applied_lsn sync, and catch-up) run ONLY inside cluster_init_phase2, which is ELECTION-GATED \u2014 its real callers are all ha.c election/promotion paths (ha.c:1021,1166,2943,3022) + cluster_init. First boot ran it (ctrl-1 won an election; logged 'persist_recover done \u2014 durable_floor=0 current_lsn=1'). The 11:07:20 RESTART came up as a follower ('myapp_run: CTRL_STANDBY \u2014 waiting for primary to connect and push config') with NO election \u2192 cluster_init_phase2 NEVER ran \u2192 NO 'persist_recover done' line for pid 304897. So the rejoining follower never recovered its on-disk [1..7], operated with current_lsn=1/applied_lsn=0, then received LIVE replication of the new job [15..16] (repl_broadcast), O_TRUNC'd seg-001 and wrote [15..16] there. [1..7] never recovered + [1..14] never caught up = permanent prefix gap. Ordering corollary: live replication advances applied past the gap so the primary's catch-up never backfills it.",
"fix": "FIXED 2026-06-21 (design B \u2014 boot-path-universal recovery). Refined root cause: phase2 is invoked ONLY from the election-result path; a rejoining follower that SKIPS its election (goto skip_election in myapp_run because a primary already exists) never reaches it. Fix: in myapp.c the skip-election standby branch now calls cluster_init_phase2(&c) (build resources + persist_recover + bug-848 ha_sync_applied_lsn) when !ha.phase2_done, BEFORE cluster_run starts serving \u2014 so every boot path recovers its own WAL and advertises its real applied_lsn before accepting replication. Idempotent via phase2_done (same once-per-process contract as the election callers); recovery decoupled from the primary config push (a restart already loaded config from disk pre-election). Daemon builds; controller suite incl. test_persist_recovery/test_ha_startup/test_repl_catchup/test_ha_failover 8/8 green. LIVE VALIDATION PENDING: redeploy + kill/restart ctrl-1; expect a 'HA: persist_recover done \u2014 durable_floor=7 current_lsn=8' line for the restarted pid and ctrl-1 keeping [1..7] + catching up only the suffix.",
"tags": [
"ha",
"raft",
"recovery",
"boot",
"election-gated",
"catchup",
"data-loss",
"critical"
],
"related_bugs": [
"bug-848",
"bug-847",
"bug-828",
"bug-795"
],
"occurrences": 1,
"last_seen": "2026-06-21T11:15:00.000Z"
},
{
"id": "bug-850",
"timestamp": "2026-06-21T12:30:00.000Z",
"error_message": "A rejoining standby receives LIVE replication of new entries before its historical catch-up, advancing current_lsn past the gap so the idempotency guard skips the catch-up of the prefix. Explains ctrl-1 ending with [15..16] only (gap [1..14]). Distinct from bug-849; persists even after recovery.",
"file": "src/controller/repl.c repl_add_standby (line ~119) + repl_broadcast in_catch_up gate",
"root_cause": "repl_add_standby initializes a freshly-registered standby with in_catch_up=0, so it is IMMEDIATELY eligible for repl_broadcast (which correctly skips in_catch_up standbys at repl.c:27). Mechanism (confirmed from ctrl-1.log 11:07:21): ctrl-1 reconnects -> registered in_catch_up=0 -> the new job [15..16] is live-broadcast to it (not gated) -> persist_wal_write_replicated writes them, current_lsn jumps to 17 -> THEN the catch-up stream of [1..14] arrives but persist_wal_write_replicated's idempotency guard (lsn+1 <= current_lsn) skips ALL of them (1+1<=17 ... 14+1<=17) -> permanent prefix gap [1..14]. Independent of bug-849: even with recovery (current_lsn=8), a live [15..16] arriving first jumps current_lsn to 17 and the catch-up of [8..14] is skipped (gap [8..14]). Root architectural cause: catch-up streaming and live broadcast are SEPARATE unordered paths (unlike Raft AppendEntries which is one ordered per-follower stream).",
"fix": "FIXED 2026-06-21 via a CONTIGUITY GUARD at the persist layer (Raft log-matching), NOT in_catch_up. First tried defaulting in_catch_up=1 in repl_add_standby \u2014 REVERTED: it broke the whole controller suite (commit-WAIT tests TIMEOUT 300s because a fresh standby no longer counts toward write quorum until convergence, and the unit tests don't run the heartbeat dispatch that would clear it). Correct fix: persist_wal_write_replicated now REJECTS a forward gap (lsn > current_lsn) with -EAGAIN instead of writing it \u2014 so a live broadcast that arrives ahead of the in-order catch-up is DROPPED (no write, no ack, no current_lsn jump), and the ACK-driven catch-up continuation re-streams from current_lsn so the log fills in order. ha_apply_single_entry + ha_apply_wal_catchup_entry treat -EAGAIN as a quiet skip (TRACE, no ack, no ERROR spam). Combined with bug-848 (advertise durable_floor == current_lsn-1) the catch-up always starts AT current_lsn so it is never spuriously rejected; only genuine forward gaps are. Files: src/controller/persist.c (guard), src/controller/ha.c (quiet -EAGAIN). TDD: test_repl_write_rejects_forward_gap (test_repl_apply.c) \u2014 contiguous write ok, forward-gap lsn 5 @ current_lsn 2 -> -EAGAIN + current_lsn unchanged, fill 2..4 then 5 ok, recovery clean. FULL controller suite green (129/0/0, no timeout); daemon builds. LIVE VALIDATION PENDING with bug-848+849+850 together.",
"tags": [
"ha",
"raft",
"replication",
"catchup",
"ordering",
"race",
"in_catch_up",
"data-loss",
"critical"
],
"related_bugs": [
"bug-849",
"bug-848",
"bug-847",
"bug-828",
"bug-795"
],
"occurrences": 1,
"last_seen": "2026-06-21T12:30:00.000Z"
},
{
"id": "bug-864",
"timestamp": "2026-06-21T03:39:07.483Z",
"error_message": "Missing guard clause",
"file": "src/controller/repl.c",
"root_cause": "No early return/throw for edge case: r->standbys[i].ep == ep",
"fix": "Added guard clause: if (r->standbys[i].ep == ep)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T03:39:07.483Z"
},
{
"id": "bug-865",
"timestamp": "2026-06-21T03:39:17.593Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T03:39:17.593Z"
},
{
"id": "bug-866",
"timestamp": "2026-06-21T03:54:46.212Z",
"error_message": "Significant refactor of ",
"file": "src/controller/repl.c",
"root_cause": "11 lines replaced/restructured",
"fix": "Rewrote 15\u21925 lines (11 removed) | Also: /* Transition-aware (bug-850): only the actual 1\u21920; * (membership re-eval + waiter wakeup) work, so th",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-21T03:55:12.202Z"
},
{
"id": "bug-867",
"timestamp": "2026-06-21T03:55:24.501Z",
"error_message": "Significant refactor of ",
"file": "src/controller/ha.c",
"root_cause": "7 lines replaced/restructured",
"fix": "Rewrote 13\u21927 lines (7 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T03:55:24.501Z"
},
{
"id": "bug-868",
"timestamp": "2026-06-21T03:56:40.908Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/persist.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T03:56:40.908Z"
},
{
"id": "bug-869",
"timestamp": "2026-06-21T03:57:03.979Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/ha.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T03:57:03.979Z"
},
{
"id": "bug-870",
"timestamp": "2026-06-21T04:00:51.551Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_repl_apply.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T04:00:51.551Z"
},
{
"id": "bug-871",
"timestamp": "2026-06-21T04:01:07.089Z",
"error_message": "Wrong reference: test_repl_write_rejects_checkpoint should be test_repl_write_rejects_forward_gap",
"file": "src/controller/testsuite/test_repl_apply.c",
"root_cause": "Used \"test_repl_write_rejects_checkpoint\" instead of \"test_repl_write_rejects_forward_gap\"",
"fix": "Changed test_repl_write_rejects_checkpoint \u2192 test_repl_write_rejects_forward_gap",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T04:01:07.089Z"
},
{
"id": "bug-851",
"timestamp": "2026-06-21T13:30:00.000Z",
"error_message": "CHAOTIC leadership churn (3x kill-the-primary) causes SILENT committed-prefix DIVERGENCE: all 3 nodes report committedLsn=54 with lsn range 1..54 / 0 gaps / CRC intact, but WAL CONTENT diverges at LSN 45-54 (ctrl-1/ctrl-2/ctrl-3 each hold DIFFERENT jobs at the same LSNs; fps bfeb26ad/216af434/865304ec). Violates Raft committed-prefix invariant (a committed entry must be byte-identical on every member). Originally seen as a liveness 'commit stall'; the deeper defect is divergence + acked-job loss under churn.",
"file": "src/controller/persist.c:588/726/1040 (hdr.term=p->term, p->term never set) + src/controller/ha.c (election term = local+1, PreVote no-persist; two leaders per term) + src/controller/ha_convergence.c (reconcile cannot (term,lsn) log-match)",
"root_cause": "ROOT-CAUSED 2026-06-21 (owned-cluster repro, see .kiro/specs/ha-commit-durability/repro-851/). THREE compounding defects: (1) Election term not monotonic across cluster: term = locally-persisted+1, PreVote does NOT persist/propagate ('PreVote round ... no persist'); under chaotic kills a leader wins term N, appends own-term noop+jobs, and is killed BEFORE term N propagates to a majority; a restarted node recovers a STALE term and elects at the SAME N+1 => TWO leaders share a term (logs: term3 led by ctrl-3@08:40 AND ctrl-1@08:47:39; term4 led by ctrl-2@08:47:52 AND ctrl-3@08:48:04), each appending its own-term noop at the SAME lsn 45. (2) WAL entry term field is DEAD (always 0): wal_entry_hdr_t.term exists (wal_types.h:30) but writer does hdr.term=p->term (persist.c:588/726/1040) and p->term is NEVER assigned from ha->term anywhere in the controller (zero matches) => every entry persists term=0; waldump confirms term=0 cluster-wide. (3) No (term,lsn) reconcile: with no usable per-entry term, ha_convergence.c reconcile cannot Raft-log-match, so a divergent same-lsn suffix (45@term3 vs 45@term4) looks already-present and is never truncated; ha_compute_safe_committed_lsn then advances committed 'from 1 granted voter' over content other members never received. NOTE: a CLEAN single failover fully converges (all WALs identical 1..22, 848/849/850 validated) \u2014 only CHAOTIC churn triggers it.",
"fix": "NOT FIXED (HA-core + persistence => full spec workflow per CLAUDE.md, not a quick patch). Keystone lever: stamp hdr.term from live ha->term on the primary append path + carry term through the repl envelope + persist it, THEN make ha_convergence reconcile truncate any local suffix whose (term,lsn) != leader's (standard Raft log-matching). MUST pair with durably-establishing the election term before a new leader acts (no two leaders per term: persist/propagate the won term to a majority before appending the own-term noop, or bump term beyond any (term,lsn) a voter advertises). Route to ha-consistency-invariants / ha-convergence-recovery as a new sub-spec.",
"tags": [
"ha",
"failover",
"replication",
"convergence",
"raft-safety",
"term-monotonicity",
"wal-term",
"committed-divergence",
"data-loss",
"spec-needed"
],
"related_bugs": [
"bug-850",
"bug-849",
"bug-848",
"bug-646"
],
"occurrences": 2,
"last_seen": "2026-06-21T09:10:00.000Z",
"root_caused": "2026-06-21T09:10:00.000Z"
},
{
"id": "bug-873",
"timestamp": "2026-06-21T09:15:48.912Z",
"error_message": "Missing error handling in unknown",
"file": ".kiro/specs/ha-commit-durability/INVESTIGATION-failover-job-loss.md",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T09:15:48.912Z"
},
{
"id": "bug-854",
"timestamp": "2026-06-21T09:10:00.000Z",
"error_message": "Client primary-discovery is POSITIONAL, not failover-correct: with masters=[m0,m1,...] the client only finds the primary if m0 IS the primary. wait-primary: 9993(primary-first)=ok 45ms; 9992,9993(standby-first)=no primary; 9991,9993(dead-first)=no primary; 9993,9991=ok.",
"file": "src/lib/client.c:403 xcecli_ctrlstatus_primary + src/controller/ctrlstatus.c:104 (standby primaryName=\"\")",
"root_cause": "Standby answers ctrlstatus with primaryName=\"\" (unknown, by design \u2014 voted_for_name/primary_host unreliable), so xcecli_ctrlstatus_primary_addr returns -ENOENT and no redirect hint is captured; the inner xcecli_ctrlstatus SUCCEEDS on the reachable non-primary so transport-level failover never rotates to the next master. Net: client pins to whichever master answers first. Compounded by the dead node returning EINVAL (bug-846). This is what made earlier remote sessions misread bug-851 as 'committed frozen' \u2014 the client was pinned to a stale/standby node. Found during the 2026-06-21 owned-cluster bug-851 repro.",
"fix": "NOT FIXED. Options: (a) standby tracks+reports the primary name it heartbeats with (populates primaryName so the existing redirect-hint path in xcecli_ctrlstatus_primary works), or (b) client forces rotation to the next master on a reachable-but-non-authoritative reply. (a) is more robust (direct redirect).",
"tags": [
"libxce",
"client",
"failover",
"primary-discovery",
"ctrlstatus",
"ha"
],
"related_bugs": [
"bug-846",
"bug-851",
"bug-646"
],
"occurrences": 1,
"last_seen": "2026-06-21T09:10:00.000Z"
},
{
"id": "bug-875",
"timestamp": "2026-06-21T10:04:37.876Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-term-safety/requirements.md",
"root_cause": "Had `OPCode_replConfigPush`",
"fix": "Changed to `snapshot_transfer_s`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T10:04:37.876Z"
},
{
"id": "bug-876",
"timestamp": "2026-06-21T10:17:35.147Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-term-safety/requirements.md",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 14\u219226 lines (5 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T10:17:35.147Z"
},
{
"id": "bug-857",
"timestamp": "2026-06-21T10:30:00.000Z",
"error_message": "Config upgrade can leave members with DIVERGENT materialized state: do_upgrade_config_with_bytes pushes config bytes only then restart_requested; each node re-derives state by replaying its WAL under the NEW config, with no snapshot pinning an identical post-upgrade state. Replay is config-dependent (lost_and_found re-homes orphaned jobs), so nodes can diverge; amplified by bug-851 WAL tail divergence.",
"file": "src/controller/config_repl.c do_upgrade_config_with_bytes (~1001-1163)",
"root_cause": "Config is a separate consistency domain (committed_config_tag, no term, tag anti-entropy) outside both the WAL log and raft.c. Upgrade activation = config push + restart + per-node WAL replay under new config; no snapshot transfers an identical materialized state, and state is interpreted against config. Identified via TLA+ gap analysis (config should be log-entry/snapshot-anchored). NOT empirically reproduced yet.",
"fix": "NOT FIXED. Descoped 2026-06-21 from ha-term-safety R8 into the independent `config-upgrade-snapshot` spec (.kiro/specs/config-upgrade-snapshot/, requirements generated). Fix = upgrade materializes a FULL entity-bearing state snapshot at the config-change marker (term,lsn) boundary, embeds new config, installs on every member; no per-node replay-under-new-config. HARD dependency: entity-bearing-snapshots (snapshots are a 16-byte LSN sentinel today; COW xzarray_freeze/thaw built but dormant). Verify by reproducing bug-857 (upgrade during chaotic multi-kill, diff materialized state).",
"tags": [
"config",
"snapshot",
"ha",
"needs-verification",
"spec-needed",
"descoped",
"config-upgrade-snapshot",
"entity-bearing-snapshots",
"state-divergence",
"raft-safety",
"upgrade"
],
"related_bugs": [
"bug-851",
"bug-828"
],
"occurrences": 1,
"last_seen": "2026-06-21T10:30:00.000Z"
},
{
"id": "bug-878",
"timestamp": "2026-06-21T10:34:30.593Z",
"error_message": "Function not marked async",
"file": ".kiro/steering/roadmap.md",
"root_cause": "Function uses await but wasn't declared async",
"fix": "Added async modifier",
"tags": [
"auto-detected",
"async-fix",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T10:34:30.593Z"
},
{
"id": "bug-879",
"timestamp": "2026-06-21T10:59:29.212Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-term-safety/TLA-gap-analysis.md",
"root_cause": "Had `raft.c`",
"fix": "Changed to 's split architecture, the chosen direction is to ",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T10:59:29.212Z"
},
{
"id": "bug-880",
"timestamp": "2026-06-21T12:56:07.740Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-term-safety/requirements.md",
"root_cause": "Had `snapshot_transfer_s`",
"fix": "Changed to `(term, lsn)`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T12:56:07.740Z"
},
{
"id": "bug-881",
"timestamp": "2026-06-21T13:00:46.210Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-term-safety/design.md",
"root_cause": "Had `xce_test`",
"fix": "Changed to `OPCode_replConfigPush`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 4,
"last_seen": "2026-06-21T13:04:57.579Z"
},
{
"id": "bug-882",
"timestamp": "2026-06-21T13:03:32.383Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-term-safety/design.md",
"root_cause": "7 lines replaced/restructured",
"fix": "Rewrote 15\u219229 lines (7 removed)",
"tags": [
"auto-detected",
"refactor",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T13:03:32.383Z"
},
{
"id": "bug-883",
"timestamp": "2026-06-21T13:05:44.284Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-term-safety/research.md",
"root_cause": "Had `config_repl.c:1857-1944`",
"fix": "Changed to `xzarray_freeze`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-21T13:06:07.689Z"
},
{
"id": "bug-884",
"timestamp": "2026-06-21T15:20:00Z",
"error_message": "test_persistence_constants:FAIL Expected TRUE Was FALSE (DEFAULT_SYNC_TIMEOUT_MS==50)",
"file": "src/lib/testsuite/test_config.c",
"root_cause": "commit ca1d9ae raised DEFAULT_SYNC_TIMEOUT_MS 50->500 in config.h but did not update the test assertion; pre-existing red on HEAD, unrelated to raft",
"fix": "synced assertion to ==500 (commit 7b6cbb8)",
"tags": [
"test",
"config",
"stale-assertion",
"ha-commit-engine"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T15:20:00Z"
},
{
"id": "bug-885",
"timestamp": "2026-06-21T15:21:59.689Z",
"error_message": "Missing guard clause",
"file": "src/lib/raft/raft_sim.c",
"root_cause": "No early return/throw for edge case: index < 1 || index > RAFT_SIM_MAX_LOG",
"fix": "Added guard clause: if (index < 1 || index > RAFT_SIM_MAX_LOG)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T15:21:59.689Z"
},
{
"id": "bug-886",
"timestamp": "2026-06-21T15:41:42.176Z",
"error_message": "Wrong reference: test_raft_init_zero_peers_returns_einval should be test_raft_init_oversize_peers_returns_einval",
"file": "src/lib/testsuite/test_raft.c",
"root_cause": "Used \"test_raft_init_zero_peers_returns_einval\" instead of \"test_raft_init_oversize_peers_returns_einval\"",
"fix": "Changed test_raft_init_zero_peers_returns_einval \u2192 test_raft_init_oversize_peers_returns_einval",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T15:41:42.176Z"
},
{
"id": "bug-887",
"timestamp": "2026-06-21T15:45:29.785Z",
"error_message": "Missing guard clause",
"file": "src/lib/raft/raft.c",
"root_cause": "No early return/throw for edge case: s->role != RAFT_LEADER",
"fix": "Added guard clause: if (s->role != RAFT_LEADER)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T15:45:29.785Z"
},
{
"id": "bug-888",
"timestamp": "2026-06-21T15:52:45.272Z",
"error_message": "Missing guard clause",
"file": "src/lib/testsuite/test_raft.c",
"root_cause": "No early return/throw for edge case: index >= 1 && index <= RAFT_SIM_MAX_LOG",
"fix": "Added guard clause: if (index >= 1 && index <= RAFT_SIM_MAX_LOG)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T15:52:45.272Z"
},
{
"id": "bug-889",
"timestamp": "2026-06-21T15:53:14.276Z",
"error_message": "Missing guard clause",
"file": "src/lib/raft/raft.c",
"root_cause": "No early return/throw for edge case: s->cbs->on_trace",
"fix": "Added guard clause: if (s->cbs->on_trace)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T15:53:14.276Z"
},
{
"id": "bug-890",
"timestamp": "2026-06-21T15:59:59.295Z",
"error_message": "Missing guard clause",
"file": "src/lib/raft/raft.c",
"root_cause": "No early return/throw for edge case: rc != 0",
"fix": "Added guard clause: if (rc != 0)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T15:59:59.295Z"
},
{
"id": "bug-891",
"timestamp": "2026-06-21T16:06:37.923Z",
"error_message": "Missing guard clause",
"file": "src/lib/raft/raft.c",
"root_cause": "No early return/throw for edge case: s->cbs->on_trace",
"fix": "Added guard clause: if (s->cbs->on_trace)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T16:06:37.923Z"
},
{
"id": "bug-892",
"timestamp": "2026-06-21T16:15:51.060Z",
"error_message": "Significant refactor of ",
"file": "src/lib/raft/raft.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 6\u219211 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T16:15:51.060Z"
},
{
"id": "bug-893",
"timestamp": "2026-06-21T16:16:47.908Z",
"error_message": "Wrong reference: g_te_spy should be g_pe_spy",
"file": "src/lib/testsuite/test_raft.c",
"root_cause": "Used \"g_te_spy\" instead of \"g_pe_spy\"",
"fix": "Changed g_te_spy \u2192 g_pe_spy",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T16:16:47.908Z"
},
{
"id": "bug-894",
"timestamp": "2026-06-21T16:20:39.535Z",
"error_message": "Missing guard clause",
"file": "src/lib/raft/raft.c",
"root_cause": "No early return/throw for edge case: s->cbs->on_trace",
"fix": "Added guard clause: if (s->cbs->on_trace)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T16:20:39.535Z"
},
{
"id": "bug-895",
"timestamp": "2026-06-21T16:29:35.778Z",
"error_message": "Missing guard clause",
"file": "src/lib/raft/raft_sim.c",
"root_cause": "No early return/throw for edge case: c->nodes[src].partition || c->nodes[dst].partition",
"fix": "Added guard clause: if (c->nodes[src].partition || c->nodes[dst])",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T16:29:35.778Z"
},
{
"id": "bug-896",
"timestamp": "2026-06-21T16:29:52.264Z",
"error_message": "Significant refactor of ",
"file": "src/lib/raft/raft_sim.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 8\u219211 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T16:29:52.264Z"
},
{
"id": "bug-897",
"timestamp": "2026-06-21T16:36:42.796Z",
"error_message": "Significant refactor of ",
"file": "src/lib/raft/raft_sim.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 4\u21926 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T16:36:42.796Z"
},
{
"id": "bug-898",
"timestamp": "2026-06-21T16:36:58.149Z",
"error_message": "Significant refactor of ",
"file": "src/lib/testsuite/test_raft.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 3\u21925 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T16:36:58.149Z"
},
{
"id": "bug-899",
"timestamp": "2026-06-21T16:42:30.241Z",
"error_message": "Missing guard clause",
"file": "src/lib/raft/raft_sim.c",
"root_cause": "No early return/throw for edge case: node_idx >= 0 && node_idx < c->n",
"fix": "Added guard clause: if (node_idx >= 0 && node_idx < c->n)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T16:42:30.241Z"
},
{
"id": "bug-900",
"timestamp": "2026-06-21T16:51:25.960Z",
"error_message": "Missing error handling in unknown",
"file": "src/lib/testsuite/test_raft.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block | Also: RUN_TEST(test_sim_9_1_replication_and_partition_catch_up);; RUN_TEST(test_sim_9_2_divergent_suffix_truncation);",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-21T16:51:35.044Z"
},
{
"id": "bug-901",
"timestamp": "2026-06-21T16:54:46.287Z",
"error_message": "Significant refactor of ",
"file": "src/lib/testsuite/test_raft.c",
"root_cause": "4 lines replaced/restructured",
"fix": "Rewrote 13\u219216 lines (4 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T16:54:46.287Z"
},
{
"id": "bug-902",
"timestamp": "2026-06-21T17:03:59.688Z",
"error_message": "Significant refactor of ",
"file": "src/lib/testsuite/test_raft.c",
"root_cause": "5 lines replaced/restructured",
"fix": "Rewrote 15\u219230 lines (5 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T17:03:59.688Z"
},
{
"id": "bug-903",
"timestamp": "2026-06-21T17:04:17.830Z",
"error_message": "Wrong operator: <= should be >=",
"file": "src/lib/testsuite/test_raft.c",
"root_cause": "Used \"<=\" instead of \">=\"",
"fix": "Changed operator <= \u2192 >=",
"tags": [
"auto-detected",
"operator-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T17:04:17.830Z"
},
{
"id": "bug-904",
"timestamp": "2026-06-21T21:44:26.804Z",
"error_message": "Missing guard clause",
"file": "src/lib/raft/raft_sim.c",
"root_cause": "No early return/throw for edge case: node_idx < 0 || node_idx >= c->n",
"fix": "Added guard clause: if (node_idx < 0 || node_idx >= c->n)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T21:44:26.804Z"
},
{
"id": "bug-905",
"timestamp": "2026-06-21T21:49:10.796Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/raft-log-replication/tasks.md",
"root_cause": "Had `initial_log_len`",
"fix": "Changed to `raft_sim_restart_node`",
"tags": [
"auto-detected",
"wrong-value",
"md"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T21:49:10.796Z"
},
{
"id": "bug-906",
"timestamp": "2026-06-21T23:00:19.687Z",
"error_message": "Significant refactor of ",
"file": "src/lib/raft/raft_sim.c",
"root_cause": "3 lines replaced/restructured",
"fix": "Rewrote 14\u219219 lines (3 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T23:00:19.687Z"
},
{
"id": "bug-907",
"timestamp": "2026-06-21T23:14:37.837Z",
"error_message": "Missing guard clause",
"file": "src/lib/raft/raft.c",
"root_cause": "No early return/throw for edge case: s->role != RAFT_LEADER",
"fix": "Added guard clause: if (s->role != RAFT_LEADER)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T23:14:37.837Z"
},
{
"id": "bug-908",
"timestamp": "2026-06-21T23:14:55.547Z",
"error_message": "Missing guard clause",
"file": "src/lib/raft/raft_sim.c",
"root_cause": "No early return/throw for edge case: node_idx >= 0 && node_idx < c->n",
"fix": "Added guard clause: if (node_idx >= 0 && node_idx < c->n)",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T23:14:55.547Z"
},
{
"id": "bug-909",
"timestamp": "2026-06-21T23:30:04.636Z",
"error_message": "Missing guard clause",
"file": "src/lib/testsuite/test_raft.c",
"root_cause": "No early return/throw for edge case: g_mock.get_entry_term_log_len != 0 &&\n index == g_moc",
"fix": "Added guard clause: if (g_mock.get_entry_term_log_len != 0 &&\n )",
"tags": [
"auto-detected",
"guard-clause",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T23:30:04.636Z"
},
{
"id": "bug-910",
"timestamp": "2026-06-21T23:31:46.582Z",
"error_message": "Significant refactor of ",
"file": "src/lib/raft/raft.h",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 9\u219226 lines (2 removed) | Also: * Denies if cand_term < s->term; otherwise returns; * from_idx, cand_term) (granting when the gate is ",
"tags": [
"auto-detected",
"refactor",
"h"
],
"related_bugs": [],
"occurrences": 2,
"last_seen": "2026-06-21T23:31:55.967Z"
},
{
"id": "bug-911",
"timestamp": "2026-06-21T23:32:38.225Z",
"error_message": "Wrong condition in logic",
"file": "src/lib/raft/raft.c",
"root_cause": "Condition was: if (s->cbs->on_vote_eligible != NULL)",
"fix": "Changed to: if (!raft_log_ok(s, cand_last_log_term, cand_last_log_)",
"tags": [
"auto-detected",
"logic-fix",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-21T23:32:38.225Z"
},
{
"id": "bug-912",
"timestamp": "2026-06-22T00:13:17.311Z",
"error_message": "Significant refactor of ",
"file": "src/lib/raft/raft.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 3\u21924 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-22T00:13:17.311Z"
},
{
"id": "bug-913",
"timestamp": "2026-06-22T00:19:56.768Z",
"error_message": "Wrong reference: TEST_ASSERT_NOT_EQUAL_INT should be TEST_ASSERT_NOT_EQUAL",
"file": "src/lib/testsuite/test_raft.c",
"root_cause": "Used \"TEST_ASSERT_NOT_EQUAL_INT\" instead of \"TEST_ASSERT_NOT_EQUAL\"",
"fix": "Changed TEST_ASSERT_NOT_EQUAL_INT \u2192 TEST_ASSERT_NOT_EQUAL",
"tags": [
"auto-detected",
"wrong-reference",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-22T00:19:56.768Z"
},
{
"id": "bug-914",
"timestamp": "2026-06-22T01:24:34.541Z",
"error_message": "Incorrect value in code",
"file": ".kiro/specs/ha-term-safety/spec.json",
"root_cause": "Had \"design-generated\"",
"fix": "Changed to \"tasks-generated\"",
"tags": [
"auto-detected",
"wrong-value",
"json"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-22T01:24:34.541Z"
},
{
"id": "bug-915",
"timestamp": "2026-06-22T01:24:46.936Z",
"error_message": "Significant refactor of ",
"file": ".kiro/specs/ha-term-safety/spec.json",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 7\u21928 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"json"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-22T01:24:46.936Z"
},
{
"id": "bug-916",
"timestamp": "2026-06-22T02:56:16.383Z",
"error_message": "Significant refactor of ",
"file": "src/controller/testsuite/test_ha_prevote.c",
"root_cause": "2 lines replaced/restructured",
"fix": "Rewrote 9\u219215 lines (2 removed)",
"tags": [
"auto-detected",
"refactor",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-22T02:56:16.383Z"
},
{
"id": "bug-917",
"timestamp": "2026-06-22T02:57:27.792Z",
"error_message": "Missing error handling in unknown",
"file": "src/controller/testsuite/test_e2e_capnp.c",
"root_cause": "Code path had no error handling \u2014 exceptions would propagate uncaught",
"fix": "Added try/catch block",
"tags": [
"auto-detected",
"error-handling",
"c"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-22T02:57:27.792Z"
},
{
"id": "bug-855",
"timestamp": "2026-06-22T03:10:06.653962Z",
"error_message": "controller_unit_test: 6 test_wal_catchup_* tests FAIL (Expected ... Was -11/-EAGAIN or wrong applied_lsn) on the raft_tla checkpoint branch",
"file": "src/controller/testsuite/test_config_repl.c (tests) / src/controller/persist.c:705 (guard)",
"root_cause": "PRE-EXISTING on checkpoint 20e59d0, NOT caused by ha-term-safety 1.1/1.2. The bug-850 contiguity guard (persist.c:705 rejects lsn>current_lsn with -EAGAIN) is committed at HEAD, but the test_wal_catchup_* tests feed forward-gap LSNs (30, 42) into a FRESH persist (current_lsn~=1) and still expect them to apply -> guard returns -EAGAIN -> applied_lsn does not advance. ha-term-safety changes touch only vote/schema/typemap/stubs; git diff --stat shows ZERO changes to persist.c/config_repl.c/test_config_repl.c. Also a separate run TIMED OUT 300s (the bug-850 DNR /tmp fsync-EIO + commit-WAIT signature; environment artifact on overlayfs).",
"fix": "NOT FIXED here (out of task boundary). The test/guard mismatch predates this task; route to whoever owns bug-850 / ha-convergence-recovery. ha-term-safety 1.1/1.2 surface is fully green (vote+prevote+2 new capnp round-trip tests PASS); controller compiles+links again.",
"tags": [
"pre-existing",
"controller-test",
"bug-850",
"contiguity-guard",
"EAGAIN",
"wal-catchup",
"not-a-regression",
"ha-term-safety"
],
"related_bugs": [
"bug-850",
"bug-851"
],
"occurrences": 1,
"last_seen": "2026-06-22T03:10:06.653990Z"
},
{
"id": "bug-918",
"timestamp": "2026-06-22T03:30:00Z",
"error_message": "nix develop fails: hash mismatch for c-capnproto fixed-output derivation (expected sha256-9dzSc3w+yxYzsF/rZe3qIarKOpjt2zvIyjuS5FXngIM=, got sha256-9rTlcTia+s9ARGeTi+8auGvM0RkS+wZK7aIkzecaeSk=)",
"file": "src/flake.nix",
"root_cause": "flake pins c-capnproto to the MUTABLE github archive/main.tar.gz; upstream main branch advanced so the tarball content/hash drifted, breaking the fixed-output derivation. Only pre-cached nix stores still build.",
"fix": "RESOLVED: user refreshed src/flake.lock; fresh nix develop builds (capnproto 1.2.0). A clean controller rebuild made the full controller test suite green (Ok:1 Fail:0, 12.7s) \u2014 the earlier wal_catchup -EAGAIN/decode failures were a STALE incremental-build artifact (schema compiled against the drifted toolchain), not fsync or a source regression.",
"tags": [
"nix",
"flake",
"c-capnproto",
"env",
"build",
"worktree-isolation"
],
"related_bugs": [],
"occurrences": 1,
"last_seen": "2026-06-22T03:45:00Z"
}
]
}