Date: Tue, 13 Dec 2016 13:03:24 -0800 From: Conrad Meyer <cem@freebsd.org> To: Andriy Gapon <avg@freebsd.org> Cc: Bryan Drewery <bdrewery@freebsd.org>, src-committers <src-committers@freebsd.org>, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r310025 - head/libexec/rtld-elf Message-ID: <CAG6CVpVQwUWS-v8Nu2L6tRqeBX2YxG_5-VPYTWtpM5crSMA8oQ@mail.gmail.com> In-Reply-To: <099725fe-af29-3f9d-852d-53357bb8e8fe@FreeBSD.org> References: <201612131805.uBDI5EDm054866@repo.freebsd.org> <099725fe-af29-3f9d-852d-53357bb8e8fe@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Dec 13, 2016 at 12:51 PM, Andriy Gapon <avg@freebsd.org> wrote: > On 13/12/2016 20:05, Bryan Drewery wrote: >> Author: bdrewery >> Date: Tue Dec 13 18:05:14 2016 >> New Revision: 310025 >> URL: https://svnweb.freebsd.org/changeset/base/310025 >> >> Log: >> Take write lock for rtld_bind before modifying obj_list in dl_iterate_phdr(). > > What are typical callers of dl_iterate_phdr() ? libunwind::UnwindCursor<libunwind::LocalAddressSpace, libunwind::Registers_x86_64>::setInfoBasedOnIPRegister(bool) via _pthread_exit. > In what scenarios this bug would typically be hit? > Thank you! We mostly hit this during multi-threaded program teardown. Exiting threads would be in _pthread_exit -> libunwind -> dl_iterate_phdr at the same time as the main thread was performing __cxa_finalize -> _rtld_addr_phdr -> obj_from_addr. Best, Conrad
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAG6CVpVQwUWS-v8Nu2L6tRqeBX2YxG_5-VPYTWtpM5crSMA8oQ>