On Sun, Dec 27, 2020 at 08:44:52PM +0100, Otto Moerbeek wrote:
> Hi,
> 
> So here the diff that just fixes the mem leak on thread exit. It does
> not contains the TLS init part, I'd like to do that differently than
> what I did in the version I posted earlier.
> 
> As stated before, this makes the getaddrino(3) test program run in
> constant memory.
> 
> ok? 

Please wrap this line at ,void:

> -_thread_tag_storage(void **tag, void *storage, size_t sz, void *err)
> +_thread_tag_storage(void **tag, void *storage, size_t sz, void (*dt)(void 
> *),void *err)

This diff made firefox 84.0.1 crash frequently on my main laptop (about
once every 10-15 minutes) while iridium was still stable and I could not
observe any other fallout.

The backtrace always looked like this:

#0  thrkill () at /tmp/-:3
#1  0x000000ae9eab90ee in nsProfileLock::FatalSignalHandler (signo=11, 
info=0xae12f05420, context=0xae12f05330)
    at 
/usr/obj/ports/firefox-84.0.1/firefox-84.0.1/toolkit/profile/nsProfileLock.cpp:168
#2  0x000000ae9f5aada7 in WasmTrapHandler (signum=11, info=0xae12f05420, 
context=0xae12f05330) at 
/usr/obj/ports/firefox-84.0.1/firefox-84.0.1/js/src/wasm/WasmSignalHandlers.cpp:980
#3  <signal handler called>
#4  _asr_ctx_unref (ac=0xdfdfdfdfdfdfdfdf) at /usr/src/lib/libc/asr/asr.c:401
#5  _asr_resolver_done_tp (arg=0xadc8b2eec0) at /usr/src/lib/libc/asr/asr.c:141
#6  0x000000ae5f6d0025 in _rthread_tls_destructors (thread=0xae81077440) at 
/usr/src/lib/libc/thread/rthread_tls.c:182
#7  0x000000ae5f65ec13 in _libc_pthread_exit (retval=<optimized out>) at 
/usr/src/lib/libc/thread/rthread.c:150
#8  0x000000ae39f038d9 in _rthread_start (v=<optimized out>) at 
/usr/src/lib/librthread/rthread.c:97
#9  0x000000ae5f6e1c8a in __tfork_thread () at 
/usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:84
(gdb)

Reply via email to