Repository navigation
Test failure: MutexTests IOException "'/tmp/.dotnet/shm/global' does not have the expected owner permissions" #135889
Description
Build Information
Build: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1635689
Build error leg or test failing: net11.0-linux-Debug-x64-coreclr_release-Ubuntu.2604.Amd64.Open - System.Threading.Tests.MutexTests
Pull request: #135778
Tracking issue: #135887. Regression from #135778: on Linux Helix machines, global-scope named mutex creation throws IOException because /tmp/.dotnet/shm/global exists with mode 40755, which the new directory validation rejects. Affected tests include AbandonExisting, CrossProcess_NamedMutex_ProtectedFileAccessAtomic, NameNamespaceTest, NamePrefixAndOptionsCompatibilityTest, NameOptionsApiCompatibilityTest(namePrefix: "Global\\"), NamedMutex_InvalidSharedMemoryHeaderKind, NamedMutex_InvalidSharedMemoryHeaderVersion and NamedMutex_TooSmallSharedMemoryFile.
KBE authoring guidance (ci-failure-scan)
Error Detailsis for readers. Paste the full exception, stack trace, or build error excerpt so the failure is understandable without opening the raw log.- Build Analysis parses only the single JSON block under
Error Message. ErrorMessageis a case-sensitive ordinalString.Containssubstring copied verbatim from the failing log.- Set
BuildRetrytotrueonly for a clear infrastructure retry case.ExcludeConsoleLogdisables Helix console-log scanning.
Error Details
System.Threading.Tests.MutexTests.AbandonExisting(name: "...", waitType: WaitOne, ..., currentUserOnly: False, currentSessionOnly: False) [FAIL]
System.AggregateException : One or more errors occurred. (The directory '/tmp/.dotnet/shm/global' does not have the expected owner permissions: 40755.)
---- System.IO.IOException : The directory '/tmp/.dotnet/shm/global' does not have the expected owner permissions: 40755.
System.Threading.Tests.MutexTests.NamedMutex_InvalidSharedMemoryHeaderVersion [FAIL]
Expected one of: (System.Threading.WaitHandleCannotBeOpenedException, System.IO.InvalidDataException) -> Actual: (System.IO.IOException): System.IO.IOException: The directory '/tmp/.dotnet/shm/global' does not have the expected owner permissions: 40755.
at System.IO.SharedMemoryHelpers.ValidateDirectory(SafeFileHandle directoryHandle, String directoryPathForError, SharedMemoryId id, Int32& transientRetryCount) in /_/src/libraries/System.Private.CoreLib/src/System/IO/SharedMemoryManager.Unix.cs:line 847
at System.IO.SharedMemoryHelpers.EnsureDirectoryExists(SafeFileHandle parentDirectoryHandle, String directoryName, String directoryPathForError, SharedMemoryId id, Boolean createIfNotExist)
Error Message
{
"ErrorMessage": "'/tmp/.dotnet/shm/global' does not have the expected owner permissions",
"ErrorPattern": "",
"BuildRetry": false,
"ExcludeConsoleLog": false
}Agentic workflow metadata (ci-failure-scan)
Workflow artifact: ci-failure-scan
Artifact kind: kbe-verification
Verified match count: 29 hits in failure.log
Note
This issue was drafted with GitHub Copilot.
Known issue validation
Build: 🔎 https://dev.azure.com/dnceng-public/public/_build/results?buildId=1635689
Error message validated: ['/tmp/.dotnet/shm/global' does not have the expected owner permissions]
Result validation: ✅ Known issue matched with the provided build.
Validation performed at: 10/15/2026 7:25:15 PM UTC
Report
Summary
| 24-Hour Hit Count | 7-Day Hit Count | 1-Month Count |
|---|---|---|
| 54 | 110 | 110 |
Activity
dotnet-policy-service commentedon Oct 15, 2026
Tagging subscribers to this area: @dotnet/area-system-io
See info in area-owners.md if you want to be subscribed.
pcshrosbree commentedon Oct 16, 2026
I noticed that the
ErrorMessagehere is'/tmp/.dotnet/shm/global' does not have the expected owner permissions. In build 1637265 for #135877, Build Analysis showsMutexTests.AbandonExistingunder "Test Failures" withThe directory '/tmp/.dotnet' does not have the expected owner permissions: 40755.That message does not contain the currentErrorMessage. Would shortening theErrorMessagetodoes not have the expected owner permissionscover both paths?[browser][wasi] Allow uncontended synchronous waits and un-gate Rosly…