Skip to content

retry_backoff retries the entire multi-family GPU test run even when a single family's genuine (non-transient) failure is the cause #1576

Description

@zhenshanx-nv

Background

.github/workflows/community-ci.yml's run_on_instance() wraps the
entire python3 -m tools.brev_exec call (which runs every selected
family's container/tests, e.g. all ~130 families for scope=all) in
retry_backoff() — 6 attempts, capped exponential backoff up to 160s.
This was designed to survive transient network blips reaching
github.com/nvcr.io mid-run.

Observed in Dev Community GPU CI run 36962671513 (PR #1575): all
families that ran passed (e.g. whisper), but the newly-added family
ltx2 genuinely failed:

ERROR: Community GPU family failures: ltx2: checkpoint staging exited 1

Since tools/community_gpu_ci.py exits non-zero when any family
fails, retry_backoff could not distinguish this deterministic,
non-transient content bug from a network blip, and retried the entire
multi-family run 6 times (~8 minutes of wasted retry delay, plus
however long each full re-run takes) before finally giving up and
recreating the instance — none of which could ever fix a genuine
checkpoint-staging bug in one family's code.

Problem

retry_backoff cannot currently distinguish:

  • A step that failed before any family ran (setup/network issue —
    worth retrying)
  • A specific family's test genuinely, deterministically failing
    (content bug — retrying is pure waste, and delays the useful signal
    of "this PR's code is broken")

Suggested direction (not yet implemented)

  • Have tools/community_gpu_ci.py or tools/brev_exec.py distinguish
    these failure classes in its exit code or output (e.g. a specific
    exit code for "N family failures, 0 setup/network errors"), so the
    workflow can skip retrying when the failure is already known to be a
    genuine family failure.
  • Alternatively, inspect the result file for a "family failed cleanly"
    marker before deciding to retry.

Not in scope here

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions