--- id: "bug-1281" status: "fixed" status_updated: "2026-09-24" status_note: "" component: "unknown" severity: "crash" timestamp: "2026-06-30T03:25:00Z" last_seen: "2026-09-19T09:00:00Z" occurrences: 3 files: ["src/controller (restart/recovery/election path — exact site unknown", "no backtrace)"] tags: ["7.2", "iomgr", "gdb", "election", "crash", "5.4", "restart", "recovery", "heisenbug", "accept-hang", "restart-stability", "segfault", "chaotic-soak"] related: ["bug-1272", "bug-1282", "bug-924"] legacy: true --- # bug-1281: Restart-stability bug: a restarted xce_controller becomes unable to participate at chaotic round… ## Description Restart-stability bug: a restarted xce_controller becomes unable to participate at chaotic round 4. Release build SIGSEGVs ('Segmentation fault (core dumped) --myname ctrl-3'); under gdb the SAME corruption manifests as a WEDGED inbound-accept/iomgr path (last accept 03:42:03 while the election timer keeps firing) so two restarted survivors can't exchange PreVotes -> permanent round-N election stall. ## Environment _Not recorded (migrated from buglog.json)._ ## Reproduction _Not recorded (migrated from buglog.json)._ ## Root cause ROOT-CAUSED via gdb SIGQUIT all-thread bt: an ABBA lock-order deadlock in src/lib async dispatch. io_worker (netio.c:672) holds ep->lock then blocks on q->lock (dataq_enq); vdispatcher dataq_deq (dataq.c:65) holds q->lock then blocks on ep->lock via the vtask_eligible->endpoint_is_task_blocked (netio.c:1001) match callback. io_worker dies -> node stops accepting/answering PreVotes -> round-4 stall. In release the same ep/q race corrupts -> SIGSEGV. See bug-1282 (the actual dispatch defect). ## Fix The crash/hang IS bug-1282 (UPSTREAM raft-drive-async dispatch deadlock). raft-ha-core-safety 7.2 stays blocked until bug-1282 is fixed upstream, then re-run the gate. No raft-ha-core-safety code change. ## Verification _Not recorded (migrated from buglog.json)._ ## References - Related: bug-1272, bug-1282, bug-924