Skip to content

Use a ThrowingTraceListener in GenerateFilteredReferenceAssembliesTask#83076

Open
RikkiGibson wants to merge 1 commit intodotnet:mainfrom
RikkiGibson:SemanticSearchTraceListener
Open

Use a ThrowingTraceListener in GenerateFilteredReferenceAssembliesTask#83076
RikkiGibson wants to merge 1 commit intodotnet:mainfrom
RikkiGibson:SemanticSearchTraceListener

Conversation

@RikkiGibson
Copy link
Copy Markdown
Member

@RikkiGibson RikkiGibson commented Apr 6, 2026

I was experiencing a build crash in #83059, which was somewhat hard to diagnose.

Basically the whole extent of the build failure message I was seeing was:

SemanticSearch.ReferenceAssemblies -> artifacts\bin\SemanticSearch.ReferenceAssemblies\Debu
  g\net10.0\SemanticSearch.ReferenceAssemblies.dll
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5):
 error MSB4217: Task host node exited prematurely. Diagnostic information may be found in files in the temporary files
directory named MSBuild_*.failure.txt.

Build FAILED.

It turned out that the compiler was failing a debug assertion in GenerateFilteredReferenceAssembliesTask.
In order to make this diagnosable, I added a ThrowingTraceListener, which made it throw an exception instead of crashing the process:

  SemanticSearch.ReferenceAssemblies -> artifacts\bin
  \SemanticSearch.ReferenceAssemblies\Debug\net10.0\SemanticSearch.ReferenceAssemblies.dll
src\Tools\SemanticSearch\ReferenceAssemblies\Semantic
Search.ReferenceAssemblies.csproj(85,5): error : GenerateFilteredReferenceAssembliesTask failed with exception:
src\Tools\SemanticSearch\ReferenceAssemblies\Semantic
Search.ReferenceAssemblies.csproj(85,5): error : System.TypeInitializationException: The type initializer for 'Microsoft.CodeAnalysis.WellKnownTypes' threw an exception.
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :  ---> System.InvalidOperationException: Enum name (System.Runtime.CompilerServices.ClosedAttribute) and type name (System.Runtime.CompilerServices.MemorySafetyRulesAttribute) must match at 261
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.Tools.GenerateFilteredReferenceAssembliesTask.ThrowingTraceListener.Fail(String message, String detailMessage) in src\Tools\SemanticSearch\BuildTask\GenerateFilteredReferenceAssembliesTask.cs:line 110
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at System.Diagnostics.TraceInternal.Fail(String message, String detailMessage)
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at System.Diagnostics.Debug.Fail(String message, String detailMessage)
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Roslyn.Utilities.RoslynDebug.Assert(Boolean condition, AssertInterpolatedStringHandler& message) in src\Compilers\Core\Portable\InternalUtilities\Debug.cs:line 32
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.WellKnownTypes.AssertEnumAndTableInSync() in src\Compilers\Core\Portable\WellKnownTypes.cs:line 811
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.WellKnownTypes..cctor() in src\Compilers\Core\Portable\WellKnownTypes.cs:line 765
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    --- End of inner exception stack trace ---
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.WellKnownTypes.GetMetadataName(WellKnownType id) in src\Compilers\Core\Portable\WellKnownTypes.cs:line 858
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol.GetTypeSymbolForWellKnownType(WellKnownType type) in src\Compilers\CSharp\Portable\Symbols\Metadata\PE\PEModuleSymbol.cs:line 492
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol.get_EventRegistrationToken() in src\Compilers\CSharp\Portable\Symbols\Metadata\PE\PEModuleSymbol.cs:line 447
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEEventSymbol.get_IsWindowsRuntimeEvent() in src\Compilers\CSharp\Portable\Symbols\Metadata\PE\PEEventSymbol.cs:line 194
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEEventSymbol..ctor(PEModuleSymbol moduleSymbol, PENamedTypeSymbol containingType, EventDefinitionHandle handle, PEMethodSymbol addMethod, PEMethodSymbol removeMethod, MultiDictionary`2 privateFieldNameToSymbols) in src\Compilers\CSharp\Portable\Symbols\Metadata\PE\PEEventSymbol.cs:line 117
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol.CreateEvents(MultiDictionary`2 privateFieldNameToSymbols, Dictionary`2 methodHandleToSymbol, ArrayBuilder`1 members) in src\Compilers\CSharp\Portable\Symbols\Metadata\PE\PENamedTypeSymbol.cs:line 2540
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol.LoadMembers() in src\Compilers\CSharp\Portable\Symbols\Metadata\PE\PENamedTypeSymbol.cs:line 1684
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol.EnsureAllMembersAreLoaded() in src\Compilers\CSharp\Portable\Symbols\Metadata\PE\PENamedTypeSymbol.cs:line 1585
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol.GetMembers() in src\Compilers\CSharp\Portable\Symbols\Metadata\PE\PENamedTypeSymbol.cs:line 1220
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.CSharp.Symbols.PublicModel.NamespaceOrTypeSymbol.Microsoft.CodeAnalysis.INamespaceOrTypeSymbol.GetMembers() in src\Compilers\CSharp\Portable\Symbols\PublicModel\NamespaceOrTypeSymbol.cs:line 15
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.Tools.GenerateFilteredReferenceAssembliesTask.<GetAllMembers>g__Recurse|28_0(IEnumerable`1 members, <>c__DisplayClass28_0&) in src\Tools\SemanticSearch\BuildTask\GenerateFilteredReferenceAssembliesTask.cs:line 332
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.Tools.GenerateFilteredReferenceAssembliesTask.<GetAllMembers>g__Recurse|28_0(IEnumerable`1 members, <>c__DisplayClass28_0&) in src\Tools\SemanticSearch\BuildTask\GenerateFilteredReferenceAssembliesTask.cs:line 351
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.Tools.GenerateFilteredReferenceAssembliesTask.<GetAllMembers>g__Recurse|28_0(IEnumerable`1 members, <>c__DisplayClass28_0&) in src\Tools\SemanticSearch\BuildTask\GenerateFilteredReferenceAssembliesTask.cs:line 351
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.Tools.GenerateFilteredReferenceAssembliesTask.GetAllMembers(Compilation compilation, List`1 types, List`1 methods, List`1 fields, Func`2 filter) in src\Tools\SemanticSearch\BuildTask\GenerateFilteredReferenceAssembliesTask.cs:line 320
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.Tools.GenerateFilteredReferenceAssembliesTask.Rewrite(Byte[] peImage, ImmutableArray`1 patterns) in src\Tools\SemanticSearch\BuildTask\GenerateFilteredReferenceAssembliesTask.cs:line 410
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.Tools.GenerateFilteredReferenceAssembliesTask.ExecuteImpl(IEnumerable`1 apiSets) in src\Tools\SemanticSearch\BuildTask\GenerateFilteredReferenceAssembliesTask.cs:line 154
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.Tools.GenerateFilteredReferenceAssembliesTask.ExecuteImpl() in src\Tools\SemanticSearch\BuildTask\GenerateFilteredReferenceAssembliesTask.cs:line 126
src\Tools\SemanticSearch\ReferenceAssemblies\SemanticSearch.ReferenceAssemblies.csproj(85,5): error :    at Microsoft.CodeAnalysis.Tools.GenerateFilteredReferenceAssembliesTask.Execute() in src\Tools\SemanticSearch\BuildTask\GenerateFilteredReferenceAssembliesTask.cs:line 96

Build FAILED.
Microsoft Reviewers: Open in CodeFlow

@RikkiGibson RikkiGibson marked this pull request as ready for review April 6, 2026 21:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant