On Mon, Dec 28, 2020 at 08:54:46PM +0100, Theo Buehler wrote:
> 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:
OK, the two problems cannot be solved independently. I'll come up with
a new diff
-Otto
>
> #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)
>