Thanks to visit codestin.com
Credit goes to github.com

Skip to content

MERP crashing at mono-threads.c:650; thread may have been prematurely finalized #21009

@kdubau

Description

@kdubau

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions