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)