Skip to content

CI: GPU "Unit Tests (Python)" step wedges to the 6h timeout with a specific test file (surfaced in #1053) #1070

Description

@nv-slang-bot

Summary

The Unit Tests (Python) step of the ci workflow hangs to the 6-hour job timeout on the GPU-backed runners when a specific ~140-line test file is present, even though that file's tests pass locally in seconds and contain no obvious pathological construct. Surfaced while adding regression coverage for #1051 (see PR #1053); filing separately because it is an independent CI/test-harness problem, not specific to that change's correctness.

Observed behaviour (PR #1053, run 29283873237, HEAD 0fb3344, rebased 0-behind main)

Lane Unit Tests (Python) outcome
macOS aarch64 (Release + Debug) cancelled at 360 min (6h job timeout)
linux x86_64 gcc, windows x86_64 msvc killed ~128 min mid-step
linux aarch64 (no GPU test load) pass, ~4–5 min

The whole GPU Unit Tests (Python) step wedges — not a single failing assertion — so no useful failure output is produced; the job just runs to timeout.

What has been ruled out

  • Not the deliberately-crashing test. [Bug] Backward dispatch segfaults when a [Differentiable] function has a loop with a negative runtime start value #1051's original regression test intentionally SIGSEGV'd inside a subprocess; it was dropped entirely. The hang persists with only two ordinary constant-start .bwds() control tests + a docstring remaining.
  • Not a stale base. Rebasing dev/slangpy-fixer/1051 onto current main (0 commits behind) did not change the behaviour.
  • Not a general CI outage / not fleet-wide. ~11 other contemporaneous open PRs pass the identical 12-job matrix (same tools/ci.py --maxprocesses=4) in ~12–17 min with zero hang.
  • Not obviously CUDA OOM. The macOS-aarch64 lane (Metal, no CUDA) is among those that hang, so a CUDA-specific out-of-memory cascade does not explain it on its own.

Why it needs runner access to diagnose

With the above ruled out, the remaining question — why a small test file that passes locally wedges the entire GPU Unit Tests (Python) step for hours — is not reproducible without access to the GPU CI runners (process state, driver/Crashpad interaction, pytest-xdist worker behaviour under load). It is a latent hazard: the next PR that adds or perturbs GPU-exercising Python tests may hit the same 6h wedge with no clear signal.

References

🤖 Generated by an automated SlangPy coworker — may be inaccurate. A human maintainer should verify.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions