Skip to content

Measure Linux CI disk usage and clean SDK staging - #3861

Closed
danroth27 wants to merge 2 commits into
mainfrom
fix/linux-ci-disk-exhaustion
Closed

danroth27 wants to merge 2 commits into
mainfrom
fix/linux-ci-disk-exhaustion

Conversation

@danroth27

@danroth27 danroth27 commented Sep 22, 2026 •

Copy link
Copy Markdown
Member

Why

Linux jobs in Azure Pipelines builds 1607887 and 1607792 ran out of disk while packing NuGet packages. UseDotNet@2 v279 downloads and extracts .NET 8/9/10 SDKs into the agent temp directory before copying them into .dotnet.

Change

  • Measure filesystem and directory sizes before SDK installation, after installation, after scoped cleanup, and after the Linux build, including on build failures.
  • Snapshot the agent temp directory before installing the SDKs and remove only newly created GUID-named downloaded archives and extracted directories verified to contain .NET 8/9/10 SDK files. Leave the installed SDKs, pre-existing and unrelated temp entries, Arcade's .NET 11 SDK, tests, and packaging intact.

CI follow-up

The first PR build, 1608096, passed both Linux configurations but revealed that the original per-task temp override had no effect: 2.4 GB remained in the agent temp root while the dedicated staging directory was empty, and Linux ended at 100% disk usage. After rebasing onto #3862, build 1609320 passed both Linux configurations on the .NET engineering-managed Ubuntu agent. Its workspace volume is 98 GB. Each job measured 2.4 GB of SDK staging after installation and about 20 KB after cleanup; at the end of build and packaging, 83 GB remained free on that volume (12% used). Windows Debug and Release also passed; the earlier Windows Release xUnit failure was unrelated to this Linux-only change. The Microsoft.Extensions compatibility issue is separately tracked in #3833.

danroth27 and others added 2 commits September 23, 2026 09:33
Isolate UseDotNet download and extraction files in a dedicated Linux temp directory, then remove it before tests and packaging. Record disk usage around installation, cleanup, and the build to quantify savings and identify remaining pressure.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use the observed agent temp location and compare entries before and after SDK installation. Remove only newly created GUID-named SDK archives and extraction directories, leaving other temp entries and installed SDKs intact.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 2ff0cd05-fdd3-47bb-8b0c-983417c3829c
@danroth27
danroth27 force-pushed the fix/linux-ci-disk-exhaustion branch from 653af66 to b672725 Compare September 23, 2026 16:33
@danroth27

Copy link
Copy Markdown
Member Author

Closing as no longer needed after #3862 moved Linux CI to the engineering-managed agent. The rebased build finished with 83 GB free on the workspace volume; the additional SDK-staging cleanup is not worth maintaining.

@danroth27 danroth27 closed this Sep 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant