GNU bug report logs - #49167
[PATCH core-updates] gnu: jemalloc: --disable-initial-exec-tls

Previous Next

Package: guix-patches;

Reported by: Ryan Sundberg <ryan <at> arctype.co>

Date: Tue, 22 Jun 2021 05:47:02 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#49167: closed ([PATCH core-updates] gnu: jemalloc:
 --disable-initial-exec-tls)
Date: Fri, 03 Sep 2021 10:07:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Fri, 03 Sep 2021 12:06:25 +0200
with message-id <87k0jy2cta.fsf_-_ <at> gnu.org>
and subject line Re: bug#49167: [PATCH core-updates] gnu: jemalloc: --disable-initial-exec-tls
has caused the debbugs.gnu.org bug report #49167,
regarding [PATCH core-updates] gnu: jemalloc: --disable-initial-exec-tls
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
49167: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=49167
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Ryan Sundberg <ryan <at> arctype.co>
To: guix-patches <at> gnu.org
Cc: Ryan Sundberg <ryan <at> arctype.co>
Subject: [PATCH core-updates] gnu: jemalloc: --disable-initial-exec-tls
Date: Mon, 21 Jun 2021 22:44:24 -0700
Disable the thread local storage model in jemalloc 5 to prevent
shared libraries linked to libjemalloc from crashing on dlopen().
https://github.com/jemalloc/jemalloc/issues/937

This bug affects both Java JNI and python libraries which link to
jemalloc 5, such as RocksDB, which will crash the program when loaded.

* gnu/packages/jemalloc.scm (jemalloc)[arguments]: Add --disable-initial-exec-tls
configure flag.
---
 gnu/packages/jemalloc.scm | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/jemalloc.scm b/gnu/packages/jemalloc.scm
index c4b87b540d..67a1ca8e14 100644
--- a/gnu/packages/jemalloc.scm
+++ b/gnu/packages/jemalloc.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong <at> gmail.com>
 ;;; Copyright © 2017 Efraim Flashner <efraim <at> flashner.co.il>
 ;;; Copyright © 2017 Eric Bavier <bavier <at> member.fsf.org>
+;;; Copyright © 2021 Ryan Sundberg <ryan <at> arctype.co>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -29,10 +30,10 @@
   #:use-module (gnu packages perl)
   #:use-module (guix build-system gnu))
 
-(define-public jemalloc
+(define jemalloc-4.5.0
   (package
     (name "jemalloc")
-    (version "5.2.1")
+    (version "4.5.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -40,7 +41,7 @@
                     version "/jemalloc-" version ".tar.bz2"))
               (sha256
                (base32
-                "1xl7z0vwbn5iycg7amka9jd6hxd8nmfk7nahi4p9w2bnw9f0wcrl"))))
+                "10373xhpc10pgmai9fkc1z0rs029qlcb3c0qfnvkbwdlcibdh2cl"))))
     (build-system gnu-build-system)
     (arguments
      `(#:phases
@@ -58,7 +59,7 @@
            ;; Transparent huge pages are only enabled by default on Intel processors
            '()
            '(#:configure-flags (list "--disable-thp")))))
-    (inputs `(("perl" ,perl)))
+    (inputs '())
     ;; Install the scripts to a separate output to avoid referencing Perl and
     ;; Bash in the default output, saving ~75 MiB on the closure.
     (outputs '("out" "bin"))
@@ -69,10 +70,10 @@
 fragmentation avoidance and scalable concurrency support.")
     (license bsd-2)))
 
-(define-public jemalloc-4.5.0
+(define-public jemalloc
   (package
-    (inherit jemalloc)
-    (version "4.5.0")
+    (inherit jemalloc-4.5.0)
+    (version "5.2.1")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -80,5 +81,12 @@ fragmentation avoidance and scalable concurrency support.")
                     version "/jemalloc-" version ".tar.bz2"))
               (sha256
                (base32
-                "10373xhpc10pgmai9fkc1z0rs029qlcb3c0qfnvkbwdlcibdh2cl"))))
-    (inputs '())))
+                "1xl7z0vwbn5iycg7amka9jd6hxd8nmfk7nahi4p9w2bnw9f0wcrl"))))
+    (arguments
+      (substitute-keyword-arguments (package-arguments jemalloc-base)
+        ;; Disable the thread local storage model in jemalloc 5 to prevent
+        ;; shared libraries linked to libjemalloc from crashing on dlopen()
+        ;; https://github.com/jemalloc/jemalloc/issues/937
+        ((#:configure-flags base-configure-flags '())
+         `(cons "--disable-initial-exec-tls" ,base-configure-flags))))
+    (inputs `(("perl" ,perl)))))
-- 
2.31.1



[Message part 3 (message/rfc822, inline)]
From: Ludovic Courtès <ludo <at> gnu.org>
To: Ryan Sundberg <ryan <at> arctype.co>
Cc: 49167-done <at> debbugs.gnu.org
Subject: Re: bug#49167: [PATCH core-updates] gnu: jemalloc:
 --disable-initial-exec-tls
Date: Fri, 03 Sep 2021 12:06:25 +0200
Hi Ryan,

Ryan Sundberg <ryan <at> arctype.co> skribis:

> From 8b97b60ab78ba1e616efaf477e629cfa2457b1a9 Mon Sep 17 00:00:00 2001
> From: Ryan Sundberg <ryan <at> arctype.co>
> Date: Fri, 29 Jan 2021 21:18:56 -0800
> Subject: [PATCH] gnu: jemalloc: --disable-initial-exec-tls
>
> Disable the thread local storage model in jemalloc 5 to prevent
> shared libraries linked to libjemalloc from crashing on dlopen().
> https://github.com/jemalloc/jemalloc/issues/937
>
> This bug affects both Java JNI and python libraries which link to
> jemalloc 5, such as RocksDB, which will crash the program when loaded.
>
> * gnu/packages/jemalloc.scm (jemalloc)[arguments]: Add --disable-initial-exec-tls
> configure flag.

It took a long while, but it’s now in ‘core-updates-frozen’ as
68dd6d809398297dc2ebef522186c9b9f2566739 (with minor tweaks so it would
apply and so that ‘jemalloc-4.5.0’ remains public.)

Thanks!

Ludo’.


This bug report was last modified 3 years and 297 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.