On Fri, 07 Jun 2019 00:25:06 GMT, jkeenan wrote: > On Fri, 07 Jun 2019 00:00:13 GMT, hv wrote: > > On Thu, 06 Jun 2019 10:30:58 -0700, jkeenan wrote: > > > Watchpoint 2: PL_locale_mutex > > > > > > Old value = 0x801e1c1e0 > > > New value = 0x2 > > > _pthread_mutex_destroy (mutex=0xa45b28) at pthread_md.h:95 > > > 95 return (TCB_GET64(tcb_thread)); > > > Current language: auto; currently minimal > > > (gdb) bt > > > #0 _pthread_mutex_destroy (mutex=0xa45b28) at pthread_md.h:95 > > > #1 0x000000000044c554 in Perl_sys_term () at perl.c:152 > > > #2 0x0000000000421472 in main (argc=<value optimized out>, > > > argv=<value optimized out>, > > > env=0x7fffffffe7a0) at perlmain.c:155 > > > > Ok, we're getting somewhere - somewhere weird, but somewhere. > > > > Please could you post the extract from pthread_md.h around line 95, > > presumably a #define or inline function for _pthread_mutex_destroy? > > # /usr/src/lib/libthr/arch/amd64/include/pthread_md.h > ##### > 92 static __inline struct pthread * > 93 _get_curthread(void) > 94 { > 95 return (TCB_GET64(tcb_thread)); > 96 } > ##### > > > If you're also able to find the definition for TCB_GET64 somewhere in the > > include files (most likely under /usr/include) that would help too. > > > > # /usr/src/lib/libthr/arch/amd64/include/pthread_md.h > ##### > 65 /* > 66 * Evaluates to the value of the per-tcb variable name. > 67 */ > 68 #define TCB_GET64(name) ({ \ > 69 __tcb_type(name) __result; \ > 70 \ > 71 u_long __i; \ > 72 __asm __volatile("movq %%fs:%1, %0" \ > 73 : "=r" (__i) \ > 74 : "m" (*(volatile u_long *)(__tcb_offset(name)))); \ > 75 __result = (__tcb_type(name))__i; \ > 76 \ > 77 __result; \ > 78 }) > ##### hv and I are continuing to investigate this, but any help from someone with access to any of the affected OSes is welcome. Thank you very much. -- James E Keenan (jkeenan@cpan.org) --- via perlbug: queue: perl5 status: open https://rt.perl.org/Ticket/Display.html?id=134172Thread Previous | Thread Next