Closed
Description
There are quite a few ILC assertions in:
pipeline: runtime-coreclr superpmi-collection
(https://dev.azure.com/dnceng/internal/_build?definitionId=977&_a=summary)
job: SuperPMI collect smoke_tests nativeaot linux x64 checked
of the form:
[08:44:40] Process terminated. Assertion failed.
[08:44:40] type == type.ConvertToCanonForm(CanonicalFormKind.Specific)
[08:44:40] at System.Diagnostics.DebugProvider.Fail(String, String) + 0x37
[08:44:40] at System.Diagnostics.Debug.Fail(String, String) + 0x30
[08:44:40] at ILCompiler.DependencyAnalysis.NecessaryCanonicalEETypeNode..ctor(NodeFactory, TypeDesc) + 0xb7
[08:44:40] at ILCompiler.DependencyAnalysis.NodeFactory.CreateNecessaryTypeNode(TypeDesc) + 0x11d
[08:44:40] at Internal.TypeSystem.LockFreeReaderHashtable`2.CreateValueAndEnsureValueIsInTable(TKey) + 0x14
[08:44:40] at ILCompiler.DependencyAnalysis.NodeFactory.NecessaryTypeSymbol(TypeDesc) + 0xd3
[08:44:40] at Internal.JitInterface.CorInfoImpl.embedClassHandle(CORINFO_CLASS_STRUCT_*, Void*&) + 0x90
[08:44:40] at Internal.JitInterface.CorInfoImpl._embedClassHandle(IntPtr, IntPtr*, CORINFO_CLASS_STRUCT_*, Void**) + 0x4b
[08:44:40] at Internal.JitInterface.CorInfoImpl.JitCompileMethod(IntPtr&, IntPtr, IntPtr, IntPtr, CORINFO_METHOD_INFO&, UInt32, IntPtr&, UInt32&) + 0xcd
[08:44:40] at Internal.JitInterface.CorInfoImpl.CompileMethodInternal(IMethodNode, MethodIL) + 0xe7
[08:44:40] at Internal.JitInterface.CorInfoImpl.CompileMethod(MethodCodeNode, MethodIL) + 0x67
[08:44:40] at ILCompiler.RyuJitCompilation.CompileSingleMethod(CorInfoImpl, MethodCodeNode) + 0xc1
[08:44:40] at ILCompiler.RyuJitCompilation.CompileSingleMethod(MethodCodeNode) + 0xf8
[08:44:40] at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`2.<ForWorker>b__1(RangeWorker&, Int64, Boolean&) + 0x15c
[08:44:40] at System.Threading.Tasks.TaskReplicator.Replica.Execute() + 0x5f
[08:44:40] at System.Threading.ExecutionContext.RunInternal(ExecutionContext, ContextCallback, Object) + 0x9c
[08:44:40] at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task&, Thread) + 0x102
[08:44:40] at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task, Boolean) + 0xc0
[08:44:40] at System.Threading.Tasks.TaskScheduler.TryRunInline(Task, Boolean) + 0xa6
[08:44:40] at System.Threading.Tasks.Task.InternalRunSynchronously(TaskScheduler, Boolean) + 0xa7
[08:44:40] at System.Threading.Tasks.TaskReplicator.Run[TState](TaskReplicator.ReplicatableUserAction`1, ParallelOptions, Boolean) + 0x183
[08:44:40] at System.Threading.Tasks.Parallel.ForWorker[TLocal,TInt](TInt, TInt, ParallelOptions, Action`1, Action`2, Func`4, Func`1, Action`1) + 0x1f2
[08:44:40] at ILCompiler.RyuJitCompilation.CompileMultiThreaded(List`1) + 0x24a
[08:44:40] at ILCompiler.RyuJitCompilation.ComputeDependencyNodeDependencies(List`1) + 0x172
[08:44:40] at ILCompiler.DependencyAnalysisFramework.DependencyAnalyzer`2.ComputeMarkedNodes() + 0x161
[08:44:40] at ILCompiler.RyuJitCompilation.CompileInternal(String, ObjectDumper) + 0x23
[08:44:40] at ILCompiler.Compilation.ILCompiler.ICompilation.Compile(String, ObjectDumper) + 0x4c
[08:44:40] at ILCompiler.Program.Run() + 0x2b95
[08:44:40] at ILCompiler.ILCompilerRootCommand.<>c__DisplayClass249_0.<.ctor>b__0(ParseResult) + 0x30f
[08:44:40] at System.CommandLine.Invocation.InvocationPipeline.Invoke(ParseResult) + 0x69
[08:44:40] at ILCompiler.Program.Main(String[] args) + 0xde
These crashes seem to lead to SuperPMI collection data corruption, which ends up with ERROR: Method 2007 is of low integrity.
messages, which, presumably, is what causes this job to be marked as "warning".
@dotnet/jit-contrib @MichalStrehovsky