Skip to content

th#1055: desired-hot warm works on slot-only endpoints; refusals emit model events (0.50.2)#379

Merged
PaulFidika merged 2 commits into
masterfrom
release/th1055-desired-hot
Jul 23, 2026
Merged

th#1055: desired-hot warm works on slot-only endpoints; refusals emit model events (0.50.2)#379
PaulFidika merged 2 commits into
masterfrom
release/th1055-desired-hot

Conversation

@PaulFidika

Copy link
Copy Markdown
Contributor

Root cause of the fleet-wide silent warmup stall (th#1055 / th#1044 item 4 / th#1049 ltx deadlock / th#1059 worker silence):

ensure_desired_instance required the hot instance's binding set to EQUAL spec.models. Deploy-bound Slots (ie#524/th#980) carry no code default, so spec.models is EMPTY on every fleet endpoint (qwen, sdxl, ltx, z-image, ernie, klein, anima, hidream) — every hub hot intent (gw#587 self-mint prewarm, th#912 slot-default seeding, #567 compile-cell reload) raised ValidationError("must bind exactly []"), swallowed by _reconcile_pass as one pod-local warning. No warmup, no self-mint, zero events, 0% VRAM; the th#868 mandatory-w8a8 fence never opened and precompiled cells never armed.

Live evidence (master hub log, worker d7bfd1ea / pod rjvp3srr8s7zsh): hot intent HelloAck (desired_generation=3 disk=2 hot=1) sent 20:09:02Z one second after the last fp8 download hit disk, then 95 minutes of total worker silence until cold_idle_never_dispatched.

Fix:

  • validate against the declared slot set (spec.models | spec.slots); missing slots acceptable only when a code default fills them (dispatch's own fallback semantics)
  • declared-space hot bindings remap through the HelloAck precision picks (hello_ack.go th#697 "hot bindings stay declared" contract) so the warm derives the SAME per-pick instance key a dispatch derives
  • EVERY desired-instance failure — including pre-setup validation refusals — emits MODEL_STATE_FAILED for the instance refs: the never-logs stall is impossible

Tests: tests/test_desired_hot_th1055.py (4 tests, revert-turns-red verified against the pre-fix executor). Full suite green locally (663 passed; one known-flaky zero-cpu watchdog test failed once under box load, passes on rerun).

🤖 Generated with Claude Code

… model events (0.50.1)

ensure_desired_instance required the hot instance's binding set to equal
spec.models, but deploy-bound Slots (ie#524/th#980) have no code default so
spec.models is empty fleet-wide — every hub hot intent (gw#587 self-mint
prewarm, th#912 seeding, #567 cell reload) failed a ValidationError that
_reconcile_pass swallowed as one pod-local warning: no warmup, no
self-mint, the th#868 w8a8 fence never opened, cells never armed.

- validate against the declared slot set; code defaults may fill their own
- declared-space hot bindings remap through the HelloAck precision picks
- every desired-instance failure emits MODEL_STATE_FAILED for the
  instance refs (the silent stall is now impossible)
@PaulFidika
PaulFidika merged commit 16ba0bd into master Jul 23, 2026
1 check passed
@PaulFidika
PaulFidika deleted the release/th1055-desired-hot branch July 23, 2026 23:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant