runtime: Process crash with "Internal CLR error" (0x80131506) in Roslyn CI

Description

Roslyn CI failed with the following error:

https://dev.azure.com/dnceng/public/_build/results?buildId=906787&view=logs&j=7817cc08-46f6-529a-b675-9c2d2b016c0b&t=0fd245be-2f58-5546-b778-7c0bac845221&l=68

The active test run was aborted. Reason: Test host process crashed : Fatal error. Internal CLR error. (0x80131506)
   at System.Collections.Concurrent.ConcurrentDictionary`2[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]..ctor(Int32, Int32, Boolean, System.Collections.Generic.IEqualityComparer`1<System.__Canon>)
   at System.Collections.Concurrent.ConcurrentDictionary`2[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]..ctor()
   at System.RuntimeType.CreateInstanceDefaultCtor(Boolean, Boolean, Boolean, Boolean)
   at System.Activator.CreateInstance[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]()
   at System.Threading.LazyInitializer.EnsureInitializedCore[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon ByRef)
   at Microsoft.CodeAnalysis.Compilation.MarkImportDirectiveAsUsed(Microsoft.CodeAnalysis.SyntaxTree, Int32)
   at Microsoft.CodeAnalysis.Compilation.MarkImportDirectiveAsUsed(Microsoft.CodeAnalysis.SyntaxNode)
   at Microsoft.CodeAnalysis.CSharp.Imports.LookupSymbolInAliases(Microsoft.CodeAnalysis.CSharp.Binder, Microsoft.CodeAnalysis.CSharp.LookupResult, System.String, Int32, Roslyn.Utilities.ConsList`1<Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>, Microsoft.CodeAnalysis.CSharp.LookupOptions, Boolean, System.Collections.Generic.HashSet`1<Microsoft.CodeAnalysis.DiagnosticInfo> ByRef)
   at Microsoft.CodeAnalysis.CSharp.InContainerBinder.LookupSymbolsInSingleBinder(Microsoft.CodeAnalysis.CSharp.LookupResult, System.String, Int32, Roslyn.Utilities.ConsList`1<Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>, Microsoft.CodeAnalysis.CSharp.LookupOptions, Microsoft.CodeAnalysis.CSharp.Binder, Boolean, System.Collections.Generic.HashSet`1<Microsoft.CodeAnalysis.DiagnosticInfo> ByRef)
   at Microsoft.CodeAnalysis.CSharp.Binder.LookupSymbolsInternal(Microsoft.CodeAnalysis.CSharp.LookupResult, System.String, Int32, Roslyn.Utilities.ConsList`1<Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>, Microsoft.CodeAnalysis.CSharp.LookupOptions, Boolean, System.Collections.Generic.HashSet`1<Microsoft.CodeAnalysis.DiagnosticInfo> ByRef)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindNonGenericSimpleNamespaceOrTypeOrAliasSymbol(Microsoft.CodeAnalysis.CSharp.Syntax.IdentifierNameSyntax, Microsoft.CodeAnalysis.DiagnosticBag, Roslyn.Utilities.ConsList`1<Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>, Boolean, Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindNamespaceOrTypeOrAliasSymbol(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax, Microsoft.CodeAnalysis.DiagnosticBag, Roslyn.Utilities.ConsList`1<Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>, Boolean)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindTypeOrAlias(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax, Microsoft.CodeAnalysis.DiagnosticBag, Roslyn.Utilities.ConsList`1<Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>, Boolean)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindTypeOrAliasOrConstraintKeyword(Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax, Microsoft.CodeAnalysis.DiagnosticBag, ConstraintContextualKeyword ByRef)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindTypeParameterConstraints(Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterSyntax, Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterConstraintClauseSyntax, Boolean, Microsoft.CodeAnalysis.DiagnosticBag)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindTypeParameterConstraintClauses(Microsoft.CodeAnalysis.CSharp.Symbol, System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol>, Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterListSyntax, Microsoft.CodeAnalysis.SyntaxList`1<Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterConstraintClauseSyntax>, Microsoft.CodeAnalysis.DiagnosticBag, Boolean, Boolean)
   at Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper.MakeTypeParameterConstraintKinds(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Microsoft.CodeAnalysis.CSharp.Binder, System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol>, Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterListSyntax, Microsoft.CodeAnalysis.SyntaxList`1<Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterConstraintClauseSyntax>)
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol.GetTypeParameterConstraintKinds()
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol.GetTypeParameterConstraintTypes()
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodTypeParameterSymbol.ResolveBounds(Roslyn.Utilities.ConsList`1<Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol>, Microsoft.CodeAnalysis.DiagnosticBag)
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceTypeParameterSymbolBase.GetBounds(Roslyn.Utilities.ConsList`1<Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol>)
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceTypeParameterSymbolBase.GetConstraintTypes(Roslyn.Utilities.ConsList`1<Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol>)
   at Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol.EnsureAllConstraintsAreResolved(System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol>)
   at Microsoft.CodeAnalysis.CSharp.Symbols.VarianceSafety.CheckTypeParametersVarianceSafety(System.Collections.Immutable.ImmutableArray`1<Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol>, Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Microsoft.CodeAnalysis.DiagnosticBag)
   at Microsoft.CodeAnalysis.CSharp.Symbols.VarianceSafety.CheckMethodVarianceSafety(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, LocationProvider`1<Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>, Microsoft.CodeAnalysis.DiagnosticBag)
   at Microsoft.CodeAnalysis.CSharp.Symbols.VarianceSafety.CheckMethodVarianceSafety(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Microsoft.CodeAnalysis.DiagnosticBag)
   at Microsoft.CodeAnalysis.CSharp.Symbols.VarianceSafety.CheckInterfaceVarianceSafety(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol, Microsoft.CodeAnalysis.DiagnosticBag)
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.GetSynthesizedExplicitImplementations(System.Threading.CancellationToken)
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.ForceComplete(Microsoft.CodeAnalysis.SourceLocation, System.Threading.CancellationToken)
   at Microsoft.CodeAnalysis.CSharp.Symbol.ForceCompleteMemberByLocation(Microsoft.CodeAnalysis.SourceLocation, Microsoft.CodeAnalysis.CSharp.Symbol, System.Threading.CancellationToken)
   at Roslyn.Utilities.RoslynParallel+<>c__DisplayClass1_0.<For>g__errorHandlingBody|0(Int32)
   at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].<ForWorker>b__1(System.Threading.Tasks.RangeWorker ByRef, Int32, Boolean ByRef)
   at System.Threading.Tasks.TaskReplicator+Replica.Execute()
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(System.Threading.Thread, System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef, System.Threading.Thread)
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
Command: test "F:\workspace\_work\1\s\artifacts\bin\Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests\Release\net5.0\Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests.dll" --filter <PrivateImplementationDetails>+__StaticArrayInitTypeSize=10|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=100|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=104|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=108|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=12|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=120|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=132|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=136|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=144|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=16|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=176|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=1764|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=20|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=224|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=24|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=28|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=32|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=36|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=40|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=44|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=48|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=5|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=52|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=56|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=60|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=64|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=68|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=72|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=76|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=80|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=820|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=84|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=88|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=92|<PrivateImplementationDetails>+__StaticArrayInitTypeSize=96|Microsoft.CodeAnalysis.CSharp.ForEachStatementInfoTests|Microsoft.CodeAnalysis.CSharp.QueryClauseInfoTests|Microsoft.CodeAnalysis.CSharp.TypeInfoTests|Microsoft.CodeAnalysis.CSharp.UnitTests.AccessTests|Microsoft.CodeAnalysis.CSharp.UnitTests.BadSymbolReference|Microsoft.CodeAnalysis.CSharp.UnitTests.BaseClassTests|Microsoft.CodeAnalysis.CSharp.UnitTests.ClsComplianceTests|Microsoft.CodeAnalysis.CSharp.UnitTests.CompilationAPITests|Microsoft.CodeAnalysis.CSharp.UnitTests.CompilationAPITests+EvolvingTestReference|Microsoft.CodeAnalysis.CSharp.UnitTests.CompilationCreationTests|Microsoft.CodeAnalysis.CSharp.UnitTests.CompilationCreationTests+DummyReferenceResolver|Microsoft.CodeAnalysis.CSharp.UnitTests.CompilationCreationTests+Resolver|Microsoft.CodeAnalysis.CSharp.UnitTests.CompilationErrorTests|Microsoft.CodeAnalysis.CSharp.UnitTests.CompletionTests|Microsoft.CodeAnalysis.CSharp.UnitTests.ConstructorDocumentationCommentTests|Microsoft.CodeAnalysis.CSharp.UnitTests.ContainerTests|Microsoft.CodeAnalysis.CSharp.UnitTests.CrefTests|Microsoft.CodeAnalysis.CSharp.UnitTests.CrossLanguageTests|Microsoft.CodeAnalysis.CSharp.UnitTests.CSharpCompilationOptionsTests|Microsoft.CodeAnalysis.CSharp.UnitTests.CSharpCompilationOptionsTests+MetadataReferenceResolverWithEquality|Microsoft.CodeAnalysis.CSharp.UnitTests.CustomModifierCopyTests|Microsoft.CodeAnalysis.CSharp.UnitTests.Declarations.SourcePlusMetadataTests|Microsoft.CodeAnalysis.CSharp.UnitTests.DeclarationTests|Microsoft.CodeAnalysis.CSharp.UnitTests.DeclarationTests+CountedSyntaxTree|Microsoft.CodeAnalysis.CSharp.UnitTests.DeclarationTests+CountedSyntaxTree+Reference|Microsoft.CodeAnalysis.CSharp.UnitTests.DelegateTests|Microsoft.CodeAnalysis.CSharp.UnitTests.DestructorDocumentationCommentTests|Microsoft.CodeAnalysis.CSharp.UnitTests.DocumentationCommentCompilerTests|Microsoft.CodeAnalysis.CSharp.UnitTests.DocumentationCommentCompilerTests+DocumentationCommentAdder|Microsoft.CodeAnalysis.CSharp.UnitTests.DocumentationCommentIDTests|Microsoft.CodeAnalysis.CSharp.UnitTests.DocumentationModeTests|Microsoft.CodeAnalysis.CSharp.UnitTests.EventDocumentationCommentTests|Microsoft.CodeAnalysis.CSharp.UnitTests.ExtendedPartialMethodsTests|Microsoft.CodeAnalysis.CSharp.UnitTests.ExternAliasTests|Microsoft.CodeAnalysis.CSharp.UnitTests.FieldDocumentationCommentTests|Microsoft.CodeAnalysis.CSharp.UnitTests.FieldTests|Microsoft.CodeAnalysis.CSharp.UnitTests.FunctionPointerTypeSymbolTests|Microsoft.CodeAnalysis.CSharp.UnitTests.FunctionPointerTypeSymbolTests+Equality|Microsoft.CodeAnalysis.CSharp.UnitTests.GetSemanticInfoTests|Microsoft.CodeAnalysis.CSharp.UnitTests.GetUnusedImportDirectivesTests|Microsoft.CodeAnalysis.CSharp.UnitTests.ImplicitClassTests|Microsoft.CodeAnalysis.CSharp.UnitTests.IncludeTests|Microsoft.CodeAnalysis.CSharp.UnitTests.IndexedProperties_BindingTests|Microsoft.CodeAnalysis.CSharp.UnitTests.IndexedTypeParameterTests|Microsoft.CodeAnalysis.CSharp.UnitTests.LoadDirectiveTests|Microsoft.CodeAnalysis.CSharp.UnitTests.LocationTests|Microsoft.CodeAnalysis.CSharp.UnitTests.LookupSymbolsInfoTests|Microsoft.CodeAnalysis.CSharp.UnitTests.MetadataMemberTests|Microsoft.CodeAnalysis.CSharp.UnitTests.MetadataTypeTests|Microsoft.CodeAnalysis.CSharp.UnitTests.MethodDocumentationCommentTests|Microsoft.CodeAnalysis.CSharp.UnitTests.MethodEqualityTests|Microsoft.CodeAnalysis.CSharp.UnitTests.MethodTests --framework net5.0 --logger "xunit;LogFilePath=F:\workspace\_work\1\s\artifacts\TestResults\Release\Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests.dll.1_net5.0_x86.xml"
xUnit output log: F:\workspace\_work\1\s\artifacts\log\Release\xUnitFailure-Microsoft.CodeAnalysis.CSharp.Symbol.UnitTests.dll.1.log

CLR version 5.0.100 on Windows.

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 1
  • Comments: 27 (27 by maintainers)

Commits related to this issue

Most upvoted comments

fyi, it looks like the fix should make it into 5.0.2.

@jaredpar Thank you for collecting the dump! @BruceForstall should be able to take it from here.

The bug:

00007ffe`a86d1202 e829cee0fe      call    CLRStub[MethodDescPrestub]@7ffea74de030 (00007ffe`a74de030) (System.Collections.Immutable.ImmutableArray.ToImmutableArray[[System.__Canon, System.Private.CoreLib]](System.Collections.Generic.IEnumerable`1<System.__Canon>), mdToken: 0000000006000155)
000000c7 -rdi -rdx +rax
00007ffe`a86d1207 488945a0        mov     qword ptr [rbp-60h],rax <--- We have stored GC reference at rbp-60 here...
000000cb +rbp-60
00007ffe`a86d120b 498bd6          mov     rdx,r14
000000ce +rdx
00007ffe`a86d120e 48b980fdaba7fe7f0000 mov rcx,7FFEA7ABFD80h (MD: System.Collections.Immutable.ImmutableArray.ToImmutableArray[[System.Func`2[[Roslyn.Utilities.ObjectReader, Microsoft.CodeAnalysis],[Roslyn.Utilities.IObjectWritable, Microsoft.CodeAnalysis]], System.Private.CoreLib]](System.Collections.Generic.IEnumerable`1<System.Func`2<Roslyn.Utilities.ObjectReader,Roslyn.Utilities.IObjectWritable>>))
000000d8 -rbp-60 <--- This is the bug. We are stopping reporting for rbp-60 here.
00007ffe`a86d1218 e813cee0fe      call    CLRStub[MethodDescPrestub]@7ffea74de030 (00007ffe`a74de030) (System.Collections.Immutable.ImmutableArray.ToImmutableArray[[System.__Canon, System.Private.CoreLib]](System.Collections.Generic.IEnumerable`1<System.__Canon>), mdToken: 0000000006000155)
000000dd -r14 -rdx
00007ffe`a86d121d 48894598        mov     qword ptr [rbp-68h],rax  <--- this is the IP where GC happened
000000e1 +rbp-68
00007ffe`a86d1221 488b45a0        mov     rax,qword ptr [rbp-60h] <--- ... and using rbp-60 here unprotected!
00007ffe`a86d1225 488b5598        mov     rdx,qword ptr [rbp-68h]