[None][infra] Log infra-retry classify declines instead of silent rethrow - #17432
[None][infra] Log infra-retry classify declines instead of silent rethrow#17432brnguyen2 wants to merge 4 commits into
Conversation
…hrow When a stage or pod/agent launch failure does not match any pattern in FailureClassifier's catalog, runKubernetesPodWithInfraRetry and the SLURM retry loop classify it as a user failure and rethrow with no log output. A misclassified infra event (for example a pod-scheduling timeout whose exception type is missing from the catalog) then leaves no trace: no [INFRA-RETRY] line to grep for, and no way to tell a deliberate retry-decline from the retry wrapper never running. Add one echo before each of the three silent rethrow sites (K8s launch loop, K8s execution loop, SLURM loop) stating the stage, the decline reason, and the exception text. Signed-off-by: Brian Nguyen <brnguyen@nvidia.com>
WalkthroughSLURM and Kubernetes retry loops now log unmatched failure classifications and exception details before rethrowing non-infrastructure failures. The integration test waiver list now skips the pending ChangesRetry failure diagnostics
Estimated code review effort: 1 (Trivial) | ~5 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
🧪 Generate unit tests (beta)
Comment |
|
/bot run |
|
PR_Github #64783 [ run ] triggered by Bot. Commit: |
|
PR_Github #64783 [ run ] completed with state
|
|
/bot run |
|
PR_Github #64787 [ run ] triggered by Bot. Commit: |
|
PR_Github #64787 [ run ] completed with state
|
…2[unittest/llmapi/test_llm_pytorch.py -m "part3"] (pre-existing failure, tracking bug pending) Signed-off-by: Brian Nguyen <brnguyen@nvidia.com>
|
/bot run |
|
PR_Github #64862 [ run ] triggered by Bot. Commit: |
|
PR_Github #64862 [ run ] completed with state
|
Signed-off-by: Brian Nguyen <brnguyen@nvidia.com>
|
/bot run |
|
PR_Github #64930 [ run ] triggered by Bot. Commit: |
|
PR_Github #64930 [ run ] completed with state
|
Description
When a stage failure or a pod/agent launch failure does not match any pattern in
FailureClassifier's catalog,runKubernetesPodWithInfraRetry(both the launch loop and the execution loop) and the SLURM retry loop classify it as a user failure and rethrow with no log output. If an infra event's exception type is missing from the catalog (for example, a pod-scheduling timeout such asKubernetesClientTimeoutException), the failure leaves no trace: there is no[INFRA-RETRY]line to grep for, and from the console it is impossible to distinguish "the classifier saw this and declined to retry" from "the retry wrapper never ran".This came out of triaging a pre-merge pipeline that was lost to an agent pod that never launched; establishing that the retry wrapper had classified the failure as a user failure (rather than never running) required manually reproducing the classification logic against the raw console. One echo line per decline site makes that determination a grep.
Changes
Adds one
echobefore each of the three silent UserFailure rethrow sites injenkins/L0_Test.groovy, stating the stage name, that no infra pattern matched, and the exception text:singleAttemptbranch ofrunKubernetesPodWithInfraRetry)No behavior change; logging only. A companion internal shared-library change adds the missing catalog pattern for the pod-scheduling timeout case.
Test Coverage
Logging-only change in pipeline Groovy; no test applicable. Verified the echo style and string interpolation match the surrounding
[INFRA-RETRY]echoes in the same functions.Dev Engineer Review
[INFRA-RETRY]logging for unmatched Kubernetes pod launch, Kubernetes execution, and SLURM retry classifications.unittest/llmapi/test_llm_pytorch.py -m "part3", pending resolution in PR#17432.QA Engineer Review
tests/integration/test_lists/waives.txt.unittest/llmapi/test_llm_pytorch.py -m "part3".pr-babysitter waive set-bug NVIDIA/TensorRT-LLM#17432 <bug-url>— the waives entry carries a placeholder until then