-
Notifications
You must be signed in to change notification settings - Fork 3.8k
Description
Background
VSMac is seeing an increased rate of hangs and it looks like many of the MERP reports are failing to be generated due to an assertion here: https://github.com/mono/mono/blob/2020-02/mono/utils/mono-threads.c#L650. We see this 10x more frequently on Apple Silicon (see platform note below).
It's unclear to me why a thread would be prematurely finalized but it appears to come from here: https://github.com/mono/mono/blob/2020-02/mono/utils/hazard-pointer.c#L183-L195 - could it be memory corruption?
Current Behavior
Thread dumping is failing and thus MERP never invoked to upload crash report.
Expected Behavior
Finish dumping and launch MERP.
On which platforms did you notice this
[x] macOS
Telemetry indicates the problem is overwhelmingly happening on Apple Silicon. For perspective, only 10% of our users are on Apple Silicon but we have 10x more raw hits of this on Apple Silicon than Intel.
Version Used:
Mono JIT compiler version 6.12.0.137 (2020-02/b4a385816ed Tue Mar 30 16:01:30 EDT 2021)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS:
SIGSEGV: altstack
Notification: kqueue
Architecture: amd64
Disabled: none
Misc: softdebug
Interpreter: yes
LLVM: yes(610)
Suspend: hybrid
GC: sgen (concurrent by default)
Stacktrace
For privacy reasons we don't have complete logs but do have some snippets:
Waiting for dumping threads to resume
Thread 0x70000df8a000 may have been prematurely finalized* Assertion at mono-threads.c:650, condition `info' not met, function:mono_thread_info_current,
=================================================================
Thread 0x30def3000 may have been prematurely finalized* Assertion at mono-threads.c:650, condition `info' not met, function:mono_thread_info_current,
\t0x11890dcd8 - /Library/Frameworks/Mono.framework/Versions/6.12.0/lib/pango/1.8.0/modules/pango-basic-coretext.so : basic_engine_shape
Thread 0x70000f743000 may have been prematurely finalized* Assertion at mono-threads.c:650, condition `info' not met, function:mono_thread_info_current,
2021-01-20 13:04:40.119 VisualStudio[1046:14550] warning: Thread 0x700006056000 may have been prematurely finalized
* Assertion at mono-threads.c:650, condition `info' not met, function:mono_thread_info_current,
Trying to register response after dumping period endedThread 0x4644726208x reported itself.
Thread 0x70000f04a000 may have been prematurely finalized* Assertion at mono-threads.c:650, condition `info' not met, function:mono_thread_info_current,
Mono process hang detected, sending kill signal to pid 86539
Thread 0x70000b78e000 may have been prematurely finalized* Assertion at mono-threads.c:650, condition `info' not met, function:mono_thread_info_current,
* Assertion at threads.c:6567, condition `this_thread_controls == thread_given_control' not met