Add the readiness probe vocabulary for services: tcp, http, log - #403
Closed
ishandhanani wants to merge 1 commit into
Closed
ishandhanani wants to merge 1 commit into
ishandhanani wants to merge 1 commit into
Conversation
ishandhanani
marked this pull request as ready for review
September 7, 2026 19:17
ishandhanani
requested review from
alec-flowers,
csahithi,
hjjq,
kedarpotdar-nv,
kyleliang-nv,
nlevin-ui and
qiching
as code owners
September 7, 2026 19:17
Closed
services[].readiness names exactly one probe: tcp (a port accepts a connection; `port:` alone is shorthand), http (GET a path on a port and expect a status), or log (a regular expression matched against the service's log file), plus timeout_seconds and interval_seconds. The generic wait loop in core/readiness.py re-runs the probe until it passes, the deadline expires, or the process dies, so a crashed service fails at once instead of after the full timeout. The global health_check block and the worker and frontend health checks are untouched, per the schema design: this fixes the silent-dead-sidecar class without touching the 377 downstream recipes that set health_check. The services example now gates on an http probe against the log browser's directory listing.
ishandhanani
force-pushed
the
idhanani/srt2-13-readiness
branch
from
September 8, 2026 03:53
03fc94f to
a032886
Compare
Collaborator
Author
|
Consolidated into #407, which carries these same commits as one PR against main (this description is reproduced there as one of its parts). Closing to keep review in one place; the branch stays for per-step reference via stack #398. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #400 (Track 2 step 8 of #385). Draft until the stack below it merges.
What
services[].readinessgains the probe vocabulary from the schema design: exactly one ofplus
timeout_seconds(default 120) andinterval_seconds(default 2). The generic wait loop incore/readiness.pyre-runs the probe until it passes, the deadline expires, or the process dies, so a crashed service fails the job at once with its exit code instead of after the full timeout. The port-collision check now keys on the port atcporhttpprobe implies.Per the design, the global
health_checkblock and the worker and frontend health checks are untouched: this fixes the silent-dead-sidecar class (NVIDIA/InferenceMAX#271) without touching the downstream recipes that sethealth_check.Also
examples/features/services.yamlnow gates on anhttpprobe against the log browser's directory listing.tests/test_readiness.pycovers the schema (shorthand, exactly-one, invalid regex/path/interval), each probe, and the wait loop with a fake clock (retries, fail-fast on death, clipped final sleep).tests/test_services.pyupdated for the probe API.docs/services.md, config-reference row, regenerated schema reference.Validation
http://<node>:9911/ -> 200came ready after 40s, the benchmark completed, and the job finished clean (3m25s).