Skip to content

fix(nvlink): refresh NVL domain UUIDs for machines - #4525

Merged
jayzhudev merged 1 commit into
NVIDIA:mainfrom
jayzhudev:fix/machine-nvl-domain-uuid-update
Aug 4, 2026
Merged

fix(nvlink): refresh NVL domain UUIDs for machines#4525
jayzhudev merged 1 commit into
NVIDIA:mainfrom
jayzhudev:fix/machine-nvl-domain-uuid-update

Conversation

@jayzhudev

Copy link
Copy Markdown
Contributor

NvlPartitionMonitor refreshes NVL domain UUIDs for switches after each valid NMX-C Hello, but machines' NVL domain UUIDs were only populated when missing or nil. After an NVL domain UUID change, machines could therefore retain stale UUIDs.

This change updates machines' NVL domain UUIDs whenever a valid NMX-C Hello reports a different value.

Related issues

Supports #4397

Type of Change

  • Add - New feature or capability
  • Change - Changes in existing functionality
  • Fix - Bug fixes
  • Remove - Removed features or deprecated functionality
  • Internal - Internal changes (refactoring, tests, docs, etc.)

Breaking Changes

  • This PR contains breaking changes

Testing

  • Unit tests added/updated
  • Integration tests added/updated
  • Manual testing performed
  • No testing required (docs, internal refactor, etc.)

@jayzhudev jayzhudev self-assigned this Aug 4, 2026
@jayzhudev
jayzhudev requested a review from a team as a code owner August 4, 2026 06:18
@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 20e00854-f845-43d2-8859-ac64d38038cd

📥 Commits

Reviewing files that changed from the base of the PR and between 39d24a8 and ec35089.

📒 Files selected for processing (1)
  • crates/nvlink-manager/src/lib.rs
🚧 Files skipped from review as they are similar to previous changes (1)
  • crates/nvlink-manager/src/lib.rs

Summary by CodeRabbit

  • Bug Fixes
    • Invalid nil domain UUIDs are now rejected during NMX-C Hello message processing.
    • Machine NVLink information now updates when the observed domain UUID changes.
    • Unchanged domain information is preserved without unnecessary updates.
    • Chassis serial numbers can now be recovered from previously saved machine data when unavailable in current snapshots.
    • Machines without a serial number in either source are safely skipped.

Walkthrough

The NVLink manager rejects nil Hello domain UUIDs. It updates machine NVLink information when the domain changes or chassis serial data is missing. It falls back to persisted serial data and skips machines without serial data. Tests cover these cases.

Changes

NVLink domain and serial synchronization

Layer / File(s) Summary
Hello UUID validation and assignment
crates/nvlink-manager/src/lib.rs
Hello parsing rejects malformed and nil domain UUIDs. Existing machine NVLink information receives the validated domain UUID.
Machine NVLink refresh and serial fallback
crates/nvlink-manager/src/lib.rs
Refresh logic updates changed domain data, resolves chassis serials from snapshots or persisted data, skips machines without either source, and preserves unchanged data. Tests cover the supported cases.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the main change: refreshing NVLink domain UUIDs for machines.
Description check ✅ Passed The description directly explains the stale UUID bug, the fix, related issue, and testing performed.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@crates/nvlink-manager/src/lib.rs`:
- Line 236: Update process_nmx_c_partition_monitor_group and the
existing-machine comparison around MachineNvLinkInfo so a missing snapshot
chassis serial falls back to the persisted chassis serial, allowing stale domain
UUIDs to be detected and refreshed. Add a scenario covering an absent snapshot
serial with a differing persisted domain UUID, and verify the machine
information is updated.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: b8dcb6e5-8e94-43ad-a4b6-700d8f85f500

📥 Commits

Reviewing files that changed from the base of the PR and between 92c363a and 39d24a8.

📒 Files selected for processing (1)
  • crates/nvlink-manager/src/lib.rs

Comment thread crates/nvlink-manager/src/lib.rs
@jayzhudev
jayzhudev force-pushed the fix/machine-nvl-domain-uuid-update branch from 39d24a8 to ec35089 Compare August 4, 2026 06:50
@jayzhudev
jayzhudev enabled auto-merge (squash) August 4, 2026 07:10
@jayzhudev
jayzhudev merged commit c866756 into NVIDIA:main Aug 4, 2026
63 checks passed
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