Repository navigation
[https://nvbugs/6902353][chore] Unwaive transfer lifecycle GPU tests - #20439
Conversation
|
Heads-up before this merges: in CI, the worker-startup timeout tracked by NVBUG 6902353 consistently hits whichever Evidence from x86-64 Multi-GPU runs:
That fits a cold-start cost on a fresh CI node: the first launch exceeds the 120 s startup deadline and later launches are warm. It would also explain why repeated runs on a warm remote cluster don't reproduce it. #20457 waives |
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
ab6f35d to
c3327dd
Compare
Thanks for the notice @lowsfer . Can you provide the reference PR that this PR should wait for? |
|
/bot run --disable-fail-fast |
|
PR_Github #79960 [ run ] triggered by Bot. Commit: |
|
PR_Github #79960 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #80251 [ run ] triggered by Bot. Commit: |
|
Automatically added "ci: full pre-merge approved" because this PR has satisfied the required GitHub review approvals. Unresolved review conversations and other required checks remain independent merge requirements. |
|
/bot run --disable-fail-fast |
|
PR_Github #80258 [ run ] triggered by Bot. Commit: |
|
PR_Github #80251 [ run ] completed with state |
|
PR_Github #80258 [ run ] completed with state
|
|
/bot run --only-multi-gpu-test --stage-list "DGX_B200-4_GPUs-PyTorch-1,DGX_B200-4_GPUs-PyTorch-2,DGX_B200-4_GPUs-PyTorch-3" |
|
PR_Github #80289 [ run ] triggered by Bot. Commit: |
|
PR_Github #80289 [ run ] completed with state Resource maintenance in LLM/main/L0_Test-x86_64-Multi-GPU #2925: B200 multi-GPU stages are paused to relieve the CI queue backlog (109 running / 459 pending on 2026-10-22). Owner: @sharabeshj-nvda. The CI team decides when to lift it. |
|
/bot run --only-multi-gpu-test --stage-list "DGX_B200-4_GPUs-PyTorch-1,DGX_B200-4_GPUs-PyTorch-2,DGX_B200-4_GPUs-PyTorch-3" |
|
PR_Github #80663 [ run ] triggered by Bot. Commit: |
|
PR_Github #80663 [ run ] completed with state |
|
/bot skip --comment "Un-waived tests are verified in the targeted CI pipeline. " |
|
PR_Github #80739 [ skip ] triggered by Bot. Commit: |
|
PR_Github #80739 [ skip ] completed with state |
Summary
Restore CI coverage for the six transfer-lifecycle GPU cases waived under NVBUG 6902353. Targeted CI on this PR's current head executed and passed all six cases with the original 120-second worker-startup timeout.
Scope
Remove only the six case-specific entries in waives.txt:
baseline,cancel_before_publication,cancel_late_aux,cancel_late_kv,source_fatal, andtimeout_late_aux.Preserve the
destination_fatalwaiver added upstream by #20457.Retain the existing four-GPU DGX B200 test-list entry.
The test harness, assertions, 120-second startup timeout, 600-second pytest timeout, and product code are unchanged.
Verification
Targeted PR-head CI — October 26, 2026, commit
c3327dd51466ee52487c4e3709dde534e908fb18: passed.Trigger:
/bot run --only-multi-gpu-test --stage-list "DGX_B200-4_GPUs-PyTorch-1,DGX_B200-4_GPUs-PyTorch-2,DGX_B200-4_GPUs-PyTorch-3".PR_Github #80663 and L0_MergeRequest_PR #66415 completed successfully. All three selected B200 stages executed successfully in x86_64 Multi-GPU #2938, with completed Slurm allocations and no stage retries. Aggregate JUnit results were 146 passed, 0 failed, 4 skipped across the targeted run.
The lifecycle module ran in
DGX_B200-4_GPUs-PyTorch-3on four B200 GPUs, nodensc-svg-slurm-1-gpu-3, Slurm job2389979. JUnit results and its captured pytest log agree: 6 passed, 1 skipped in 471.04 seconds, with all seven cases collected.baselinecancel_before_publicationcancel_late_auxcancel_late_kvtimeout_late_auxsource_fataldestination_fatalThese are actual case executions, not collection-only or maintenance skips. Call durations include the complete scenario, not just worker startup. The earlier targeted pipeline #66081 executed no tests during B200 maintenance; it is excluded from this verification.
Full pre-merge status: #66415 is intentionally marked “Partly Tested.” The normal
blossom-cimerge check remains failing, so this targeted pass does not establish a passing full pre-merge run. The required multi-GPU approval label is present.Local checks at the same head:
pre-commit run --files tests/integration/test_lists/waives.txtandgit diff --checkpassed, including waiver sorting/duplication, formatting, and AST test-list validation. The original DCO sign-off is retained. Rebase ontodf4b424b0028a8838effbc4313c6411fb36d299dpreserved upstream'sdestination_fatalwaiver. An independent CPU check executed CBTSWaivesRuleand selected the lifecycle block and exactly the three B200 stages above.Historical remote-cluster evidence — October 15, 2026, four B200 GPUs: seven cases × ten repetitions produced 70 unique executions without replays: 68 JUnit/guard-validated passes, plus two completed passing guard records whose final JUnit was lost to ENOSPC. Observed assertion failures, skips, test errors, startup-120s failures, MPI-exit-60s failures, and pytest-600s failures were all zero. Slurm job
5023705produced 21 validated passes and the two guard-only records; continuation5025564ran only the 47 never-started identities, all passing, and completed with exit0:0. Repetition 4 was split across attempts; this is not 70 fully validated passes or ten uninterrupted pytest invocations. All 70 case-process cleanup guards settled without intervention.Those offline runs used
python3 -m pytest -p lifecycle_guard -vv -ra --tb=long -o junit_family=xunit2with explicit node IDs. Harness commitdc8451c50864edc07c75dedeafcb91dbb7a5d478is byte-identical to this PR's harness (SHA256c51885ea28f18e879f8cbc1477bd9c7c26317887d340abff1715d39013d49409); the installed runtime wasda676ffb8b611a1a0a83c862aa094e736f9fe5aa, version1.4.0rc1.dev202610140007. This is supporting historical evidence from a different runtime/environment, separate from the current PR-head CI result.Notes
Reverses the six waivers introduced by #20235. The reviewer's first-executed-case/cold-start concern motivated checking actual CI execution. The new run verifies that the six restored cases pass on this head; it does not isolate a causal fix for the historical startup failure or establish that an intermittent failure cannot recur. Intervening code, dependency, or environment changes may explain the different observations. The
destination_fatalwaiver remains outside this PR's restored coverage.