runtime: Missing FailFast message in Mono ".crash" file
net6.0-MacCatalyst-Release-x64-Mono_Release-OSX.1015.Amd64.Open System.Net.Requests.Tests work item
Crashed Thread: 21 .NET ThreadPool Worker
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Application Specific Information:
abort() called
...
Thread 21 Crashed:: .NET ThreadPool Worker
0 libsystem_kernel.dylib 0x00007fff6944e33a __pthread_kill + 10
1 libsystem_pthread.dylib 0x00007fff6950ae60 pthread_kill + 430
2 libsystem_c.dylib 0x00007fff693d58a2 __abort + 139
3 libsystem_c.dylib 0x00007fff693d5817 abort + 135
4 net.dot.System.Net.Requests.Tests 0x000000010c2c942f ves_icall_System_Environment_FailFast + 127
5 net.dot.System.Net.Requests.Tests 0x000000010c2cc2e6 ves_icall_System_Environment_FailFast_raw + 54
6 net.dot.System.Net.Requests.Tests 0x000000010c501a80 do_icall + 304
7 net.dot.System.Net.Requests.Tests 0x000000010c5009fd do_icall_wrapper + 253
8 net.dot.System.Net.Requests.Tests 0x000000010c4f2b9a interp_exec_method + 2970
9 net.dot.System.Net.Requests.Tests 0x000000010c4f0eaf interp_runtime_invoke + 239
10 net.dot.System.Net.Requests.Tests 0x000000010c3e82eb mono_jit_runtime_invoke + 1211
11 net.dot.System.Net.Requests.Tests 0x000000010c30534f mono_runtime_try_invoke + 143
12 net.dot.System.Net.Requests.Tests 0x000000010c303ece mono_runtime_class_init_full + 878
13 net.dot.System.Net.Requests.Tests 0x000000010c5232b1 mono_interp_transform_method + 273
14 net.dot.System.Net.Requests.Tests 0x000000010c501904 do_transform_method + 100
15 net.dot.System.Net.Requests.Tests 0x000000010c4f3311 interp_exec_method + 4881
16 net.dot.System.Net.Requests.Tests 0x000000010c4f0eaf interp_runtime_invoke + 239
17 net.dot.System.Net.Requests.Tests 0x000000010c3e82eb mono_jit_runtime_invoke + 1211
18 net.dot.System.Net.Requests.Tests 0x000000010c303988 mono_runtime_invoke_checked + 136
19 net.dot.System.Net.Requests.Tests 0x000000010c31cc35 start_wrapper_internal + 613
20 net.dot.System.Net.Requests.Tests 0x000000010c31c9ae start_wrapper + 62
21 libsystem_pthread.dylib 0x00007fff6950b109 _pthread_start + 148
22 libsystem_pthread.dylib 0x00007fff69506b8b thread_start + 15
...
Thread 21 crashed with X86 Thread State (64-bit):
rax: 0x0000000000000000 rbx: 0x000070000f718000 rcx: 0x000070000f715488 rdx: 0x0000000000000000
rdi: 0x0000000000011803 rsi: 0x0000000000000006 rbp: 0x000070000f7154b0 rsp: 0x000070000f715488
r8: 0x0000000000000000 r9: 0x0000000000989680 r10: 0x000070000f718000 r11: 0x0000000000000246
r12: 0x0000000000011803 r13: 0x00007fde21857d90 r14: 0x0000000000000006 r15: 0x0000000000000016
rip: 0x00007fff6944e33a rfl: 0x0000000000000246 cr2: 0x000000010d067000
Probably non actionable as is, but what does the managed code look like here? did someone queue FailFast onto the threadpool?
More importantly, can Mono folks detect abort() and include the raw string message in the “.crash” file? that would help a lot.
About this issue
- Original URL
- State: open
- Created 3 years ago
- Comments: 19 (19 by maintainers)
This look actually quite ancient and it doesn’t seem to work. There is a more modern version that can log stack trace separately: https://alastairs-place.net/blog/2013/01/10/interesting-os-x-crash-report-tidbits/ There is an example at the end that worked.
CoreCLR doesn’t do anything to get a message into the system crashlog. We just print it to stderr. I haven’t tried to look at the possibility of adding own message into the crashlog, but it would be really nice to have that. I’ll try to check if there is any way to do so.