Repository navigation
[https://nvbugs/6902353][chore] Unwaive transfer lifecycle GPU tests - #20439
chienchunhung wants to merge 1 commit into
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? |
Summary
Restore CI coverage for the six transfer-lifecycle GPU cases waived under NVBUG 6902353. Repeated remote-cluster verification did not reproduce the worker-startup timeout with the original 120-second setting, supporting re-enabling these cases for validation in CI.
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.The existing DGX B200 test-list entry is retained. Upstream subsequently added a
destination_fatalwaiver in #20457; this rebase preserves that waiver, so this PR re-enables only the original six cases.The test harness, assertions, 120-second startup timeout, 600-second pytest timeout, and product code are unchanged.
Verification
Local checks at
c3327dd51466ee52487c4e3709dde534e908fb18: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. Rebasing ontodf4b424b0028a8838effbc4313c6411fb36d299dresolved one waiver-list conflict by preserving upstream's newdestination_fatalwaiver and removing the same six entries. An independent CPU check executed the repository's CBTSWaivesRuleon the base-to-head diff and selected the existing four-GPU MPI lifecycle-test block and exactly the three DGX B200 PyTorch stages below.Historical remote-cluster evidence, October 15, 2026 — four B200 GPUs:
Slurm job
5023705produced 21 validated passes and the two guard-only passes before ENOSPC interrupted result publication. Job5025564executed only the 47 never-started identities: all 47 passed, and the job completed with exit0:0. Repetition 4 was split across attempts; this is not a claim of ten uninterrupted pytest invocations or 70 fully validated passes. All 70 case-process cleanup guards settled without intervention.The actual pytest invocations used
python3 -m pytest -p lifecycle_guard -vv -ra --tb=long -o junit_family=xunit2, explicit lifecycle node IDs, and per-repetition JUnit/temporary directories. The original harness atdc8451c50864edc07c75dedeafcb91dbb7a5d478is byte-identical to this PR's harness (SHA256c51885ea28f18e879f8cbc1477bd9c7c26317887d340abff1715d39013d49409); installed native runtime wasda676ffb8b611a1a0a83c862aa094e736f9fe5aa, version1.4.0rc1.dev202610140007. This newer runtime and environment differ from the historical failing CI: intervening code, dependency, or environment changes may explain the difference, but no causal fix has been isolated.Rebased-head GPU CI has not been triggered by this workflow. The multi-GPU stages require
ci: full pre-merge approved, granted through the review/CI-approver workflow. At the post-rebase check, the required approval label was absent and no Jenkins pipeline had started; automatic GitHub repository checks were running. After approval, validate the currentDGX_B200-4_GPUs-PyTorch-1/2/3stage family (sharding can move the test), confirming that the six re-enabled cases execute;destination_fatalremains waived by #20457. The offline results are supporting evidence, not an exact original-CI replay or a CI pass on this PR's native build; full pre-merge CI remains required separately from a stage-only run.Notes
Reverses the six waivers introduced by #20235. A subsequent reviewer report describes failures in whichever lifecycle case launches first in CI and proposes cold-start overhead as an explanation; that reported CI history has not been independently reproduced by the offline experiment. Rebase alone does not address that concern. Keep the bug open pending resolution and required CI validation; this PR alone also leaves the #20457 waiver in place.
Dev Engineer Review
The change removes six GPU transfer-lifecycle test waivers. It does not change product code or test behavior. The
destination_fatalcase remains enabled. Full CI validation remains a follow-up: PR-head GPU CI is pending approval, and the reported remote-cluster runs used a newer runtime and environment. No causal fix has been isolated. Current review-finding counts are unavailable.QA Engineer Review
tests/integration/test_lists/waives.txtremoves waivers forbaseline,cancel_before_publication,cancel_late_aux,cancel_late_kv,source_fatal, andtimeout_late_aux. The test harness is unchanged. The DGX B200 CI list still includesunittest/disaggregated/test_transfer_lifecycle_gpu.py. Reported historical runs covered all seven cases across ten repetitions, but they do not establish a pass on this PR’s native build. Coverage verdict: needs follow-up until full pre-merge CI runs without waivers.Per-File QA Perspective
tests/integration/test_lists/waives.txt: Removing the six entries allows the corresponding GPU tests to run instead of being waived. The test module remains listed intests/integration/test_lists/test-db/l0_dgx_b200.yml; verify all seven cases in full CI.