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

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions