Skip to content

[.NET main] ubuntu-latest build job killed without log output on every push since 2026-06-18 #1430

Description

@tamirdresher

Summary

The .NET main workflow has been failing on every push to main since 2026-06-18 (8+ consecutive failures). Always the same shape: build (windows-latest) passes, build (ubuntu-latest) fails in ~3–4 minutes with no Build step log file persisted — classic signature of the runner being killed before it can flush.

Evidence

Run Date Commit windows ubuntu Build log captured?
28141532703 2026-06-25 d8c5674 (Squad #1394) ✅ 13m11s ❌ 3m41s No — only Set-up/Checkout/Restore steps in the archive
28005035836 2026-06-23 typescript-apphost-backfill merge No
28004682918 2026-06-23 SQLite audit suppress No
28003556555 2026-06-23 Bitwarden SM #1329 No
27738932971 2026-06-18 XML comments #1422 No
27731598150 2026-06-18 Harden tests #1415 No
27729982356 2026-06-18 SeaweedFS #1349 No
27727583582 2026-06-18 SurrealDB v3 #1294 last green run
27726664815 2026-06-17 dbx #1391 ✅ 8m30s ❌ 4m7s No — first failure

Likely cause

The breakpoint (#1391 dbx) lands right when the solution crossed some size threshold. Several new hosting integrations have landed since (dbx, SeaweedFS, Bitwarden, Squad), each adding 3–6 new csproj.

  • GitHub-hosted ubuntu-latest runners have ~14 GB free disk; windows-latest has ~80 GB.
  • A full dotnet build -c Release of the whole toolkit now produces a LOT of bin/ + obj/ output across 100+ projects.
  • The "Build step has no log file at all" signature is classic runner-process killed without flushing — strongly suggests disk exhaustion (or OOM).
  • The matching test job Hosting.Java.Tests-ubuntu-latest also timed out at exactly 1h on the first failure (run 27726664815) — additional symptom of the runner being unhealthy.

What dotnet-ci.yml (per-PR) does differently

PRs pass CI because dotnet-ci.yml only builds affected projects (using the path-based filter you set up), not the whole solution. dotnet-main.yml does a full dotnet restore + dotnet build on every push, which is what's blowing past the disk/memory budget.

Suggested fixes (any one should be enough)

  1. Add disk cleanup step — easiest:
    - uses: jlumbroso/free-disk-space@main
    This reclaims 30+ GB on ubuntu-latest by removing Android SDK, GHC, .NET preinstalls we don't need, etc.

  2. Shard the build — split dotnet build across N matrix shards by Directory.Solution.props slice.

  3. Use --no-incremental + clean between project builds — slower but bounded memory.

  4. Switch build (ubuntu-latest) to ubuntu-latest-large or ubuntu-22.04-large — paid runner with more disk.

Happy to send a PR for option 1 if you want — it's the lowest-risk and matches what other large .NET repos (including dotnet/aspire itself) do.

cc @aaronpowell — flagging because main is currently red and v13.5.0 can't be cut until this is fixed (release workflow runs run-testspackagesignpublish-nuget).

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