fix: restore ready=false for unresolved model in TRITONSERVER_ServerModelIsReady - #508
Merged
Merged
Conversation
Contributor
|
Will approve if the changes are split into 2 PRs. Thanks! |
…odelIsReady #502 refactored ModelIsReady to take an already-resolved Model, moving the GetModel() lookup into TRITONSERVER_ServerModelIsReady with RETURN_IF_STATUS_ERROR. This changed the public contract: a model that was never loaded, was unloaded, or is unregistered now returns a NOT_FOUND error instead of ready=false. Before #502 the lookup failure was swallowed and the call returned ready=false with a success status. The regression surfaced as a failure in test_binding.py::test_server_explicit (and affects every model_is_ready caller, incl. KServe /ready endpoints and the Python in-process API). Treat an unresolvable model as not-ready again while keeping #502's resolved-Model path for the found case.
mc-nv
force-pushed
the
mchornyi/TRI-1529/model-is-ready-not-found-regression
branch
from
July 6, 2026 19:00
a6933ac to
25105e3
Compare
whoisj
approved these changes
Jul 7, 2026
mc-nv
marked this pull request as ready for review
July 8, 2026 17:17
whoisj
approved these changes
Jul 8, 2026
mc-nv
added a commit
that referenced
this pull request
Jul 8, 2026
…odelIsReady (#508) (#510) #502 refactored ModelIsReady to take an already-resolved Model, moving the GetModel() lookup into TRITONSERVER_ServerModelIsReady with RETURN_IF_STATUS_ERROR. This changed the public contract: a model that was never loaded, was unloaded, or is unregistered now returns a NOT_FOUND error instead of ready=false. Before #502 the lookup failure was swallowed and the call returned ready=false with a success status. The regression surfaced as a failure in test_binding.py::test_server_explicit (and affects every model_is_ready caller, incl. KServe /ready endpoints and the Python in-process API). Treat an unresolvable model as not-ready again while keeping #502's resolved-Model path for the found case.
Contributor
|
The change will discard genuine error from |
This was referenced Jul 8, 2026
Merged
20 tasks
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.
Description
TRITONSERVER_ServerModelIsReadyregressed in #502: a model that was neverloaded, has been unloaded, or is unregistered now returns a
NOT_FOUNDerrorinstead of
ready=false.#502 refactored
InferenceServer::ModelIsReadyto take an already-resolvedModel&and moved theGetModel()lookup up into the C-API function behindRETURN_IF_STATUS_ERROR. Before #502 the lookup failure was swallowed and thecall returned
ready=falsewith a success status. The refactor turned that"unknown model -> not ready" case into a hard error.
Impact -- every
model_is_readycaller:test_binding.py::test_server_explicitregressed:assert not server.model_is_ready(<unloaded model>)raisedNotFoundErrorinstead of evaluating).
/v2/models/{name}/readyHTTP/gRPC readiness endpoints.Changes
src/tritonserver.cc-- inTRITONSERVER_ServerModelIsReady, treat anunresolvable model as not-ready (
*ready = false, return success) instead ofsurfacing the lookup error, while keeping #502's resolved-
Modelpath for thefound case. This restores the pre-#502 public contract.
Test plan
python/test/test_binding.py::TestBindings::test_server_explicit(unchanged) exercises this exact path via its
assert not model_is_ready(<unloaded>)assertions -- it fails onmainandis expected to pass with this change. Confirming on the
L0_python_apijob.Follow-up
test) so this contract is guarded at the C-API level.
Note for reviewers
This branch temporarily includes the TRI-1527 wheel-packaging fix
(
fix(TRI-1527): don't vendor libtritonserver stub into python wheel) so thatthe
L0_python_apisuite can run at all -- without it the wheel crashes atTRITONSERVER_ServerOptions()before reaching the readiness assertion. Thatcommit ships separately in #507; once #507 merges this branch will be rebased
on
mainand thebuild_wheel.pychange will drop out, leaving only thesrc/tritonserver.ccreadiness fix.Related Issues: