Skip to content

CI: the root QA job never finishes — self-hosted runner dies ~50min in, and the declared lts QA job is never created #4904

Description

@ChrisRackauckas-Claude

The root QA test group has not completed a run in CI recently. It is not a test failure — the job is killed part-way through.

Evidence

commit job outcome annotation
2c31d86323 (master, #4880 merge) 92750873732 failure "The self-hosted runner lost communication with the server."
82dee851d6 (master) 92939171244 failure same
453c45c08e (master, current head) 92967338349 failure "The operation was canceled."
b2692a1bc6 (#4883) 92988983176 failure "The self-hosted runner lost communication with the server."

The b2692a1bc6 job ran 20:26:03Z → 21:15:06Z — 49 minutes — on self-hosted-4vcpu-16gb-dpg5l-runner-cmq2q before dying.

Likely cause

run_qa runs JET.report_package(ModelingToolkit; target_defined_modules = true), which is by far the heaviest thing in the group. Locally the whole test/qa/qa.jl takes 30m11s wall on Julia 1.12.6, with JET dominating and the Aqua Persistent tasks check adding another 30s; on Julia 1.10 the same file takes 3m42s, so the cost is very lopsided toward the newer compiler.

That is the same profile test/test_groups.toml already documents for two other groups:

# Memory-heavy (OOM-killed on the 4vcpu/8GB self-hosted runners, esp. on `pre`).
# Route to a GitHub-hosted runner (~16GB). `ubuntu-24.04` forces GitHub-hosted
# since the self-hosted pool only carries the `ubuntu-latest` label.
runner = "ubuntu-24.04"

[Initialization] and [FMI] carry that; [QA] does not:

[QA]
versions = ["lts", "1"]

The obvious thing to try is giving [QA] the same runner = "ubuntu-24.04". I have not verified that it fixes it — it is a CI-infrastructure change I cannot reproduce locally, so I am filing it rather than sending a speculative PR.

Secondary: the declared lts QA job is never created

[QA] declares versions = ["lts", "1"], but only a julia 1 job is ever created. Checked on 2c31d86323, 82dee851d6, 453c45c08e and b2692a1bc6 — in every workflow run the only QA job is tests / QA (julia 1, ubuntu-latest), and gh api .../actions/runs/<id>/jobs confirms there is no lts counterpart, while every other group gets all of its declared versions.

So whatever compute_affected_sublibraries.jl --root-matrix does with the [QA] entry, the lts half of the declared matrix is being dropped. That matters because ExplicitImports behaves differently before Julia 1.12 (see #4903) — those findings are invisible to CI today.

Impact

The QA lane cannot go green on any PR right now, so #4883 and #4881 have to be reviewed on locally-run evidence rather than on a CI result.

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