Skip to content

PathTooLongException with benchmark that has long parameter #2093

Open
@jakobbotsch

Description

@jakobbotsch

The following invocation in dotnet/performance:

dotnet run -c Release -f net7.0 -- --filter "System.Numerics.Tests.Perf_BigInteger.Parse" --corerun /mnt/c/dev/dotnet/core_roots/cf2187_release/corerun -p EP

hangs on a benchmark with a very long parameter. When I ctrl-C it, I get the following:

An exception occurred during reading trace stream: System.IO.PathTooLongException: The path '/home/jakob/dev/dotnet/performance/artifacts/bin/MicroBenchmarks/Release/net7.0/BenchmarkDotNet.Artifacts/System.Numerics.Tests.Perf_BigInteger.Parse(numberString_ 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890)-20220830-133655.nettrace' is too long, or a component of the specified path is too long.
   at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirError)
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, UnixFileMode openPermissions, Int64& fileLength, UnixFileMode& filePermissions, Func`4 createOpenException)
   at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
   at BenchmarkDotNet.Diagnosers.EventPipeProfiler.CopyEventStreamToFile(EventPipeSession session, String fileName, ILogger logger)
ExitCode != 0 and no results reported

Seems like BDN is trying to include all the parameters in the file name of the event pipe trace.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions