Skip to content

Sporadic failure in file enumeration tests on Unix #54589

@danmoseley

Description

@danmoseley

Examples - -

Ubuntu Arm

    System.IO.Tests.DirectoryInfo_EnumFSI_str_str.SearchPatternCaseSensitive [FAIL]
      System.UnauthorizedAccessException : Access to the path '/tmp/DirectoryInfo_EnumFSI_str_str_i42flluh.s3p/SearchPatternCaseSensitive_705_652a74c1' is denied.
      ---- System.IO.IOException : Bad file descriptor
      Stack Trace:
        /_/src/libraries/System.Private.CoreLib/src/System/IO/Enumeration/FileSystemEnumerator.Unix.cs(197,0): at System.IO.Enumeration.FileSystemEnumerator`1.FindNextEntry(Byte* entryBufferPtr, Int32 bufferLength)
        /_/src/libraries/System.Private.CoreLib/src/System/IO/Enumeration/FileSystemEnumerator.Unix.cs(110,0): at System.IO.Enumeration.FileSystemEnumerator`1.MoveNext()
        /_/src/libraries/System.Linq/src/System/Linq/Select.SpeedOpt.cs(27,0): at System.Linq.Enumerable.SelectEnumerableIterator`2.ToArray()
        /_/src/libraries/System.IO.FileSystem/tests/DirectoryInfo/EnumerableAPIs.cs(73,0): at System.IO.Tests.DirectoryInfo_EnumFSI_str_str.GetEntries(String path, String searchPattern)
        /_/src/libraries/System.IO.FileSystem/tests/Directory/GetFileSystemEntries_str_str.cs(719,0): at System.IO.Tests.Directory_GetFileSystemEntries_str_str.SearchPatternCaseSensitive()
        ----- Inner Stack Trace -----

osx 10.13 amd64

    System.IO.Tests.DirectoryInfo_EnumerateFiles_str_str.PatternTests_DosDotTrailingDot(pattern: "foo.*", sourceFiles: ["foo", "foo.", "foo.t", "foo.tx", "foo.txt", ...], expected: ["foo", "foo.", "foo.t", "foo.tx", "foo.txt", ...]) [FAIL]
      System.UnauthorizedAccessException : Access to the path '/var/folders/fs/wj3by_p90wq589rz5xk5ltb40000gy/T/DirectoryInfo_EnumerateFiles_str_str_mmyqz5al.lod/PrepareDirectory_539_23baf34f' is denied.
      ---- System.IO.IOException : Bad file descriptor
      Stack Trace:
        /_/src/libraries/System.Private.CoreLib/src/System/IO/Enumeration/FileSystemEnumerator.Unix.cs(178,0): at System.IO.Enumeration.FileSystemEnumerator`1.FindNextEntry(Byte* entryBufferPtr, Int32 bufferLength)
        /_/src/libraries/System.Private.CoreLib/src/System/IO/Enumeration/FileSystemEnumerator.Unix.cs(93,0): at System.IO.Enumeration.FileSystemEnumerator`1.MoveNext()
        /_/src/libraries/System.Linq/src/System/Linq/Select.SpeedOpt.cs(27,0): at System.Linq.Enumerable.SelectEnumerableIterator`2.ToArray()
        /_/src/libraries/System.Linq/src/System/Linq/ToCollection.cs(11,0): at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
        /_/src/libraries/System.IO.FileSystem/tests/DirectoryInfo/EnumerableAPIs.cs(28,0): at System.IO.Tests.DirectoryInfo_EnumerateFiles_str_str.GetEntries(String path, String searchPattern)
        /_/src/libraries/System.IO.FileSystem/tests/Directory/GetFileSystemEntries_str_str.cs(343,0): at System.IO.Tests.Directory_GetFileSystemEntries_str_str.PatternTests_DosDotTrailingDot(String pattern, String[] sourceFiles, String[] expected)
        ----- Inner Stack Trace -----

Some other callstack variations:

   at System.IO.Strategies.FileStreamHelpers.CheckFileCall(Int64 result, String path, Boolean ignoreNotSupported) in /_/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/FileStreamHelpers.Unix.cs:line 29
   at System.IO.Strategies.Net5CompatFileStreamStrategy.CheckFileCall(Int32 result, Boolean ignoreNotSupported) in /_/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/Net5CompatFileStreamStrategy.Unix.cs:line 624
   at System.IO.Strategies.Net5CompatFileStreamStrategy.WriteNative(ReadOnlySpan`1 source) in /_/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/Net5CompatFileStreamStrategy.Unix.cs:line 457
   at System.IO.Strategies.Net5CompatFileStreamStrategy.FlushWriteBuffer(Boolean calledFromFinalizer) in /_/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/Net5CompatFileStreamStrategy.Unix.cs:line 189
   at System.IO.Strategies.Net5CompatFileStreamStrategy.Dispose(Boolean disposing) in /_/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/Net5CompatFileStreamStrategy.Unix.cs:line 93
   at System.IO.Strategies.Net5CompatFileStreamStrategy.DisposeInternal(Boolean disposing) in /_/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/Net5CompatFileStreamStrategy.cs:line 110
   at System.IO.FileStream.Dispose(Boolean disposing) in /_/src/libraries/System.Private.CoreLib/src/System/IO/FileStream.cs:line 476
   at System.IO.Stream.Close() in /_/src/libraries/System.Private.CoreLib/src/System/IO/Stream.cs:line 165
   at System.IO.StreamWriter.CloseStreamFromDispose(Boolean disposing) in /_/src/libraries/System.Private.CoreLib/src/System/IO/StreamWriter.cs:line 235
   at System.IO.StreamWriter.Dispose(Boolean disposing) in /_/src/libraries/System.Private.CoreLib/src/System/IO/StreamWriter.cs:line 218
   at System.IO.TextWriter.Dispose() in /_/src/libraries/System.Private.CoreLib/src/System/IO/TextWriter.cs:line 77
   at System.IO.File.WriteAllText(String path, String contents) in /_/src/libraries/System.Private.CoreLib/src/System/IO/File.cs:line 312
   at System.IO.Tests.Directory_GetFileSystemEntries_str.CreateItem(String path) in /_/src/libraries/System.IO.FileSystem/tests/Directory/GetFileSystemEntries_str.cs:line 28
   at System.IO.Tests.Directory_GetFileSystemEntries_str_str.PrepareDirectory(String[] sourceFiles, Boolean useExtendedPaths) in /_/src/libraries/System.IO.FileSystem/tests/Directory/GetFileSystemEntries_str_str.cs:line 542
   at System.IO.Tests.Directory_GetFileSystemEntries_str_str.PatternTests_DosDotTrailingDot(String pattern, String[] sourceFiles, String[] expected) in /_/src/libraries/System.IO.FileSystem/tests/Directory/GetFileSystemEntries_str_str.cs:line 342
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) in /_/src/mono/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.cs:line 370
----- Inner Stack Trace -----
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) in /_/src/libraries/System.Private.CoreLib/src/Microsoft/Win32/SafeHandles/SafeFileHandle.Unix.cs:line 91
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) in /_/src/libraries/System.Private.CoreLib/src/Microsoft/Win32/SafeHandles/SafeFileHandle.Unix.cs:line 158
   at System.IO.Strategies.Net5CompatFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, Int64 preallocationSize) in /_/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/Net5CompatFileStreamStrategy.cs:line 92
   at System.IO.Strategies.FileStreamHelpers.ChooseStrategyCore(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, Int64 preallocationSize) in /_/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/FileStreamHelpers.Unix.cs:line 16
   at System.IO.Strategies.FileStreamHelpers.ChooseStrategy(FileStream fileStream, String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, Int64 preallocationSize) in /_/src/libraries/System.Private.CoreLib/src/System/IO/Strategies/FileStreamHelpers.cs:line 20
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, Int64 preallocationSize) in /_/src/libraries/System.Private.CoreLib/src/System/IO/FileStream.cs:line 210
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) in /_/src/libraries/System.Private.CoreLib/src/System/IO/FileStream.cs:line 146
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean useAsync) in /_/src/libraries/System.Private.CoreLib/src/System/IO/FileStream.cs:line 141
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize) in /_/src/libraries/System.Private.CoreLib/src/System/IO/FileStream.cs:line 136
   at System.IO.StreamWriter.ValidateArgsAndOpenPath(String path, Boolean append, Encoding encoding, Int32 bufferSize) in /_/src/libraries/System.Private.CoreLib/src/System/IO/StreamWriter.cs:line 182
   at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize) in /_/src/libraries/System.Private.CoreLib/src/System/IO/StreamWriter.cs:line 153
   at System.IO.StreamWriter..ctor(String path) in /_/src/libraries/System.Private.CoreLib/src/System/IO/StreamWriter.cs:line 138
   at System.IO.File.WriteAllText(String path, String contents) in /_/src/libraries/System.Private.CoreLib/src/System/IO/File.cs:line 309
   at System.IO.Tests.Directory_GetFileSystemEntries_str.CreateItem(String path) in /_/src/libraries/System.IO.FileSystem/tests/Directory/GetFileSystemEntries_str.cs:line 28
   at System.IO.Tests.Directory_GetFileSystemEntries_str_str.PrepareDirectory(String[] sourceFiles, Boolean useExtendedPaths) in /_/src/libraries/System.IO.FileSystem/tests/Directory/GetFileSystemEntries_str_str.cs:line 542
   at System.IO.Tests.Directory_GetFileSystemEntries_str_str.PatternTests_DosDotTrailingDot(String pattern, String[] sourceFiles, String[] expected) in /_/src/libraries/System.IO.FileSystem/tests/Directory/GetFileSystemEntries_str_str.cs:line 342
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) in /_/src/mono/System.Private.CoreLib/src/System/Reflection/RuntimeMethodInfo.cs:line 370
----- Inner Stack Trace -----

This began failing a few times a day on 6/15 which is coincident with #53669. Perhaps this will be fixed by #54483 @adamsitnik

Metadata

Metadata

Assignees

Labels

area-System.IOblocking-clean-ciBlocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms'bug

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions