[Debian-med-packaging] Bug#953832: cannot allocate memory in static TLS block

Sergio Durigan Junior sergiodj at debian.org
Sat Mar 14 21:18:49 GMT 2020


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/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/debian-med-packaging/attachments/20200314/e54a1a73/attachment.sig>


More information about the Debian-med-packaging mailing list