myxce/src/controller
lei.chen fc091348e8 fix(controller): mark RUN jobs unknown on worker loss and restart (bug-1509 P2)
Phase 2 of the job-finish robustness design (Part B, B1+B3).

B1 (worker liveness): a worker that stops reporting (heartbeat timeout,
already detected by check_worker_timeout_) or disconnects now has its RUN
jobs marked JOB_STAT_UNKWN|JOB_STAT_TRANSIENT (transient_since set, durable
WAL_JOB_UPDATE) instead of lingering as RUN forever. Marking happens
AFTER the worker lock is released (B5: avoids worker->jobmgr inversion
with the scheduler's jobmgr->worker order).

B3 (restart): persist_recover marks all recovered RUN jobs UNKWN+TRANSIENT
in-memory after replay — a controller restart leaves worker connectivity
unknown. In-memory only (no WAL append) because persist_recover may run
on a future standby that must never append.

Unit tests (red->green): worker-loss marks its RUN jobs unknown, other-host
jobs untouched, restart marks all RUN jobs. test_replay_apply_seam updated:
replay still drives facts to RUN, then B3 adds UNKWN+TRANSIENT.
2026-08-06 05:57:59 +00:00
..
include fix(controller): mark RUN jobs unknown on worker loss and restart (bug-1509 P2) 2026-08-06 05:57:59 +00:00
testsuite fix(controller): mark RUN jobs unknown on worker loss and restart (bug-1509 P2) 2026-08-06 05:57:59 +00:00
apiserver.c fix(schema): rename struct Data -> XceData to unshadow capnp builtin blob type 2026-07-22 09:22:04 +00:00
CLAUDE.md docs(raft-adapter-conformance): extend controller conformance record with this feature's findings 2026-07-30 03:39:56 +00:00
cluster.c fix(controller): mark RUN jobs unknown on worker loss and restart (bug-1509 P2) 2026-08-06 05:57:59 +00:00
commit.c feat(raft-apply-decoupling): ordered live apply pump activates apply_committed_entry (task 6.1) 2026-07-04 19:00:43 +00:00
config_repl.c fix(controller): trim config versions by ns mtime; unique test tmpdir 2026-08-01 03:34:55 +00:00
config_repl.h feat(raft-adapter-conformance): send explicit reply on every config-push outcome 2026-07-29 09:43:35 +00:00
ctrl_metrics.c feat: P3-7 ctrl_metrics — 7 atomic counters/gauges + descriptor table + persist wiring 2026-05-08 00:04:06 +00:00
ctrlstatus.c feat(ha-heartbeat-committed-propagation): migrate last_known_committed_config_tag to _Atomic (task 1.1) 2026-06-20 11:27:46 +00:00
dataex.c fix(persist): zero nresvals_to_sched after free_name_val_list 2026-05-20 09:39:07 +00:00
egress.c feat(ha-convergence-recovery): commit-gated scheduler egress — submit_lsn tagging + watermark gate (task 1.2) 2026-06-14 02:33:36 +00:00
ha.c docs(raft-adapter-conformance): document dormant AppendEntries sender + non-regression guard 2026-07-29 15:04:07 +00:00
ha.h docs(raft-adapter-conformance): document dormant AppendEntries sender + non-regression guard 2026-07-29 15:04:07 +00:00
ha_convergence.c fix(controller): bug-1450/1451 offload delaymgr-inline blocking work to the slow lane 2026-07-19 08:14:00 +00:00
job.c fix(controller): mark RUN jobs unknown on worker loss and restart (bug-1509 P2) 2026-08-06 05:57:59 +00:00
join.c fix(controller): bug-1433 async-thread fdatasync block + bug-1434 committed_lsn CAS race 2026-07-11 12:16:28 +00:00
main.c fix(config): serialize load_primary_config against concurrent invocations (bug-1476) 2026-07-28 08:13:54 +00:00
meson.build feat(raft-adapter-conformance): wire term-adoption into primary-side config-push reply handler 2026-07-29 10:56:48 +00:00
misc.c save works 2026-03-05 16:03:37 +08:00
myapp.c fix(ha): retry cluster_init_phase2 on failure instead of latching phase2_done unconditionally (bug-1477) 2026-07-28 13:25:48 +00:00
myconf.c fix(config): serialize load_primary_config against concurrent invocations (bug-1476) 2026-07-28 08:13:54 +00:00
opget.c fix(schema): rename struct Data -> XceData to unshadow capnp builtin blob type 2026-07-22 09:22:04 +00:00
opupd.c save works 2026-03-03 16:49:26 +08:00
persist.c fix(controller): mark RUN jobs unknown on worker loss and restart (bug-1509 P2) 2026-08-06 05:57:59 +00:00
queue.c feat(ha-commit-barrier-rollout): commit-first-then-reply in all four handlers (task 3.2) 2026-06-12 10:28:25 +00:00
repl.c fix(ha): close permanent quorum-loss deadlock on log-conflicted standby (bug-1479) 2026-07-29 04:11:32 +00:00
reply.c fix(persist): zero nresvals_to_sched after free_name_val_list 2026-05-20 09:39:07 +00:00
resources.c update controller code 2025-11-05 16:58:57 +08:00
sched.c fix(controller,worker): sched worker resval UAF + execuser fallback to nobody 2026-08-05 03:40:09 +00:00
slowlane.c feat(raft-drive-async): SlowLane bounded executor for long blocking I/O (task 1.2) 2026-06-26 05:24:00 +00:00
startup_validation.c feat(ha-heartbeat-liveness): add validate_heartbeat_config startup check (task 1.2) 2026-06-01 12:26:29 +00:00
task.c save works 2026-03-04 18:18:53 +08:00
worker.c fix(controller): mark RUN jobs unknown on worker loss and restart (bug-1509 P2) 2026-08-06 05:57:59 +00:00