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) >