Skip to content

fix(discovery): backport served model aliases to 1.5 (#14857) - #14917

Merged
nv-nmailhot merged 2 commits into
release/1.5.0from
jthomson04/cp-14857-release-1.5.0
Sep 16, 2026
Merged

nv-nmailhot merged 2 commits into
release/1.5.0from
jthomson04/cp-14857-release-1.5.0

Conversation

@jthomson04

Copy link
Copy Markdown
Contributor

Summary

Backport #14857 to release/1.5.0. Workers that use the same non-empty model source path can register different, non-overlapping served names on one endpoint. Each served name selects its own worker group. Base/LoRA name collisions remain rejected.

Details

  • Cherry-pick of a5c242e8269737313bdac98ef82822e6f04b99b9; applied without conflicts. Production changes are unchanged from the source PR.
  • Adapt the test to release APIs: omit DistributedConfig::response_plane and use the loopback interface name for the TCP response stream.
  • Check removal of one model registration and routing to the remaining alias before transport cleanup. Release 1.5 endpoint shutdown removes all same-name handlers in one process, so the two mock workers must defer that cleanup. This regression covers model removal; it does not verify independent shutdown of shared-process TCP endpoints.
  • Preserve equal-primary-name compatibility, exact source-path comparison, and the existing model-card checksum and admission rules.
  • The release branch has the required model-specific worker admission filter. Upgrade frontends and all participating workers to versions with that filter and this fix before enabling different primary served names on a shared endpoint.

Where should the reviewer start?

lib/runtime/src/discovery/mod.rs for registration compatibility, then the regression tests in lib/runtime/src/discovery/mock.rs and lib/llm/src/discovery/watcher.rs.

Related Issues

Validation

Run locally on the release backport with default test parallelism:

  • cargo test -p dynamo-runtime --no-default-features --lib discovery::mock::tests — 15 passed.
  • cargo test -p dynamo-llm --no-default-features --lib discovery::watcher::tests — 23 passed. Includes two classify workers using file discovery and TCP requests, separate alias routing, and removal of one model registration.
  • cargo fmt --all -- --check and git diff --check HEAD^ HEAD — passed.

No GPU/vLLM end-to-end test was run.

Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
(cherry picked from commit a5c242e)
Signed-off-by: jthomson04 <jwillthomson19@gmail.com>
@github-actions github-actions Bot added the fix label Sep 16, 2026
@jthomson04
jthomson04 marked this pull request as ready for review September 16, 2026 03:42
@jthomson04
jthomson04 requested a review from a team as a code owner September 16, 2026 03:42
} else if self.is_lora {
self.base_identity() == other.base_identity()
} else {
// Preserve existing same-name registration compatibility across local model paths.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This only restates the immediately following equal-display_name condition. “Existing” compatibility does not identify a lasting constraint beyond what the code already expresses.

🤖 AI Fix

Remove this comment.

@nv-nmailhot
nv-nmailhot merged commit 55589a5 into release/1.5.0 Sep 16, 2026
109 of 114 checks passed
@nv-nmailhot
nv-nmailhot deleted the jthomson04/cp-14857-release-1.5.0 branch September 16, 2026 23:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants