Skip to content

Use a ThrowingTraceListener in GenerateFilteredReferenceAssembliesTask#83076

Merged
RikkiGibson merged 5 commits into
dotnet:mainfrom
RikkiGibson:SemanticSearchTraceListener
Apr 9, 2026
Merged

Use a ThrowingTraceListener in GenerateFilteredReferenceAssembliesTask#83076
RikkiGibson merged 5 commits into
dotnet:mainfrom
RikkiGibson:SemanticSearchTraceListener

Conversation

@RikkiGibson

@RikkiGibson RikkiGibson commented Apr 6, 2026

Copy link
Copy Markdown
Member

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

Copy link
Copy Markdown
Member Author

@tmat @dotnet/roslyn-infrastructure for review

@RikkiGibson RikkiGibson closed this Apr 8, 2026
@RikkiGibson RikkiGibson reopened this Apr 8, 2026
Comment thread src/Tools/SemanticSearch/BuildTask/GenerateFilteredReferenceAssembliesTask.cs Outdated
@RikkiGibson RikkiGibson requested review from a team as code owners April 8, 2026 22:14
@@ -1,11 +1,11 @@
// Licensed to the .NET Foundation under one or more agreements.
// Licensed to the .NET Foundation under one or more agreements.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BOM change?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed the BOM.

@RikkiGibson RikkiGibson requested a review from 333fred April 8, 2026 23:07
@RikkiGibson RikkiGibson enabled auto-merge (squash) April 8, 2026 23:21
@RikkiGibson RikkiGibson merged commit e3a102f into dotnet:main Apr 9, 2026
27 of 28 checks passed
@dotnet-policy-service dotnet-policy-service Bot added this to the Next milestone Apr 9, 2026
@JoeRobich JoeRobich modified the milestones: Next, 18.7 Apr 28, 2026
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.

3 participants