fix: GPUReset job creation failures and invalid partial drains#1500
Merged
Conversation
Contributor
|
🌿 Fern Docs Preview: https://nvidia-preview-pull-request-1500.docs.buildwithfern.com/nvsentinel |
Contributor
Merging this branch will increase overall coverage
Coverage by fileChanged files (no unit tests)
Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code. Changed unit test files
|
Signed-off-by: Nathan Herz <nherz@nvidia.com>
Contributor
Merging this branch will increase overall coverage
Coverage by fileChanged files (no unit tests)
Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code. Changed unit test files
|
lalitadithya
approved these changes
Jul 19, 2026
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.
Summary
This PR fixes 2 issues that can cause GPU resets to fail.
Ensure that GPU reset job names are valid RFC 1123 subdomain names. Depending on the node name, it was possible for the job name truncation logic in gpu_reset_controller.go to generate an invalid job name. Specifically, it was possible for the truncation to result in the the character sequence ".-" which cannot be included in an RFC 1123 subdomain name. This would result in the controller continually failing to create the GPU reset job. This phase of a GPU reset does not have a timeout and the CRD would never make it to a terminal state. Example node name and derived job name:
a. Node name: maintenance-ip-10-1-115-210.us-east-2.compute.internal-6fca3f52-abcd1234
b. Old job name: maintenance-ip-10-1-115-210.us-east-2.-2bba20f7-reset-job
c. New job name: maintenance-ip-10-1-115-210.us-east-2-2bba20f7-reset-job
Ensure that partial drains do not skip pods stuck terminating or NotReady pods. Previously, full and partial drains would skip draining any pods which have a terminal status (failed/succeeded), are stuck terminating, or are NotReady. A pod which is stuck terminating or NotReady may still have running processes with GPU contexts. While reboot remediations would not be blocked on these processes, it's possible that a pod in this state could cause a GPU reset to fail. As a result, we will ensure that pod objects which are targeted by a partial drain are removed or in a terminal status prior to considering the drain as completed.
This sequence is especially problematic with COMPONENT_RESET remediations which are triggered from the gpu-health-monitor. We observed the following sequence:
Alternative mitigations would be to either:
Type of Change
Component(s) Affected
Testing
Checklist