Skip to content

DiagnosticsServer ENABLE_PERFMAP command not resilient executing early-in-startup #122472

@hoyosjs

Description

@hoyosjs

Description

#122430 found the following assert:

[tracee] ASSERT FAILED
[tracee] 	Expression: IsCrstInitialized()
[tracee] 	Location:   line 221 in /__w/1/s/src/coreclr/vm/crst.cpp
[tracee] 	Function:   Enter
[tracee] 	Process:    145042

at this stack:

 # Child-SP          RetAddr               Call Site
00 0000f912`62becf30 0000f912`a3d2728c     libc_so!__wait4+0x74 [/usr/src/debug/glibc-2.38-15.azl3.aarch64/posix/../sysdeps/unix/sysv/linux/wait4.c @ 30] 
01 0000f912`62becf60 0000f912`a3d284f4     libcoreclr!PROCCreateCrashDump+0x514 [/__w/1/s/src/coreclr/pal/src/thread/process.cpp @ 2564] 
02 0000f912`62becfe0 0000f912`a3d252e0     libcoreclr!PROCCreateCrashDumpIfEnabled+0xae8 [/__w/1/s/src/coreclr/pal/src/thread/process.cpp @ 2808] 
03 0000f912`62bed080 0000f912`a3cee458 (T) libcoreclr!PROCAbort+0x38 [/__w/1/s/src/coreclr/pal/src/thread/process.cpp @ 2843] 
04 (Inline Function) --------`--------     libcoreclr!invoke_previous_action+0xdc [/__w/1/s/src/coreclr/pal/src/exception/signal.cpp @ 447] 
05 0000f912`62bed0b0 0000f912`a445b7a0     libcoreclr!sigsegv_handler [/__w/1/s/src/coreclr/pal/src/exception/signal.cpp @ 642] 
06 0000f912`62bed0f0 0000f912`a3d2f150 (T) linux_vdso_so!_kernel_rt_sigreturn
07 0000f912`62bee350 0000f912`a3ceb98c     libcoreclr!CONTEXT_GetSveLengthFromOS+0x4 [/__w/1/s/src/coreclr/pal/src/arch/arm64/context2.S @ 305] 
08 0000f912`62bee350 0000f912`a38eb188     libcoreclr!DebugBreak+0x2e4 [/__w/1/s/src/coreclr/pal/src/debug/debug.cpp @ 414] 
09 0000f912`62bee430 0000f912`a39c3834     libcoreclr!CrstBase::Enter+0x1a0 [/__w/1/s/src/coreclr/vm/crst.cpp @ 229] 
0a (Inline Function) --------`--------     libcoreclr!CrstBase::CrstHolder::CrstHolder+0x10 [/__w/1/s/src/coreclr/vm/crst.h @ 349] 
0b 0000f912`62bee470 0000f912`a3700744     libcoreclr!PerfMap::Enable+0x48 [/__w/1/s/src/coreclr/vm/perfmap.cpp @ 93] 
0c (Inline Function) --------`--------     libcoreclr!ds_rt_enable_perfmap+0x18 [/__w/1/s/src/coreclr/vm/eventing/eventpipe/ds-rt-coreclr.h @ 317] 
0d (Inline Function) --------`--------     libcoreclr!process_protocol_helper_enable_perfmap+0x80 [/__w/1/s/src/native/eventpipe/ds-portable-rid.c @ 1072] 
0e 0000f912`62bee640 0000f912`a3705678     libcoreclr!ds_process_protocol_helper_handle_ipc_message+0x31c [/__w/1/s/src/native/eventpipe/ds-portable-rid.c @ 1245] 
0f (Inline Function) --------`--------     libcoreclr!server_loop_tick+0x198 [/__w/1/s/src/native/eventpipe/ds-server.c @ 158] 
10 0000f912`62bee7e0 0000f912`a3d2b144     libcoreclr!server_thread+0x270 [/__w/1/s/src/native/eventpipe/ds-protocol.c @ 185] 
11 0000f912`62bee860 0000f912`a3eb0944     libcoreclr!CorUnix::CPalThread::ThreadEntry+0x350 [/__w/1/s/src/coreclr/pal/src/thread/thread.cpp @ 1601] 
12 0000f912`62bee920 0000f912`a3f16ccc     libc_so!start_thread+0x2a4 [/usr/src/debug/glibc-2.38-15.azl3.aarch64/nptl/pthread_create.c @ 444] 
13 0000f912`62beea40 ffffffff`ffffffff     libc_so!thread_start+0xc [/usr/src/debug/glibc-2.38-15.azl3.aarch64/misc/../sysdeps/unix/sysv/linux/aarch64/clone3.S @ 79] 
14 0000f912`62beea40 00000000`00000000     0xffffffff`ffffffff

while the main thread hasn't properly set up the Crst used for perfmaps.

Reproduction Steps

send a command early on

Expected behavior

either fail command or delay response

Actual behavior

assert hit in checked - unknown behavior at runtime.

Regression?

No response

Known Workarounds

No response

Configuration

No response

Other information

No response

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions