Hi Andreas, Thanks for reaching out. It sounds like this is already reported as #951704 (Cc'ed now). I'll need to give this a closer look, but I hope I can have an update within the next couple of weeks. Does this work?
Thanks! Faidon On Sun, Mar 15, 2020 at 10:33:20AM +0100, Andreas Tille wrote: > Hi Faidon, > > could you imagine to build jemalloc with --disable-initial-exec-tls > as Sergio suggests below to fix the issue in drmaa (and possibly other > packages)? > > Should I open a separate bug report against jemalloc to request this? > > Kind regards > > Andreas. > > On Sat, Mar 14, 2020 at 05:18:49PM -0400, Sergio Durigan Junior wrote: > > > $ python3 > > > Python 3.7.6 (default, Jan 19 2020, 22:34:52) > > > [GCC 9.2.1 20200117] on linux > > > Type "help", "copyright", "credits" or "license" for more information. > > >>>> import drmaa > > > Traceback (most recent call last): > > > File "<stdin>", line 1, in <module> > > > File > > > "/home/andreas/debian-maintain/salsa/med-team/python-drmaa/drmaa/__init__.py", > > > line 65, in <module> > > > from .session import JobInfo, JobTemplate, Session > > > File > > > "/home/andreas/debian-maintain/salsa/med-team/python-drmaa/drmaa/session.py", > > > line 39, in <module> > > > from drmaa.helpers import (adapt_rusage, Attribute, > > > attribute_names_iterator, > > > File > > > "/home/andreas/debian-maintain/salsa/med-team/python-drmaa/drmaa/helpers.py", > > > line 36, in <module> > > > from drmaa.wrappers import (drmaa_attr_names_t, drmaa_attr_values_t, > > > File > > > "/home/andreas/debian-maintain/salsa/med-team/python-drmaa/drmaa/wrappers.py", > > > line 58, in <module> > > > _lib = CDLL(libpath, mode=RTLD_GLOBAL) > > > File "/usr/lib/python3.7/ctypes/__init__.py", line 364, in __init__ > > > self._handle = _dlopen(self._name, mode) > > > OSError: /usr/lib/x86_64-linux-gnu/libjemalloc.so.2: cannot allocate > > > memory in static TLS block > > > > This is an issue with jemalloc's handling of the TLS model when being > > dlopened.. See: > > > > https://github.com/jemalloc/jemalloc/issues/1237 > > > > The recommended way to build a libjemalloc that is suitable for being > > dlopened is to use '--disable-initial-exec-tls' when building it. Take > > a look at the INSTALL.md file, and look for this option: > > > > https://github.com/jemalloc/jemalloc/blob/dev/INSTALL.md > > > > There is a way to workaround this bug by doing an LD_PRELOAD of > > libjemalloc when invoking python, but this will only mask the problem > > and we can't expect users to do/know this. > > > > The way I see it, you can try to convince jemalloc's maintainer to > > enable that flag. > > > > BTW, the reason 'find_library' can't find drmaa's library is because the > > .so is being installed in a non-standard directory. I don't know why > > the package was made like this, though. > > > > Thanks, > > > > -- > > Sergio > > GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36 > > Please send encrypted e-mail if possible > > http://sergiodj.net/ > > > > -- > http://fam-tille.de >