Skip to content

iOS tests failing with OSError: [Errno 28] No space left on device #6473

Open

Description

@MihaZupan

Build

https://dev.azure.com/dnceng-public/cbb18261-c48f-4abb-8651-8cdcb5474649/_build/results?buildId=1337140

E.g. https://helixr1107v0xdeko0k025g8.blob.core.windows.net/dotnet-runtime-refs-pull-125526-merge-c11096c024db465987/iOS.Device.ParallelForEachAsync.Test.Attempt.3/f3035da5-b542-43ef-9283-a42707d78008.log

Build leg reported

iOS.Device.Aot.Test.WorkItemExecution

Pull Request

dotnet/runtime#125526

Known issue core information

Fill out the known issue JSON section by following the step by step documentation on how to create a known issue

 {
    "ErrorMessage" : "OSError: [Errno 28] No space left on device",
    "BuildRetry": false,
    "ErrorPattern": "",
    "ExcludeConsoleLog": false
 }

@dotnet/dnceng

Release Note Category

  • Feature changes/additions
  • Bug fixes
  • Internal Infrastructure Improvements

Release Note Description

Additional information about the issue reported

No response

Known issue validation

Build: 🔎 https://dev.azure.com/dnceng-public/public/_build/results?buildId=1337140
Error message validated: [OSError: [Errno 28] No space left on device]
Result validation: ❌ Known issue did not match with the provided build.
Validation performed at: 3/16/2026 4:54:41 PM UTC

Report

Build Repository Test Pull Request
1624231 dotnet/runtime Microsoft.Extensions.FileProviders.Physical.Tests.WorkItemExecution

Summary

24-Hour Hit Count 7-Day Hit Count 1-Month Count
0 0 1

Activity

  1. liuminsheng3 commented on Jun 16, 2026

    @liuminsheng3

    Since this known issue is recurring across many WorkItemExecution legs, I would treat it as a per-work-item disk budget problem rather than only matching the final OSError: [Errno 28] line.

    The useful split is to capture sizes before the iOS work item starts and again on failure, then separate:

    df -h
    du -xhd1 "$HELIX_WORKITEM_ROOT" "$TMPDIR" "$HOME/Library/Developer" 2>/dev/null | sort -h | tail -60
    find "$HELIX_WORKITEM_ROOT" -xdev -type f -size +250M -print 2>/dev/null | head -80

    For iOS/macOS legs I would also bucket DerivedData, simulator data, NuGet/package caches, test payloads, crash dumps, and any copied app bundles separately. Those have different cleanup risk; deleting simulator runtimes or shared tool state is much riskier than rotating per-work-item temp/output.

    I made a read-only macOS CI storage scan/checklist for exactly this style of runner evidence collection. It does not delete anything; it just produces the before/after artifact needed to decide safe vs review-first cleanup:

    https://site-iota-ebon-80.vercel.app/ci-macos-storage-scan.html?utm_source=github&utm_medium=issue-comment&utm_campaign=ci-macos-storage&utm_term=dotnet-ios-tests-errno28&utm_content=dotnet-dnceng-6473

    The important signal for this issue is whether the repeated hits are dominated by one growing work item payload, shared Xcode/simulator state, or temp output that is not being removed between attempts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions