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.

https://dev.azure.com/dnceng/public/_build/results?buildId=1313534&view=ms.vss-test-web.build-test-results-tab&runId=38657398&paneView=debug

@lambdageek ?

About this issue

  • Original URL
  • State: open
  • Created 3 years ago
  • Comments: 19 (19 by maintainers)

Most upvoted comments

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.