Test System.Diagnostics.Tests.DiagnosticSourceTest.AllSubscriberStress catches intermittent crash on VisionFive2 board with disabled TieredCompilation.
Run command and log:
Test behavior is intermittent: different asserts may fire or SIGSEGV may happen or even the test can pass. The most common path on crash inside Object::Validate, called from GC invocation. Backtrace for the assert crash above is:
(gdb) bt
#0 DBG_DebugBreak () at /home/runtime/src/coreclr/pal/src/arch/riscv64/debugbreak.S:6
#1 0x0000003ff76b131a in DebugBreak () at /home/runtime/src/coreclr/pal/src/debug/debug.cpp:407
#2 0x0000003ff74c3dca in DbgAssertDialog (szFile=0x3ff77c9a44 "/home/runtime/src/coreclr/vm/methodtable.cpp", iLine=6286, szExpr=0x3ff77caa52 "(GetComponentSize() <= 2) || IsArray()") at /home/runtime/src/coreclr/utilcode/debug.cpp:431
#3 0x0000003ff6fb7632 in MethodTable::SanityCheck (this=0xaad547df8) at /home/runtime/src/coreclr/vm/methodtable.cpp:6286
#4 0x0000003ff6fbd5d2 in MethodTable::Validate (this=0xaad547df8) at /home/runtime/src/coreclr/vm/methodtable.cpp:8456
#5 0x0000003ff6fc59e8 in Object::ValidateInner (this=0xaad77f078, bDeep=1, bVerifyNextHeader=1, bVerifySyncBlock=1) at /home/runtime/src/coreclr/vm/object.cpp:553
#6 0x0000003ff6fc4d02 in Object::Validate (this=0xaad77f078, bDeep=1, bVerifyNextHeader=1, bVerifySyncBlock=1) at /home/runtime/src/coreclr/vm/object.cpp:529
#7 0x0000003ff729df72 in GcInfoDecoder::ReportRegisterToGC (this=0x3e8c7dc120, regNum=22, gcFlags=0, pRD=0x3e8c7dd490, flags=0, pCallBack=0x3ff7131da0 <GcEnumObject(void*, OBJECTREF*, unsigned int)>, hCallBack=0x3e8c7dddf0) at /home/runtime/src/coreclr/vm/gcinfodecoder.cpp:2129
#8 0x0000003ff729cfe2 in GcInfoDecoder::ReportSlotToGC (this=0x3e8c7dc120, slotDecoder=..., slotIndex=13, pRD=0x3e8c7dd490, reportScratchSlots=false, inputFlags=0, pCallBack=0x3ff7131da0 <GcEnumObject(void*, OBJECTREF*, unsigned int)>, hCallBack=0x3e8c7dddf0) at /home/runtime/src/coreclr/inc/gcinfodecoder.h:715
#9 0x0000003ff729c4f2 in GcInfoDecoder::EnumerateLiveSlots (this=0x3e8c7dc120, pRD=0x3e8c7dd490, reportScratchSlots=false, inputFlags=0, pCallBack=0x3ff7131da0 <GcEnumObject(void*, OBJECTREF*, unsigned int)>, hCallBack=0x3e8c7dddf0) at /home/runtime/src/coreclr/vm/gcinfodecoder.cpp:1065
#10 0x0000003ff6edf5b6 in EECodeManager::EnumGcRefs (this=0x2aaab2d710, pRD=0x3e8c7dd490, pCodeInfo=0x3e8c7dd2f0, flags=0, pCallBack=0x3ff7131da0 <GcEnumObject(void*, OBJECTREF*, unsigned int)>, hCallBack=0x3e8c7dddf0, relOffsetOverride=4294967295) at /home/runtime/src/coreclr/vm/eetwain.cpp:1542
#11 0x0000003ff7132d7a in GcStackCrawlCallBack (pCF=0x3e8c7dd0c0, pData=0x3e8c7dddf0) at /home/runtime/src/coreclr/vm/gcenv.ee.common.cpp:329
#12 0x0000003ff701511c in Thread::MakeStackwalkerCallback (this=0x2aaae77940, pCF=0x3e8c7dd0c0, pCallback=0x3ff7131f84 <GcStackCrawlCallBack(CrawlFrame*, void*)>, pData=0x3e8c7dddf0, uFramesProcessed=9) at /home/runtime/src/coreclr/vm/stackwalk.cpp:831
#13 0x0000003ff701535c in Thread::StackWalkFramesEx (this=0x2aaae77940, pRD=0x3e8c7dd490, pCallback=0x3ff7131f84 <GcStackCrawlCallBack(CrawlFrame*, void*)>, pData=0x3e8c7dddf0, flags=34048, pStartFrame=0x0) at /home/runtime/src/coreclr/vm/stackwalk.cpp:911
#14 0x0000003ff701613a in Thread::StackWalkFrames (this=0x2aaae77940, pCallback=0x3ff7131f84 <GcStackCrawlCallBack(CrawlFrame*, void*)>, pData=0x3e8c7dddf0, flags=34048, pStartFrame=0x0) at /home/runtime/src/coreclr/vm/stackwalk.cpp:991
#15 0x0000003ff712b75c in ScanStackRoots (pThread=0x2aaae77940, fn=0x3ff73bacb8 <WKS::GCHeap::Promote(Object**, ScanContext*, unsigned int)>, sc=0x3e8c7de348) at /home/runtime/src/coreclr/vm/gcenv.ee.cpp:204
#16 0x0000003ff712b3a6 in GCToEEInterface::GcScanRoots (fn=0x3ff73bacb8 <WKS::GCHeap::Promote(Object**, ScanContext*, unsigned int)>, condemned=0, max_gen=2, sc=0x3e8c7de348) at /home/runtime/src/coreclr/vm/gcenv.ee.cpp:305
#17 0x0000003ff72d2ee4 in GCScan::GcScanRoots (fn=0x3ff73bacb8 <WKS::GCHeap::Promote(Object**, ScanContext*, unsigned int)>, condemned=0, max_gen=2, sc=0x3e8c7de348) at /home/runtime/src/coreclr/gc/gcscan.cpp:152
#18 0x0000003ff739c19e in WKS::gc_heap::mark_phase (condemned_gen_number=0) at /home/runtime/src/coreclr/gc/gc.cpp:29550
#19 0x0000003ff7397c6e in WKS::gc_heap::gc1 () at /home/runtime/src/coreclr/gc/gc.cpp:22276
#20 0x0000003ff73ad2d8 in WKS::gc_heap::garbage_collect (n=0) at /home/runtime/src/coreclr/gc/gc.cpp:24355
#21 0x0000003ff738e146 in WKS::GCHeap::GarbageCollectGeneration (this=0x2aaaaeaba0, gen=0, reason=reason_alloc_soh) at /home/runtime/src/coreclr/gc/gc.cpp:50593
#22 0x0000003ff738ff68 in WKS::gc_heap::trigger_gc_for_alloc (gen_number=0, gr=reason_alloc_soh, msl=0x3ff7adc478 <WKS::gc_heap::more_space_lock_soh>, loh_p=false, take_state=WKS::mt_try_budget) at /home/runtime/src/coreclr/gc/gc.cpp:18818
#23 0x0000003ff739128a in WKS::gc_heap::try_allocate_more_space (acontext=0x3e8c7e09d0, size=24, flags=2, gen_number=0) at /home/runtime/src/coreclr/gc/gc.cpp:18956
#24 0x0000003ff739149e in WKS::gc_heap::allocate_more_space (acontext=0x3e8c7e09d0, size=24, flags=2, alloc_generation_number=0) at /home/runtime/src/coreclr/gc/gc.cpp:19456
#25 0x0000003ff73e073a in WKS::gc_heap::allocate (jsize=24, acontext=0x3e8c7e09d0, flags=2) at /home/runtime/src/coreclr/gc/gc.cpp:19487
#26 WKS::GCHeap::Alloc (this=0x2aaaaeaba0, context=0x3e8c7e09d0, size=24, flags=2) at /home/runtime/src/coreclr/gc/gc.cpp:49515
#27 0x0000003ff71349fc in Alloc (size=24, flags=GC_ALLOC_CONTAINS_REF) at /home/runtime/src/coreclr/vm/gchelpers.cpp:227
#28 0x0000003ff713675a in AllocateObject (pMT=0x3f7a865f28, flags=GC_ALLOC_CONTAINS_REF) at /home/runtime/src/coreclr/vm/gchelpers.cpp:1051
#29 0x0000003ff6e270d8 in AllocateObject (pMT=0x3f7a865f28) at /home/runtime/src/coreclr/vm/gchelpers.h:68
#30 0x0000003ff715d16a in JIT_New (typeHnd_=0x3f7a865f28) at /home/runtime/src/coreclr/vm/jithelpers.cpp:1264
#31 0x0000003ff715ccce in JIT_NewS_MP_FastPortable (typeHnd_=0x3f7a865f28) at /home/runtime/src/coreclr/vm/jithelpers.cpp:1229
#32 0x0000003f7a4d69a0 in ?? ()
(gdb) frame 32
#32 0x0000003f7a4d69a0 in ?? ()
(gdb) btm
# 0 0x3f7a4d69a0 void [xunit.assert] Xunit.Assert::DoesNotContain(!!0,class [System.Runtime]System.Collections.Generic.IEnumerable`1<!!0>)[Optimized]
# 1 0x3f7a4d3608 void [xunit.assert] Xunit.Assert::All(class [System.Runtime]System.Collections.Generic.IEnumerable`1<!!0>,class [System.Runtime]System.Action`2<!!0,int32>)[Optimized]
# 2 0x3f7a4cb488 instance void [System.Diagnostics.DiagnosticSource.Tests] System.Diagnostics.Tests.DiagnosticSourceTest+<>c__DisplayClass10_1::<AllSubscriberStress>b__1()[Optimized]
# 3 0x3f7a139210 void [System.Private.CoreLib] System.Threading.ExecutionContext::RunInternal(class System.Threading.ExecutionContext,class System.Threading.ContextCallback,object)[Optimized]
# 4 0x3f7a138cd4 instance void [System.Private.CoreLib] System.Threading.Tasks.Task::ExecuteWithThreadLocal(class System.Threading.Tasks.Task&,class System.Threading.Thread)[Optimized]
Testcase creates 100 threads and each thread allocates 100-104 DiagnosticListener objects. Frame 13 above with this of type Thread gives information about thread with problematic stack which breaks stack-walking algorithm:
Hidden gdblog
```
(gdb) frame 13
#13 0x0000003ff701535c in Thread::StackWalkFramesEx (this=0x2aaae77940, pRD=0x3e8c7dd490, pCallback=0x3ff7131f84 , pData=0x3e8c7dddf0, flags=34048, pStartFrame=0x0) at /home/runtime/src/coreclr/vm/stackwalk.cpp:911
911 /home/runtime/src/coreclr/vm/stackwalk.cpp: No such file or directory.
(gdb) p this->m_OSThreadId
$20 = 26173
(gdb) info threads
Id Target Id Frame
1 Thread 0x3ff7c3bee0 (LWP 26084) "dotnet" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaaadb684) at ./nptl/futex-internal.c:57
2 Thread 0x3f77d82160 (LWP 26085) ".NET SynchManag" 0x0000003ff7cee29c in __GI___poll (fds=0x3f77d81370, nfds=1, timeout=) at ../sysdeps/unix/sysv/linux/poll.c:41
3 Thread 0x3f77581160 (LWP 26086) ".NET EventPipe" 0x0000003ff7cee29c in __GI___poll (fds=0x3f68000da0, nfds=1, timeout=) at ../sysdeps/unix/sysv/linux/poll.c:41
4 Thread 0x3f76d5f160 (LWP 26087) ".NET DebugPipe" 0x0000003ff7ceb480 in __libc_open64 (file=0x2aaaad9434 "/tmp/clr-debug-pipe-26084-1588666088-in", oflag=) at ../sysdeps/unix/sysv/linux/open64.c:41
5 Thread 0x3f7655e160 (LWP 26088) ".NET Debugger" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab40680) at ./nptl/futex-internal.c:57
6 Thread 0x3f75c48160 (LWP 26089) ".NET Finalizer" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x3f75c46b78, op=, expected=, futex_word=0x2aaab53c94) at ./nptl/futex-internal.c:57
7 Thread 0x3f1321f160 (LWP 26095) ".NET SigHandler" __GI___libc_read (nbytes=1, buf=0x3f1321e85f, fd=143) at ../sysdeps/unix/sysv/linux/read.c:26
10 Thread 0x3f12a12160 (LWP 26104) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aab0e3f70) at ./nptl/futex-internal.c:57
11 Thread 0x3f1220d160 (LWP 26105) ".NET TP Worker" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x3f1220b3d8, op=, expected=, futex_word=0x3f0401cb74) at ./nptl/futex-internal.c:57
12 Thread 0x3f7421c160 (LWP 26106) ".NET TP Gate" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x3f04024a70) at ./nptl/futex-internal.c:57
13 Thread 0x3f119d9160 (LWP 26107) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
14 Thread 0x3f111d8160 (LWP 26108) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
15 Thread 0x3f109d7160 (LWP 26109) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
16 Thread 0x3ef3fff160 (LWP 26110) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
17 Thread 0x3ef37fe160 (LWP 26111) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
18 Thread 0x3ef2ffd160 (LWP 26112) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
19 Thread 0x3ef27fc160 (LWP 26113) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
20 Thread 0x3ef1ffb160 (LWP 26114) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
21 Thread 0x3ef17fa160 (LWP 26115) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
22 Thread 0x3ef0ff9160 (LWP 26116) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
23 Thread 0x3ed3fff160 (LWP 26117) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
24 Thread 0x3ed37fe160 (LWP 26118) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
25 Thread 0x3ed2ffd160 (LWP 26119) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
26 Thread 0x3ed27fc160 (LWP 26120) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
27 Thread 0x3ed1ffb160 (LWP 26121) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
28 Thread 0x3ed17fa160 (LWP 26122) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
29 Thread 0x3ed0ff9160 (LWP 26123) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
30 Thread 0x3eb3fff160 (LWP 26124) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
31 Thread 0x3eb37fe160 (LWP 26125) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
32 Thread 0x3eb2ffd160 (LWP 26126) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
33 Thread 0x3eb27fc160 (LWP 26127) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
34 Thread 0x3eb1ffb160 (LWP 26128) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
35 Thread 0x3eb17fa160 (LWP 26129) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
36 Thread 0x3eb0ff9160 (LWP 26130) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
37 Thread 0x3e9bfff160 (LWP 26131) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
38 Thread 0x3e9b7fe160 (LWP 26132) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
39 Thread 0x3e9affd160 (LWP 26133) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
40 Thread 0x3e9a7fc160 (LWP 26134) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
41 Thread 0x3e99ffb160 (LWP 26135) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
42 Thread 0x3e997fa160 (LWP 26136) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
43 Thread 0x3e98ff9160 (LWP 26137) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
44 Thread 0x3e987f8160 (LWP 26138) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
45 Thread 0x3e97ff7160 (LWP 26139) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
46 Thread 0x3e977f6160 (LWP 26140) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
47 Thread 0x3e96ff5160 (LWP 26141) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
48 Thread 0x3e967f4160 (LWP 26142) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
49 Thread 0x3e95ff3160 (LWP 26143) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
50 Thread 0x3e957f2160 (LWP 26144) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
51 Thread 0x3e94ff1160 (LWP 26145) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
52 Thread 0x3e947f0160 (LWP 26146) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
53 Thread 0x3e93fef160 (LWP 26147) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
54 Thread 0x3e937ee160 (LWP 26148) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
55 Thread 0x3e92fed160 (LWP 26149) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
56 Thread 0x3e927ec160 (LWP 26150) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
57 Thread 0x3e91feb160 (LWP 26151) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
58 Thread 0x3e917ea160 (LWP 26152) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f47c) at ./nptl/futex-internal.c:57
59 Thread 0x3e90fe9160 (LWP 26153) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
60 Thread 0x3e907e8160 (LWP 26154) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
61 Thread 0x3e8ffe7160 (LWP 26155) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
62 Thread 0x3e8f7e6160 (LWP 26156) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
63 Thread 0x3e8efe5160 (LWP 26157) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
64 Thread 0x3e8e7e4160 (LWP 26158) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
65 Thread 0x3e8dfe3160 (LWP 26159) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
66 Thread 0x3e8d7e2160 (LWP 26160) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
67 Thread 0x3e8cfe1160 (LWP 26161) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
* 68 Thread 0x3e8c7e0160 (LWP 26162) ".NET Long Runni" DBG_DebugBreak () at /home/runtime/src/coreclr/pal/src/arch/riscv64/debugbreak.S:6
69 Thread 0x3e8bfdf160 (LWP 26163) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
70 Thread 0x3e8b7de160 (LWP 26164) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
71 Thread 0x3e8afdd160 (LWP 26165) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
72 Thread 0x3e8a7dc160 (LWP 26166) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
73 Thread 0x3e89fdb160 (LWP 26167) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
74 Thread 0x3e897da160 (LWP 26168) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
75 Thread 0x3e88fd9160 (LWP 26169) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
76 Thread 0x3e887d8160 (LWP 26170) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
77 Thread 0x3e87fd7160 (LWP 26171) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
78 Thread 0x3e877d6160 (LWP 26172) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
79 Thread 0x3e86fd5160 (LWP 26173) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
80 Thread 0x3e867d4160 (LWP 26174) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
81 Thread 0x3e85fd3160 (LWP 26175) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
82 Thread 0x3e857d2160 (LWP 26176) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
83 Thread 0x3e84fd1160 (LWP 26177) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
84 Thread 0x3e847d0160 (LWP 26178) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
85 Thread 0x3e83fcf160 (LWP 26179) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
86 Thread 0x3e837ce160 (LWP 26180) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
87 Thread 0x3e82fcd160 (LWP 26181) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
88 Thread 0x3e827cc160 (LWP 26182) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
89 Thread 0x3e81fcb160 (LWP 26183) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=, futex_word=0x2aaab4f40c) at ./nptl/futex-internal.c:57
90 Thread 0x3e817ca160 (LWP 26184) ".NET Long Runni" __futex_abstimed_wait_common64 (private=, cancel=true, abstime=0x0, op=, expected=
Common information
Test
System.Diagnostics.Tests.DiagnosticSourceTest.AllSubscriberStress
catches intermittent crash on VisionFive2 board with disabled TieredCompilation. Run command and log:Test behavior is intermittent: different asserts may fire or SIGSEGV may happen or even the test can pass. The most common path on crash inside
Object::Validate
, called from GC invocation. Backtrace for the assert crash above is:Testcase creates 100 threads and each thread allocates 100-104
DiagnosticListener
objects. Frame 13 above with this of typeThread
gives information about thread with problematic stack which breaks stack-walking algorithm:Hidden gdblog
``` (gdb) frame 13 #13 0x0000003ff701535c in Thread::StackWalkFramesEx (this=0x2aaae77940, pRD=0x3e8c7dd490, pCallback=0x3ff7131f84