Skip to content

Restore model probe for service routers - #4322

Merged
un-def merged 1 commit into
masterfrom
pr_restore_model_chat_probe_for_sglang_router
Sep 29, 2026
Merged

un-def merged 1 commit into
masterfrom
pr_restore_model_chat_probe_for_sglang_router

Conversation

@un-def

@un-def un-def commented Sep 29, 2026

Copy link
Copy Markdown
Collaborator

Since #4270, a router replica of a service with model and no probes was probed with GET /health instead of the chat completions request. The latter deadlocked: the router only answers it once workers are registered, and the worker sync skipped routers that were not ready. #4313 dropped the readiness check from the sync, so this deadlock is gone.

/health passes before the router has any workers. In a rolling deployment, the replacement router was considered ready, and the old one was scaled down, before the replacement could serve requests. Now that #4320 syncs workers with every running router, the replacement passes the chat completions probe once it has workers.

Workers behind a router still get no default probe, as they may not serve HTTP at all (gRPC workers).

With a Dynamo router, a router rolling deployment now waits for the replacement indefinitely instead of scaling down the old router, as workers stay attached to the old router's etcd/NATS. Such deployments were broken before as well and are to be fixed separately.

Since #4270, a router replica of a service with `model` and no
`probes` was probed with `GET /health` instead of the chat completions
request. The latter deadlocked: the router only answers it once
workers are registered, and the worker sync skipped routers that were
not ready. #4313 dropped the readiness check from the sync, so this
deadlock is gone.

`/health` passes before the router has any workers. In a rolling
deployment, the replacement router was considered ready, and the old
one was scaled down, before the replacement could serve requests. Now
that #4320 syncs workers with every running router, the replacement
passes the chat completions probe once it has workers.

Workers behind a router still get no default probe, as they may not
serve HTTP at all (gRPC workers).

With a Dynamo router, a router rolling deployment now waits for the
replacement indefinitely instead of scaling down the old router, as
workers stay attached to the old router's etcd/NATS. Such deployments
were broken before as well and are to be fixed separately.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@un-def
un-def merged commit f3de2e5 into master Sep 29, 2026
26 checks passed
@un-def
un-def deleted the pr_restore_model_chat_probe_for_sglang_router branch September 29, 2026 11:45
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