Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some autofiling failing with Path too long exception #4426

Closed
LoopedBard3 opened this issue Aug 29, 2024 · 1 comment
Closed

Some autofiling failing with Path too long exception #4426

LoopedBard3 opened this issue Aug 29, 2024 · 1 comment
Labels
bug Something isn't working

Comments

@LoopedBard3
Copy link
Member

We are hitting some exceptions during our cloning of the dotnet/sdk repo due to the file paths being too long.
Full exception:

Unhandled exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
 ---> System.AggregateException: One or more errors occurred. (path too long: 'D:/Users/<PoolUser>/AppData/Local/Temp/oevc4jep.fyj/test/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#Framework-net6.0#cs#UnsuportedLangVer.verified/MyProject/classlib.csproj')
 ---> LibGit2Sharp.LibGit2SharpException: path too long: 'D:/Users/<PoolUser>/AppData/Local/Temp/oevc4jep.fyj/test/dotnet-new.Tests/Approvals/FeaturesSupport.classlib.Nullable-False#TopLevel-False#ImplicitUsings-False#FileScopedNs-False#Framework-net6.0#cs#UnsuportedLangVer.verified/MyProject/classlib.csproj'
   at LibGit2Sharp.Core.Ensure.HandleError(Int32 result) in /_/LibGit2Sharp/Core/Ensure.cs:line 154
   at LibGit2Sharp.Core.Ensure.ZeroResult(Int32 result) in /_/LibGit2Sharp/Core/Ensure.cs:line 172
   at LibGit2Sharp.Core.Proxy.git_clone(String url, String workdir, GitCloneOptions& opts) in /_/LibGit2Sharp/Core/Proxy.cs:line 278
   at LibGit2Sharp.Repository.Clone(String sourceUrl, String workdirPath, CloneOptions options) in /_/LibGit2Sharp/Repository.cs:line 824
   at LibGit2Sharp.Repository.Clone(String sourceUrl, String workdirPath) in /_/LibGit2Sharp/Repository.cs:line 758
   at perfcommandcore.GitManager.Clone(Repo repo) in /home/vsts/work/1/s/src/perfcommandcore/GitManager.cs:line 48
   at perfcommandcore.AutoFiler.GenerateAutoFiledIssuesAsync(List`1 regressionRows, List`1 improvementRows, RunEnvironment baselineEnvironment, RunEnvironment compareEnvironment, Dictionary`2 trendHash, Dictionary`2 baselineTrendHash, Args commandLine, Dictionary`2 baseIndexes, Dictionary`2 compareIndexes, String html, RerunData regressionTraceFiles, RerunData improvementTraceFiles, IStorageClientFactory storageClientFactory) in /home/vsts/work/1/s/src/perfcommandcore/AutoFiler.cs:line 138
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
   at System.Threading.Tasks.Task.Wait()
   at perfcommandcore.RazorRenderer.MakeHTMLPage(ComparisonEngine comparison, RunEnvironment baselineEnvironment, RunEnvironment compareEnvironement, DateTime baselineRunDate, DateTime compareRunDate, Dictionary`2 trendHash, Dictionary`2 baselineTrendHash, Args commandLine, IStorageClientFactory storageClientFactory) in /home/vsts/work/1/s/src/perfcommandcore/RazorRenderer.cs:line 387
   at perfcommandcore.Program.Main(String testFilter, String categoryFilter, OS baselineOs, OS compareOs, String baselineCommitish, String compareCommitish, String outputDir, ReportType reportType, Queue baselineQueue, Queue compareQueue, String baselineBuildName, String compareBuildName, Nullable`1 actAsDate, Arch baselineArch, Arch compareArch, Repo baselineRepo, Repo compareRepo, String baselineBranch, String compareBranch, Locale baselineLocale, Locale compareLocale, String reportName, RunClass runClass, Boolean showUnchanged, Boolean uploadReport, Boolean uploadToMain, Boolean skipDownload, Boolean generateLookupInfo, RunKind runKind, Boolean testSameBuild, Double epsilon, Boolean filterDiag, Boolean skipFirstBuild, List`1 compareConfigs, List`1 baselineConfigs, String folderName, Boolean autoFile, Boolean getRuntimeHash, Int32 daysOfBuilds, Boolean allTestHistory, Boolean verbose, Boolean combineTrends, String bimodalCheck, Boolean skipChangePoint, Boolean useNonTopCountersForChange, Boolean coreClr, Boolean mono, Boolean WASM, Boolean MAUI, Boolean dontCollectTraces, Boolean autofileIncludeBdnDisasm, Boolean autofileIncludeJitDisasm, Boolean autofileIncludeDetectionLogicInfo, Boolean aspLab, String aspTableName) in /home/vsts/work/1/s/src/perfcommandcore/Program.cs:line 386
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
   at System.CommandLine.Invocation.ModelBindingCommandHandler.InvokeAsync(InvocationContext context)
   at System.CommandLine.Invocation.InvocationPipeline.<>c__DisplayClass4_0.<<BuildInvocationChain>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass23_0.<<UseParseErrorReporting>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass16_0.<<UseHelp>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass27_0.<<UseVersionOption>b__1>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass25_0.<<UseTypoCorrections>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<UseSuggestDirective>b__24_0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass22_0.<<UseParseDirective>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass11_0.<<UseDebugDirective>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<RegisterWithDotnetSuggest>b__10_0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass6_0.<<ConfigureConsole>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass14_0.<<UseExceptionHandler>b__0>d.MoveNext()

These are run on Azure Batch so we need to confirm if long paths are already enabled on the VMs.

I have already updated LibGit2Sharp to version 0.30.0 which fixed the issue on my local PC where I have longpaths enabled, but we are still hitting the error during the batch runs.

@LoopedBard3 LoopedBard3 added the bug Something isn't working label Aug 29, 2024
@LoopedBard3
Copy link
Member Author

We found a temporary solution of using a custom build with the changes from libgit2/libgit2sharp#2120, but still need to investigate a longer term solution until this change is merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant