dotnet / sdk

Core functionality needed to create .NET Core projects, that is shared between Visual Studio and CLI
https://dot.net/core
MIT License
2.65k stars 1.06k forks source link

IOException in WorkloadResolver in 6.0.200 SDK #23264

Open jonathanpeppers opened 2 years ago

jonathanpeppers commented 2 years ago

Describe the bug

This happened on the PR here. Bumping to .NET 6.0.200-preview.22053.5.

A build on macOS failed with:

/Users/builder/azdo/_work/1/s/bin/dotnet/sdk/6.0.200-preview.22053.5/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018: The "ProcessFrameworkReferences" task failed unexpectedly. [/Users/builder/azdo/_work/1/s/src/Controls/tests/DeviceTests/Controls.DeviceTests.csproj]
/Users/builder/azdo/_work/1/s/bin/dotnet/sdk/6.0.200-preview.22053.5/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018: System.IO.IOException: The process cannot access the file '/Users/builder/azdo/_work/1/s/bin/dotnet/sdk-manifests/6.0.200/microsoft.net.sdk.maui/WorkloadManifest.json' because it is being used by another process. [/Users/builder/azdo/_work/1/s/src/Controls/tests/DeviceTests/Controls.DeviceTests.csproj]
/Users/builder/azdo/_work/1/s/bin/dotnet/sdk/6.0.200-preview.22053.5/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018:    at Microsoft.Win32.SafeHandles.SafeFileHandle.Init(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) [/Users/builder/azdo/_work/1/s/src/Controls/tests/DeviceTests/Controls.DeviceTests.csproj]
/Users/builder/azdo/_work/1/s/bin/dotnet/sdk/6.0.200-preview.22053.5/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018:    at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) [/Users/builder/azdo/_work/1/s/src/Controls/tests/DeviceTests/Controls.DeviceTests.csproj]
/Users/builder/azdo/_work/1/s/bin/dotnet/sdk/6.0.200-preview.22053.5/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018:    at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) [/Users/builder/azdo/_work/1/s/src/Controls/tests/DeviceTests/Controls.DeviceTests.csproj]
/Users/builder/azdo/_work/1/s/bin/dotnet/sdk/6.0.200-preview.22053.5/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018:    at Microsoft.NET.Sdk.WorkloadManifestReader.SdkDirectoryWorkloadManifestProvider.<>c__DisplayClass7_0.<GetManifests>b__0() [/Users/builder/azdo/_work/1/s/src/Controls/tests/DeviceTests/Controls.DeviceTests.csproj]
/Users/builder/azdo/_work/1/s/bin/dotnet/sdk/6.0.200-preview.22053.5/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018:    at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.LoadManifestsFromProvider(IWorkloadManifestProvider manifestProvider) [/Users/builder/azdo/_work/1/s/src/Controls/tests/DeviceTests/Controls.DeviceTests.csproj]
/Users/builder/azdo/_work/1/s/bin/dotnet/sdk/6.0.200-preview.22053.5/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018:    at Microsoft.NET.Sdk.WorkloadManifestReader.WorkloadResolver.Create(IWorkloadManifestProvider manifestProvider, String dotnetRootPath, String sdkVersion, String userProfileDir) [/Users/builder/azdo/_work/1/s/src/Controls/tests/DeviceTests/Controls.DeviceTests.csproj]
/Users/builder/azdo/_work/1/s/bin/dotnet/sdk/6.0.200-preview.22053.5/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018:    at Microsoft.NET.Build.Tasks.ProcessFrameworkReferences.GetResolvedPackVersion(String packID, String packVersion) [/Users/builder/azdo/_work/1/s/src/Controls/tests/DeviceTests/Controls.DeviceTests.csproj]
/Users/builder/azdo/_work/1/s/bin/dotnet/sdk/6.0.200-preview.22053.5/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018:    at Microsoft.NET.Build.Tasks.ProcessFrameworkReferences.ExecuteCore() [/Users/builder/azdo/_work/1/s/src/Controls/tests/DeviceTests/Controls.DeviceTests.csproj]
/Users/builder/azdo/_work/1/s/bin/dotnet/sdk/6.0.200-preview.22053.5/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018:    at Microsoft.NET.Build.Tasks.TaskBase.Execute() [/Users/builder/azdo/_work/1/s/src/Controls/tests/DeviceTests/Controls.DeviceTests.csproj]
/Users/builder/azdo/_work/1/s/bin/dotnet/sdk/6.0.200-preview.22053.5/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [/Users/builder/azdo/_work/1/s/src/Controls/tests/DeviceTests/Controls.DeviceTests.csproj]
/Users/builder/azdo/_work/1/s/bin/dotnet/sdk/6.0.200-preview.22053.5/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask) [/Users/builder/azdo/_work/1/s/src/Controls/tests/DeviceTests/Controls.DeviceTests.csproj]
    11 Warning(s)
    1 Error(s)

I thought this was odd, as it doesn't seem like this file should be opened with write access? I might be misreading the error message.

To Reproduce

I think this is pretty random on dotnet/maui's CI. It does:

  1. dotnet-install.sh to a folder like ./bin/dotnet/
  2. Install various workloads
  3. Build projects

The "Release" lane in the same build passed -- so going to retry and see if this problem goes away.

Exceptions (if any)

.binlog file: Microsoft.Maui-mac-Debug-Build.binlog.zip

/cc @dsplaisted

jonathanpeppers commented 2 years ago

The above error didn't happen on a rerun, so this might be some weird, sporadic failure.

dsplaisted commented 2 years ago

Installing workloads would try to write to these files if the manifests were being updated. So maybe there is something concurrent in the build that is installing workloads. Or maybe something went wrong with the installation process and the lock didn't get released.

marcpopMSFT commented 2 years ago

@jonathanpeppers has this happened again more recently? Any luck tracking down if something else is triggering an install?

jonathanpeppers commented 2 years ago

I haven't seen this in a while.

@mattleibow / @rmarinho have you seen this on dotnet/maui's CI?

benpsnyder commented 2 years ago

Getting this on macOS /usr/local/share/dotnet/sdk/7.0.100-preview.4.22252.9/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets(179,5): error MSB4018: at System.IO.Strategies.OSFileStreamStrategy

dotnet --list-sdks 6.0.301 [/usr/local/share/dotnet/sdk] 7.0.100-preview.4.22252.9 [/usr/local/share/dotnet/sdk]

Not sure if it's related but I landed here googling the error output.