runtime: Test failure: System.IO.Tests.StreamReaderWithBufferedStream_Tests.ReadToEndAsync_WithCancellation

Run: runtime-libraries-coreclr outerloop 20220407.2

Failed test:

net7.0-Linux-Release-x64-CoreCLR_release-RedHat.7.Amd64.Open

- System.IO.Tests.StreamReaderWithBufferedStream_Tests.ReadToEndAsync_WithCancellation

Error message:

System.IO.IOException : No space left on device : '/tmp/StreamReaderWithBufferedStream_Tests_koju4dc4.shc/ReadToEndAsync_WithCancellation_140_a25ccac0'


Stack trace
   at System.IO.RandomAccess.WriteAtOffset(SafeFileHandle handle, ReadOnlySpan`1 buffer, Int64 fileOffset)
   at System.IO.Strategies.OSFileStreamStrategy.Write(ReadOnlySpan`1 buffer)
   at System.IO.Strategies.BufferedFileStreamStrategy.Flush(Boolean flushToDisk)
   at System.IO.Strategies.BufferedFileStreamStrategy.Dispose(Boolean disposing)
   at System.IO.StreamWriter.CloseStreamFromDispose(Boolean disposing)
   at System.IO.StreamWriter.Dispose(Boolean disposing)
   at System.IO.TextWriter.Dispose()
   at System.IO.Tests.StreamReaderTests.CreateLargeFile(String path) in /_/src/libraries/System.IO/tests/StreamReader/StreamReaderTests.cs:line 188
   at System.IO.Tests.StreamReaderTests.ReadToEndAsync_WithCancellation() in /_/src/libraries/System.IO/tests/StreamReader/StreamReaderTests.cs:line 141
--- End of stack trace from previous location ---

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 19 (19 by maintainers)

Most upvoted comments

You should set TMPDIR for non Windows and TMP (or TEMP or possibly both, why not) for Windows.

If this script runs on either, I’d set all three to be sure.

I went ahead and set all 4. I also did a little experiment (test helix log here)

Relevant excerpt:

Disk Space in Human readable format
*****************************
Filesystem                 Size  Used Avail Use% Mounted on
...
/dev/mapper/rootvg-tmplv   2.0G  131M  1.9G   7% /tmp
...
/dev/sdb1                   50G   53M   47G   1% /mnt

This shows us /tmp has only 2 GB free with no automated cleanup, but the helix work drive (mounted in /mnt/work) gets ~47 GB of space and will automatically be cleaned regardless of what happens to your test. So once this rolls out, disk space panic on RHEL at least will go way down.

This makes me think that I was wrong before and UTF-8 chars get encoded as 1 byte/char otherwise this could never pass.