myxce/.kiro/specs
Rongsong Shen 05c45ef3c8
feat(scheduler-dispatch-commit): controller resolves retryable dispatch failures with bounded escalation (task 3.3)
The four retryable-classified failure sites in dispatch_a_job_() (worker
lookup, worker null, worker not ready, RPC failure) now resolve instead
of just returning an error code: lock(j, RTTI_LOCK_WRITE) -> genuinely
classify via xce_classify_dispatch_fail() -> increment dispatch_fail_count
-> within XCE_DISPATCH_FAIL_RETRY_BOUND (3) resolves retryable (nothing
further under the lock), past it resolves terminal via mark_job_fail()
exactly like task 3.2's sites -> unlock(j) -> dereference(j) (closing
bug-1627's 4-site reference leak) -> outside the lock, notify_dispatch()
fires only on the retryable outcome. Each site's natural error code is
captured into a stable local before any intervening call, since errno
isn't guaranteed stable once lock()/ERROR()/free_launchinfo() sit between
the original failure and the eventual return.

handle_jobdispatch() is intentionally untouched -- it still unconditionally
calls notify_dispatch() itself for every outcome, so the retryable path
now temporarily double-notifies until task 4.1 removes that caller-side
call. Expected, not a defect.

New test_dispatch_fail_retry.c (4 tests, including a bounded-escalation
test driving 4 consecutive RPC failures on the same job: 3rd retries,
4th resolves EXIT) plus a fixed stale assertion in test_dispatch_commit.c
and additive, read-only notify-capture accessors in
test_commit_barrier_reply.c (the binary's sole notify() stub host).

Independently reviewed and approved, including explicit scrutiny of the
cross-file test accessor addition and the stale-assertion fix -- both
confirmed legitimate, not scope creep or regression-hiding.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Cxa1PmqAB5PyXfJaNvj8TN
2026-08-23 17:37:07 +00:00
..
admin-config-tool docs(admin-config-tool): close task 6.3, mark spec implementation-complete 2026-08-16 11:13:37 +00:00
build-time-versioning test(build-time-versioning): add xceadmin end-to-end build/install/version cycle check 2026-08-20 17:02:01 +00:00
clusterconfig-schema-split update documents 2026-08-10 17:51:51 +08:00
component-failover-adoption docs(kiro): reconcile spec metadata, promote 3 new specs, fix template path 2026-08-16 11:02:06 +00:00
component-rejoin-resync docs(kiro): reconcile spec metadata, promote 3 new specs, fix template path 2026-08-16 11:02:06 +00:00
config-upgrade-snapshot docs(kiro): reconcile spec metadata, promote 3 new specs, fix template path 2026-08-16 11:02:06 +00:00
controller-status update documents 2026-08-10 17:51:51 +08:00
dirty-content-fingerprint docs(dirty-content-fingerprint): mark task 2 container checkbox complete 2026-08-21 11:13:17 +00: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 docs(kiro): close 3 stalled specs whose follow-up work already landed 2026-08-16 12:13:15 +00: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(kiro): reconcile spec metadata, promote 3 new specs, fix template path 2026-08-16 11:02:06 +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
resource-value-verification docs(resource-value-verification): close design-review doc/comment gaps 2026-08-19 11:00:57 +00:00
resval-id-decoupling docs(kiro): close 3 stalled specs whose follow-up work already landed 2026-08-16 12:13:15 +00:00
scheduler-allocation add scheduler related projects 2026-07-31 17:42:13 +08:00
scheduler-controller-msg-gap docs(kiro): close 3 stalled specs whose follow-up work already landed 2026-08-16 12:13:15 +00:00
scheduler-core chore: sync harness/session state and OpenWolf bookkeeping 2026-08-22 02:48:22 +00:00
scheduler-dispatch-commit feat(scheduler-dispatch-commit): controller resolves retryable dispatch failures with bounded escalation (task 3.3) 2026-08-23 17:37:07 +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
scheduler-sim-decision-parity chore(scheduler-sim-decision-parity): mark feature complete 2026-08-22 13:11:34 +00:00
scheduler-sim-diagnostics docs(kiro): reconcile spec metadata, promote 3 new specs, fix template path 2026-08-16 11:02:06 +00:00
scheduler-sim-repl-verbosity docs(scheduler-sim-repl-verbosity): add approved spec (requirements/design/tasks) 2026-08-22 02:45:52 +00:00
worker-join-refactor checkpoint: bug-851 root cause + raft TLA+ conformance spec family 2026-06-21 14:02:15 +00:00
worker-rejoin-resync docs(kiro): reconcile spec metadata, promote 3 new specs, fix template path 2026-08-16 11:02:06 +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