dotnet / msbuild

The Microsoft Build Engine (MSBuild) is the build platform for .NET and Visual Studio.
https://docs.microsoft.com/visualstudio/msbuild/msbuild
MIT License
5.21k stars 1.35k forks source link

[Unhandled Exception]: #9139

Closed RikkiGibson closed 1 year ago

RikkiGibson commented 1 year ago

Issue Description

I was running a single test in Roslyn that I had added locally and got an OOM.

Steps to Reproduce

In a Roslyn enlistment, with 8.0.100-preview7 SDK installed, run:

> dotnet test .\src\Compilers\CSharp\Test\Emit\ --filter CodeGenAsyncTests --framework net7.0 --logger html

Actual Behavior

MSBUILD : error : This is an unhandled exception in MSBuild -- PLEASE UPVOTE AN EXISTING ISSUE OR FILE A NEW ONE AT htt
ps://aka.ms/msbuild/unhandled [C:\Users\rigibson\src\roslyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CShar
p.Emit.UnitTests.csproj::TargetFramework=net7.0]
MSBUILD : error :     System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. [C:\User
s\rigibson\src\roslyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.Emit.UnitTests.csproj::TargetFramewo
rk=net7.0]
MSBUILD : error :    at System.Reflection.RuntimeCustomAttributeData.GetCustomAttributeRecords(RuntimeModule module, In
t32 targetToken) [C:\Users\rigibson\src\roslyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.Emit.UnitTe
sts.csproj::TargetFramework=net7.0]
MSBUILD : error :    at System.Reflection.RuntimeCustomAttributeData.GetCustomAttributes(RuntimeModule module, Int32 tk
Target) [C:\Users\rigibson\src\roslyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.Emit.UnitTests.cspro
j::TargetFramework=net7.0]
MSBUILD : error :    at System.Reflection.RuntimeCustomAttributeData.GetCustomAttributesInternal(RuntimeType target) [C
:\Users\rigibson\src\roslyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.Emit.UnitTests.csproj::TargetF
ramework=net7.0]
MSBUILD : error :    at Microsoft.Build.Shared.LoadedType..ctor(Type type, AssemblyLoadInfo assemblyLoadInfo, Assembly
loadedAssembly, Type iTaskItemType, Boolean loadedViaMetadataLoadContext) [C:\Users\rigibson\src\roslyn\src\Compilers\C
Sharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.Emit.UnitTests.csproj::TargetFramework=net7.0]
MSBUILD : error :    at Microsoft.Build.Shared.TypeLoader.AssemblyInfoToLoadedTypes.GetLoadedTypeByTypeName(String type
Name, Boolean useTaskHost) [C:\Users\rigibson\src\roslyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.E
mit.UnitTests.csproj::TargetFramework=net7.0]
MSBUILD : error :    at Microsoft.Build.BackEnd.AssemblyTaskFactory.InitializeFactory(AssemblyLoadInfo loadInfo, String
 taskName, IDictionary`2 taskParameters, String taskElementContents, IDictionary`2 taskFactoryIdentityParameters, Boole
an taskHostFactoryExplicitlyRequested, TargetLoggingContext targetLoggingContext, ElementLocation elementLocation, Stri
ng taskProjectFile) [C:\Users\rigibson\src\roslyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.Emit.Uni
tTests.csproj::TargetFramework=net7.0]
MSBUILD : error :    at Microsoft.Build.Execution.TaskRegistry.RegisteredTaskRecord.GetTaskFactory(TargetLoggingContext
 targetLoggingContext, ElementLocation elementLocation, String taskProjectFile) [C:\Users\rigibson\src\roslyn\src\Compi
lers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.Emit.UnitTests.csproj::TargetFramework=net7.0]
MSBUILD : error :    at Microsoft.Build.Execution.TaskRegistry.RegisteredTaskRecord.CanTaskBeCreatedByFactory(String ta
skName, String taskProjectFile, IDictionary`2 taskIdentityParameters, TargetLoggingContext targetLoggingContext, Elemen
tLocation elementLocation) [C:\Users\rigibson\src\roslyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.E
mit.UnitTests.csproj::TargetFramework=net7.0]
MSBUILD : error :    at Microsoft.Build.Execution.TaskRegistry.<>c__DisplayClass40_0.<GetMatchingRegistration>b__0(Regi
steredTaskRecord r) [C:\Users\rigibson\src\roslyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.Emit.Uni
tTests.csproj::TargetFramework=net7.0]
MSBUILD : error :    at System.Linq.Enumerable.TryGetFirst[TSource](IEnumerable`1 source, Func`2 predicate, Boolean& fo
und) [C:\Users\rigibson\src\roslyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.Emit.UnitTests.csproj::
TargetFramework=net7.0]
MSBUILD : error :    at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate) [C:\User
s\rigibson\src\roslyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.Emit.UnitTests.csproj::TargetFramewo
rk=net7.0]
MSBUILD : error :    at Microsoft.Build.Execution.TaskRegistry.GetMatchingRegistration(String taskName, IEnumerable`1 t
askRecords, String taskProjectFile, IDictionary`2 taskIdentityParameters, TargetLoggingContext targetLoggingContext, El
ementLocation elementLocation) [C:\Users\rigibson\src\roslyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSha
rp.Emit.UnitTests.csproj::TargetFramework=net7.0]
MSBUILD : error :    at Microsoft.Build.Execution.TaskRegistry.GetTaskRegistrationRecord(String taskName, String taskPr
ojectFile, IDictionary`2 taskIdentityParameters, Boolean exactMatchRequired, TargetLoggingContext targetLoggingContext,
 ElementLocation elementLocation, Boolean& retrievedFromCache) [C:\Users\rigibson\src\roslyn\src\Compilers\CSharp\Test\
Emit\Microsoft.CodeAnalysis.CSharp.Emit.UnitTests.csproj::TargetFramework=net7.0]
MSBUILD : error :    at Microsoft.Build.Execution.TaskRegistry.GetTaskRegistrationRecord(String taskName, String taskPr
ojectFile, IDictionary`2 taskIdentityParameters, Boolean exactMatchRequired, TargetLoggingContext targetLoggingContext,
 ElementLocation elementLocation, Boolean& retrievedFromCache) [C:\Users\rigibson\src\roslyn\src\Compilers\CSharp\Test\
Emit\Microsoft.CodeAnalysis.CSharp.Emit.UnitTests.csproj::TargetFramework=net7.0]
MSBUILD : error :    at Microsoft.Build.Execution.TaskRegistry.GetRegisteredTask(String taskName, String taskProjectFil
e, IDictionary`2 taskIdentityParameters, Boolean exactMatchRequired, TargetLoggingContext targetLoggingContext, Element
Location elementLocation) [C:\Users\rigibson\src\roslyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.Em
it.UnitTests.csproj::TargetFramework=net7.0]
MSBUILD : error :    at Microsoft.Build.BackEnd.TaskExecutionHost.FindTaskInRegistry(IDictionary`2 taskIdentityParamete
rs) [C:\Users\rigibson\src\roslyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.Emit.UnitTests.csproj::T
argetFramework=net7.0]
MSBUILD : error :    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.FindTask(I
Dictionary`2 taskIdentityParameters) [C:\Users\rigibson\src\roslyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysi
s.CSharp.Emit.UnitTests.csproj::TargetFramework=net7.0]
MSBUILD : error :    at Microsoft.Build.BackEnd.TaskBuilder.ExecuteBucket(TaskHost taskHost, ItemBucket bucket, TaskExe
cutionMode howToExecuteTask, Dictionary`2 lookupHash) [C:\Users\rigibson\src\roslyn\src\Compilers\CSharp\Test\Emit\Micr
osoft.CodeAnalysis.CSharp.Emit.UnitTests.csproj::TargetFramework=net7.0]
MSBUILD : error :    at Microsoft.Build.BackEnd.TaskBuilder.ExecuteTask(TaskExecutionMode mode, Lookup lookup) [C:\User
s\rigibson\src\roslyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.Emit.UnitTests.csproj::TargetFramewo
rk=net7.0]
MSBUILD : error :    at Microsoft.Build.BackEnd.TaskBuilder.ExecuteTask(TargetLoggingContext loggingContext, BuildReque
stEntry requestEntry, ITargetBuilderCallback targetBuilderCallback, ProjectTargetInstanceChild taskInstance, TaskExecut
ionMode mode, Lookup inferLookup, Lookup executeLookup, CancellationToken cancellationToken) [C:\Users\rigibson\src\ros
lyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.Emit.UnitTests.csproj::TargetFramework=net7.0]
MSBUILD : error :    at Microsoft.Build.BackEnd.TargetEntry.ProcessBucket(ITaskBuilder taskBuilder, TargetLoggingContex
t targetLoggingContext, TaskExecutionMode mode, Lookup lookupForInference, Lookup lookupForExecution) [C:\Users\rigibso
n\src\roslyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.Emit.UnitTests.csproj::TargetFramework=net7.0
]
MSBUILD : error :    at Microsoft.Build.BackEnd.TargetEntry.ExecuteTarget(ITaskBuilder taskBuilder, BuildRequestEntry r
equestEntry, ProjectLoggingContext projectLoggingContext, CancellationToken cancellationToken) [C:\Users\rigibson\src\r
oslyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.Emit.UnitTests.csproj::TargetFramework=net7.0]
MSBUILD : error :    at Microsoft.Build.BackEnd.TargetBuilder.ProcessTargetStack(ITaskBuilder taskBuilder) [C:\Users\ri
gibson\src\roslyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.Emit.UnitTests.csproj::TargetFramework=n
et7.0]
MSBUILD : error :    at Microsoft.Build.BackEnd.TargetBuilder.BuildTargets(ProjectLoggingContext loggingContext, BuildR
equestEntry entry, IRequestBuilderCallback callback, String[] targetNames, Lookup baseLookup, CancellationToken cancell
ationToken) [C:\Users\rigibson\src\roslyn\src\Compilers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.Emit.UnitTests.c
sproj::TargetFramework=net7.0]
MSBUILD : error :    at Microsoft.Build.BackEnd.RequestBuilder.BuildProject() [C:\Users\rigibson\src\roslyn\src\Compile
rs\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.Emit.UnitTests.csproj::TargetFramework=net7.0]
MSBUILD : error :    at Microsoft.Build.BackEnd.RequestBuilder.BuildAndReport() [C:\Users\rigibson\src\roslyn\src\Compi
lers\CSharp\Test\Emit\Microsoft.CodeAnalysis.CSharp.Emit.UnitTests.csproj::TargetFramework=net7.0]
Fatal error. Internal CLR error. (0x80131506)

Analysis

No response

Versions & Configurations

dotnet --version 8.0.100-preview.7.23376.3

JaynieBai commented 1 year ago

Can't repro this locally in Windows.

JanKrivanek commented 1 year ago

@RikkiGibson Can you reproduce this? A memory dump would be very helpful (if this was on windows and WER was on - you might be able to get it without reproing. But if it reproes consistently - custom collected minidump might be better - e.g. use ProcDump: procdump -ma -e -x . <your command line> to monitor the app for crash and collect dump into current folder)

RikkiGibson commented 1 year ago

I suspect that running some Roslyn bootstrap builds locally before testing caused memory usage to build up till finally it OOMed. I'll try and turn on WER and follow up if I happen to get a dump. Thanks.

ghost commented 1 year ago

This issue is marked as stale because feedback has been requested for 30 days with no response. Please respond within 14 days or this issue will be closed due to inactivity.

ghost commented 1 year ago

This issue was closed due to inactivity. If you can still reproduce this bug, please comment with the requested information, detailed steps to reproduce the problem, or any other notes that might help in the investigation.