Fwd: Warnings about dlclose before thread exit. __cxa_thread_call_dtors

From: Willem Jan Withagen <wjw_at_digiware.nl>
Date: Sat, 18 Aug 2018 15:18:56 +0200
Hi,

I've sent the question below to the Ceph-devel list, asking if any 
recent changes would be able to cause this.

But then of course this could stem from FreeBSD libs, and of ports....
So the question here is if anybody has gotten these "warnings" in other 
tools.

--WjW


-------- Forwarded Message --------
Subject: Warnings about dlclose before thread exit
Date: Sat, 18 Aug 2018 14:46:35 +0200
From: Willem Jan Withagen <wjw_at_digiware.nl>
To: Ceph Development <ceph-devel_at_vger.kernel.org>

Hi,

I've have upgraded to FreeBSD ALPHA 12.0, but I don't think the errors 
them from there. Although they could be in one of the libs that came 
along with the upgrade.

I'm getting these warnings during rbd and ceph (maybe even more) 
invocations that indicate that indicate a possible problem because:
===
    It could be possible that a dynamically loaded library, use
    thread_local variable but is dlclose()'d before thread exit.  The
    destructor of this variable will then try to access the address,
    for calling it but it's unloaded, so it'll crash.  We're using
    __elf_phdr_match_addr() to detect and prevent such cases and so
    prevent the crash.
===
this is from : 
https://github.com/freebsd/freebsd/blob/master/lib/libc/stdlib/cxa_thread_atexit_impl.c

Now it could be that dlclose() and thread exit are just closed to one 
another. But still this is hard core embedded in libc already since 
2017, so I'm sort of expecting that a recent change has caused this.

And as indicated it is a possible cause for crashed, because thread_exit 
is going to clean up things that are no longer there.

Now the 20 dollar question is:
	Where was this introduced??

Otherwise I'll have to try and throw my best gdb capabilities at it, and 
try to invoke an rbd call and see where it activates this warning.

--WjW
Received on Sat Aug 18 2018 - 11:19:05 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:17 UTC