Re: pthread_mutex_trylock crashes because _get_curthread() returns null

From: Yuri <yuri_at_freebsd.org>
Date: Mon, 13 Jan 2025 02:27:52 UTC
With this patch the original crash is gone, but now it crashes in calloc 
with this stack:


#0  0x0000000003b2b1cc in calloc ()
#1  0x000000002fda34e7 in _thr_alloc (curthread=curthread@entry=0x0) at 
/disk-samsung/freebsd-src/lib/libthr/thread/thr_list.c:154
#2  0x000000002fda2522 in _libpthread_init 
(curthread=curthread@entry=0x0) at 
/disk-samsung/freebsd-src/lib/libthr/thread/thr_init.c:336
#3  0x000000002fda5265 in _thr_check_init () at 
/disk-samsung/freebsd-src/lib/libthr/thread/thr_private.h:927
#4  __Tthr_mutex_trylock (mutex=0x415e440 <_rjem_je_arenas_lock+64>) at 
/disk-samsung/freebsd-src/lib/libthr/thread/thr_mutex.c:622
#5  0x0000000003b29674 in _rjem_je_arena_choose_hard ()
#6  0x0000000003b335da in arena_choose ()
#7  0x0000000003b2b5b3 in calloc ()
#8  0x000000002fda34e7 in _thr_alloc (curthread=curthread@entry=0x0) at 
/disk-samsung/freebsd-src/lib/libthr/thread/thr_list.c:154
#9  0x000000002fda2522 in _libpthread_init 
(curthread=curthread@entry=0x0) at 
/disk-samsung/freebsd-src/lib/libthr/thread/thr_init.c:336
#10 0x000000002fda5265 in _thr_check_init () at 
/disk-samsung/freebsd-src/lib/libthr/thread/thr_private.h:927
#11 __Tthr_mutex_trylock (mutex=0x415e440 <_rjem_je_arenas_lock+64>) at 
/disk-samsung/freebsd-src/lib/libthr/thread/thr_mutex.c:622
#12 0x0000000003b29674 in _rjem_je_arena_choose_hard ()
#13 0x0000000003b335da in arena_choose ()
#14 0x0000000003b2b5b3 in calloc ()
#15 0x000000002fda34e7 in _thr_alloc (curthread=curthread@entry=0x0) at 
/disk-samsung/freebsd-src/lib/libthr/thread/thr_list.c:154
#16 0x000000002fda2522 in _libpthread_init 
(curthread=curthread@entry=0x0) at 
/disk-samsung/freebsd-src/lib/libthr/thread/thr_init.c:336
#17 0x000000002fda5265 in _thr_check_init () at 
/disk-samsung/freebsd-src/lib/libthr/thread/thr_private.h:927
#18 __Tthr_mutex_trylock (mutex=0x415e440 <_rjem_je_arenas_lock+64>) at 
/disk-samsung/freebsd-src/lib/libthr/thread/thr_mutex.c:622


Yuri