Arch Linux

Please read this before reporting a bug:

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!

FS#54711 - [jemalloc] cannot allocate memory in static TLS block

Attached to Project: Arch Linux
Opened by Kenny MacDermid (kenmacd) - Thursday, 06 July 2017, 00:43 GMT
Last edited by Doug Newgard (Scimmia) - Thursday, 06 July 2017, 14:57 GMT
Task Type Bug Report
Category Packages: Extra
Status Assigned
Assigned To Christian Hesse (eworm)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 2
Private No



I had to downgrade this package to continue running rocksdb which was being loaded by python-rocksdb.

The error I was getting was:

from ._rocksdb import *
ImportError: /usr/lib/ cannot allocate memory in static TLS block

This appears to be related to this issue:

Downgrading from jemalloc-5.0.0-2-x86_64 to jemalloc-4.5.0-1-x86_64 fixed this issue.

Steps to reproduce:

Install rocksdb from AUR
pip install python-rocksdb
python -c 'import rocksdb'
This task depends upon

Comment by Christian Hesse (eworm) - Thursday, 06 July 2017, 15:01 GMT
The package jemalloc 5.0.0-2 is quite old. Please test latest version from [extra].
Comment by Kenny MacDermid (kenmacd) - Thursday, 06 July 2017, 22:30 GMT
Sorry, when I was writing this I just copied the version that was in my cache directory. I tested and am running 1:5.0.1-1.
Comment by Christian Hesse (eworm) - Monday, 10 July 2017, 09:33 GMT
Looks like we have another unresolved upstream issue then...
Can you report upstream, please?
Comment by Kenny MacDermid (kenmacd) - Tuesday, 11 July 2017, 15:47 GMT
Thanks. I opened this issue:

I suspect this bug will come up with any packages that dynamically load jemalloc.
Comment by Jonny Barnes (jonnybarnes) - Thursday, 14 September 2017, 13:29 GMT
I’ve hit the same error message. I installed imagemgick-full from the aur. Then I ran pecl install imagick to install the php extension for imagemagick.

When loading php, it loaded which tried to load and give the TLS stack error message.

Downgrading jemalloc is a successful workaround.
Comment by Kristian LM (kristianlm) - Monday, 17 January 2022, 08:50 GMT

I'm a bit confused as to what's happening here. I can't get Python's rocksdb to work:

klm@kc ~ ➤ pip install rocksdb
Defaulting to user installation because normal site-packages is not writeable
Collecting rocksdb
Downloading rocksdb-0.7.0.tar.gz (27 kB)
Requirement already satisfied: setuptools>=25 in /usr/lib/python3.10/site-packages (from rocksdb) (59.1.1)
Using legacy ' install' for rocksdb, since package 'wheel' is not installed.
Installing collected packages: rocksdb
Running install for rocksdb ... done
Successfully installed rocksdb-0.7.0
klm@kc ~ ➤ python 20s
Python 3.10.1 (main, Dec 18 2021, 23:53:45) [GCC 11.1.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import rocksdb
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/klm/.local/lib/python3.10/site-packages/rocksdb/", line 1, in <module>
from ._rocksdb import *
ImportError: /usr/lib/ cannot allocate memory in static TLS block

I believe this was working before (way before 2017 when this issue was created). Could this commit from September be the cause?

I think the "disable-initial-exec-tls" configure flag needs to be there, but as the above commit suggests - it isn't:

klm@kc ~ ➤ /usr/bin/jemalloc-config --config 134s
--enable-autogen --prefix=/usr CC=clang 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection' LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now CXX=clang++ 'CXXFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS'

jemalloc 5.2.1-3 does have this flag set:

klm@kc ~ ➤ cat /var/cache/pacman/pkg/jemalloc-1:5.2.1-3-x86_64.pkg.tar.zst | zstd -d | grep -a -- --disable-initial-exec-tls
echo "--disable-initial-exec-tls --enable-autogen --prefix=/usr 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt' LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now CPPFLAGS=-D_FORTIFY_SOURCE=2 'CXXFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt'"