I tried running a ruby program with openssl-3.0.16-2, and confirmed that the SIGSEGV no longer occurs. Thank you for the advice.
On Mon, Jun 23, 2025 at 2:04 AM Jeremy Drake <cyg...@jdrake.com> wrote: > > On Sun, 22 Jun 2025, Daisuke Fujimura via Cygwin wrote: > > > The reproduction procedure could be simplified. > > > > A segmentation fault (SIGSEGV) occurs when running a Ruby script using > > Ruby 3.4.2 (test package) on Cygwin 3.6.3-1 (x86_64), where Thread.new > > is used to require 'openssl' inside a thread. > > > > The crash path leads from OpenSSL’s OPENSSL_thread_stop() to > > CRYPTO_THREAD_write_lock() and then pthread_rwlock_wrlock(), which > > invokes pthread_testcancel(). At that point, a NULL pointer > > dereference seems to occur, possibly during access to TLS data. > > > > Thread 8 "repro.rb:1" received signal SIGSEGV, Segmentation fault. > > [Switching to Thread 7380.0x25e4] > > 0x0000000000000000 in ?? () > > (gdb) where > > #0 0x0000000000000000 in ?? () > > #1 0x00007ffe4ad2a0e4 in pthread_testcancel () at > > /usr/src/debug/cygwin-3.6.3-1/winsup/cygwin/thread.cc:399 > > #2 pthread_rwlock_wrlock (rwlock=0xa002a9010) at > > /usr/src/debug/cygwin-3.6.3-1/winsup/cygwin/thread.cc:4352 > > #3 0x00007ffe4ae0b0d4 in _sigfe () at sigfe.s:35 > > #4 0x00000003ff54e3f9 in CRYPTO_THREAD_write_lock (lock=<optimized > > out>) at crypto/threads_pthread.c:110 > > #5 0x00000003ff541922 in init_thread_remove_handlers > > (handsin=handsin@entry=0x0) at crypto/initthread.c:178 > > #6 0x00000003ff541d43 in OPENSSL_thread_stop () at crypto/initthread.c:235 > > #7 0x00000003ff53fdd3 in DllMain (hinstDLL=<optimized out>, > > fdwReason=<optimized out>, lpvReserved=<optimized out>) > > at crypto/dllmain.c:38 > > #8 0x00007ffe8f2fd6ac in ?? () > > #9 0x00007ffe8f38b590 in ?? () > > #10 0x00007ffe8f38b590 in ?? () > > #11 0x0000000000000000 in ?? () > > This should be fixed by test release openssl-3.0.16-2 > (https://cygwin.com/pipermail/cygwin-announce/2025-May/012341.html). I > don't know what the plan is for making that stable, or getting a patch > upstream. -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple