Closed
Description
Tests are crashing with segfault while initializing OpenSSL.
Interesting snippets from log.
=================================================================
Managed Stacktrace:
=================================================================
at <unknown> <0xffffffff>
at CryptoInitializer:EnsureOpenSslInitialized <0x00007>
at CryptoInitializer:.cctor <0x00023>
Thread 10 (Thread 0x7f728a41e0 (LWP 110)):
#0 0x0000007f71c29f6c in bn_mul_add_words () from /lib/aarch64-linux-gnu/libcrypto.so.1.0.0
#1 0x0000007f71c2c0ec in ?? () from /lib/aarch64-linux-gnu/libcrypto.so.1.0.0
#2 0x0000007f5010cdf8 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
Thread 11 (Thread 0x7f726a41e0 (LWP 111)):
#0 0x0000007f7cd94a38 in __waitpid (pid=116, stat_loc=0x7f7269ca44, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29
#1 0x0000007f7c842fcc in dump_native_stacktrace (signal=<optimized out>, mctx=<optimized out>) at /__w/1/s/src/mono/mono/mini/mini-posix.c:966
#2 mono_dump_native_crash_info (signal=<optimized out>, mctx=<optimized out>, info=<optimized out>) at /__w/1/s/src/mono/mono/mini/mini-posix.c:1010
#3 0x0000007f7c801e14 in mono_handle_native_crash (signal=0x7f7c8b85c8 "SIGSEGV", mctx=0x7f7269d5d0, info=0x7f7269d930) at /__w/1/s/src/mono/mono/mini/mini-exceptions.c:3395
#4 0x0000007f7c772764 in mono_sigsegv_signal_handler_debug (_dummy=11, _info=0x7f7269d930, context=0x7f7269d9b0, debug_fault_addr=0x3d4) at /__w/1/s/src/mono/mono/mini/mini-runtime.c:3556
#5 <signal handler called>
#6 _dl_close (_map=0x0) at dl-close.c:809
#7 0x0000007f7cdbc9f8 in _dl_catch_error (objname=0x7f7cd71038 <dlclose_doit>, errstring=0x7f7cd82000, mallocedp=0x7f5402a7e0, operate=0x7f7269ec24, args=0x7f5402a7e8) at dl-error.c:187
#8 0x0000007f7cd71610 in _dlerror_run (operate=operate@entry=0x7f7cd71038 <dlclose_doit>, args=0x0) at dlerror.c:163
#9 0x0000007f7cd7106c in __dlclose (handle=<optimized out>) at dlclose.c:46
#10 0x0000007f71dce2a4 in DlOpen (libraryName=0x7f71dd6dfe "libssl.so.1.1") at /__w/1/s/src/libraries/Native/Unix/System.Security.Cryptography.Native/opensslshim.c:50
#11 0x0000007f71dce178 in OpenLibrary () at /__w/1/s/src/libraries/Native/Unix/System.Security.Cryptography.Native/opensslshim.c:82
#12 0x0000007f71dc8074 in InitializeOpenSSLShim () at /__w/1/s/src/libraries/Native/Unix/System.Security.Cryptography.Native/opensslshim.c:127
#13 0x0000007f71dbc620 in CryptoNative_EnsureOpenSslInitialized () at /__w/1/s/src/libraries/Native/Unix/System.Security.Cryptography.Native/openssl.c:1318
#14 0x0000007f71e4172c in ?? ()
#15 0x8020080280200802 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Thread 13 (Thread 0x7f722a41e0 (LWP 113)):
#0 0x0000007f71c29fb4 in bn_mul_add_words () from /lib/aarch64-linux-gnu/libcrypto.so.1.0.0
#1 0x0000007f71c2c0ec in ?? () from /lib/aarch64-linux-gnu/libcrypto.so.1.0.0
#2 0x0000007f4c0b8390 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
Observation from @bartonjs is that threads 10 and 13 should not be inside libcrypto before thread 11 completes initialization.