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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions