myxce/.kiro/specs
Rongsong Shen 2a205291c0
feat(component-failover-adoption): add apiserver's rejoin logic with correctly-placed cgo registration
Registers a rejoin flag-setter (go_backend_rejoin_handler) as the
client library's reconnect callback: zero I/O, sets an atomic flag,
returns immediately -- avoiding self-deadlock on the library's
per-ctx failover lock the same way worker's and scheduler's rejoin
callbacks already do. The C shim, its extern declaration, and the
xcecli_set_reconnect_handler() registration call all live together in
clib.go's xce_backend_init(), placed after xcecli_start()'s success
check (xcecli_start() wipes any earlier-registered handler as part of
its own init -- the same ordering bug found and fixed in worker's/
scheduler's task 2.3/3.1 work).

A shared checkAndPerformRejoin() helper wraps every gCtx.ctx-based
backend call (SubmitJob, ControlJob, ControlQueue, ControlHost,
FetchFile): after the call returns, if a rejoin is pending, issue
xcecli_join() as a separate step and clear the flag only on success --
on failure it stays set so the next backend call's return retries it,
no separate retry loop.

needsRejoin is a proper sync/atomic flag rather than a plain bool,
since apiserver (unlike the single-threaded C daemons) serves
concurrent HTTP requests that can all reach the shared helper at once.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NNB4zGPCsHyDUCDJyMbiQN
2026-08-12 09:16:19 +00:00
..
admin-config-tool fix(security): replace exposed admin credential with placeholder 2026-07-31 03:31:23 +00:00
clusterconfig-schema-split update documents 2026-08-10 17:51:51 +08:00
component-failover-adoption feat(component-failover-adoption): add apiserver's rejoin logic with correctly-placed cgo registration 2026-08-12 09:16:19 +00:00
config-upgrade-snapshot docs(config-upgrade-snapshot): add host admin-state frames, capnp migration, clear bug-1418 blocker 2026-07-31 09:32:24 +00:00
controller-status update documents 2026-08-10 17:51:51 +08:00
election-iomgr-refactor update documents 2026-08-10 17:51:51 +08:00
ha-commit-barrier-rollout update documents 2026-08-10 17:51:51 +08:00
ha-commit-durability update documents 2026-08-10 17:51:51 +08:00
ha-commit-engine update documents 2026-08-10 17:51:51 +08:00
ha-config-bootstrap update documents 2026-08-10 17:51:51 +08:00
ha-consistency-invariants update documents 2026-08-10 17:51:51 +08:00
ha-convergence-recovery update documents 2026-08-10 17:51:51 +08:00
ha-elect-ctx-lifecycle update documents 2026-08-10 17:51:51 +08:00
ha-entity-snapshots update documents 2026-08-10 17:51:51 +08:00
ha-heartbeat-committed-propagation update documents 2026-08-10 17:51:51 +08:00
ha-heartbeat-liveness update documents 2026-08-10 17:51:51 +08:00
ha-peer-connection-reuse update documents 2026-08-10 17:51:51 +08:00
ha-prevote update documents 2026-08-10 17:51:51 +08:00
ha-repl-hardening update documents 2026-08-10 17:51:51 +08:00
ha-single-leader-role docs: fix unchecked group-header checkboxes across 8 fully-implemented specs 2026-07-07 08:45:41 +00:00
ha-term-safety docs(raft-adapter-conformance): extend controller conformance record with this feature's findings 2026-07-30 03:39:56 +00:00
ha-wal-replication update documents 2026-08-10 17:51:51 +08:00
job-array-single-wal-record fix: bug-1445 -- first-boot promotion check races its own first replay 2026-07-17 10:42:13 +00:00
libxce-failover docs(specs): kiro-validate-impl GO closure for 8 HA/raft specs 2026-07-18 13:27:36 +00:00
raft-adapter-conformance docs(raft-adapter-conformance): commit final design.md/research.md and requirements/spec.json state 2026-07-31 09:29:35 +00:00
raft-apply-decoupling fix(controller): bug-1433 async-thread fdatasync block + bug-1434 committed_lsn CAS race 2026-07-11 12:16:28 +00:00
raft-commit-safety docs: promote raft-apply-decoupling spec family from /kiro-discovery 2026-07-03 02:41:11 +00:00
raft-drive-async fix(netio): bug-1447 same-batch endpoint use-after-free in io_worker dispatch 2026-07-18 13:28:04 +00:00
raft-ha-core-safety fix(controller): bug-1433 async-thread fdatasync block + bug-1434 committed_lsn CAS race 2026-07-11 12:16:28 +00:00
raft-library checkpoint: bug-851 root cause + raft TLA+ conformance spec family 2026-06-21 14:02:15 +00:00
raft-log-replication docs: promote raft-apply-decoupling spec family from /kiro-discovery 2026-07-03 02:41:11 +00:00
raft-sim-conformance docs(specs): kiro-validate-impl GO closure for 8 HA/raft specs 2026-07-18 13:27:36 +00:00
resource-distribution-mapping add resource distribution map project 2026-07-23 09:20:26 +00:00
resval-id-decoupling checkpoint: bug-851 root cause + raft TLA+ conformance spec family 2026-06-21 14:02:15 +00:00
scheduler-allocation add scheduler related projects 2026-07-31 17:42:13 +08:00
scheduler-controller-msg-gap checkpoint: bug-851 root cause + raft TLA+ conformance spec family 2026-06-21 14:02:15 +00:00
scheduler-core docs(scheduler-core): commit accumulated brief/requirements/roadmap edits 2026-08-08 03:19:14 +00:00
scheduler-framework add scheduler related projects 2026-07-31 17:42:13 +08:00
scheduler-preemption add scheduler related projects 2026-07-31 17:42:13 +08:00
worker-join-refactor checkpoint: bug-851 root cause + raft TLA+ conformance spec family 2026-06-21 14:02:15 +00:00
xce-test-e2e-primitives fix(controller): bug-1433 async-thread fdatasync block + bug-1434 committed_lsn CAS race 2026-07-11 12:16:28 +00:00
.gitignore chore: baseline snapshot — prior-session work + ha-consistency-invariants spec family 2026-06-11 13:21:50 +00:00