On Saturday, March 14 2020, Andreas Tille wrote: > On Fri, Mar 13, 2020 at 11:09:31PM +0100, Paul Gevers wrote: >> <module> >> raise RuntimeError(('Could not find drmaa library. Please specify >> its ' + >> RuntimeError: Could not find drmaa library. Please specify its full >> path using the environment variable DRMAA_LIBRARY_PATH > > I've fixed this in Git. Unfortunately I get a new issue when importing > drmaa > > $ 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 > > > Any help would be welcome
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/
signature.asc
Description: PGP signature