myxce/.kiro
Rongsong Shen e52c68f471
fix(controller): admission-gate OPCode_schedAdmin's blocking wait (Req 5 AC 10)
The schedAdmin dispatch case blocks its vtask handler thread for up to 5s
waiting on a cross-process reply while holding c->sched.lock -- bounded
blocking on a vtask thread, which ha-async-io.md permits only under an
admission reservation. The real risk isn't just the wait itself: since
c->sched.lock serializes concurrent requests one at a time, a burst of N
concurrent schedAdmin calls could already occupy N vtask threads for up to
N*5s each before this fix.

Now acquires vtaskmgr_blocking_acquire(&c->vtaskmgr) before ever locking
c->sched.lock, releasing on every exit path -- the same shared admission
budget commit.c's commit-wait barrier already gates on (wired via
commit_set_pool). Admission-exhausted requests fast-reject with
{ok=false, error="server busy, try again"} rather than queuing. New test:
test_schedadmin_fast_rejects_when_admission_exhausted, using a poison
c->sched.ep sentinel to prove the fast-reject happens before any
lock/forward attempt.
2026-08-19 11:00:49 +00:00
..
settings finalize configuration replication 2026-06-09 16:40:13 +08:00
specs fix(controller): admission-gate OPCode_schedAdmin's blocking wait (Req 5 AC 10) 2026-08-19 11:00:49 +00:00
steering fix(worker): dbus_workers_update() starves workers after first DONE/EXITED (bug-1589) 2026-08-19 09:48:23 +00:00