From: "Thomas Deutschmann" <whissi@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/jemalloc/, dev-libs/jemalloc/files/
Date: Tue, 1 Nov 2016 15:23:49 +0000 (UTC) [thread overview]
Message-ID: <1478013791.7565f43fc1c544625d153f510b950f9f9bf6e848.whissi@gentoo> (raw)
commit: 7565f43fc1c544625d153f510b950f9f9bf6e848
Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 1 15:22:38 2016 +0000
Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Tue Nov 1 15:23:11 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7565f43f
dev-libs/jemalloc: Patch added to fix an issue with sys-apps/sandbox
Cherry picked commit c443b67561 [Link 1] which fixes an issue which
prevented any jemalloc-enabled application from running through
sys-apps/sandbox (typical use case is emerge with FEATURES=sandbox and
FEATURES=test).
Cherry picked commit 3c8c3e9e9b [Link 2] which fixes a leaked file
descriptor.
Link 1: https://github.com/jemalloc/jemalloc/commit/c443b67561891ae68d688daf5f8ce37820cdba2b
Link 2: https://github.com/jemalloc/jemalloc/commit/3c8c3e9e9b59b6e34a222816a05f0a01a68919b3
Gentoo-Bug: https://bugs.gentoo.org/592420
Package-Manager: portage-2.3.2
.../jemalloc/files/jemalloc-4.2-issue_399.patch | 26 ++++++++++
.../jemalloc/files/jemalloc-4.2-issue_443.patch | 58 ++++++++++++++++++++++
...alloc-4.2.1.ebuild => jemalloc-4.2.1-r1.ebuild} | 2 +
3 files changed, 86 insertions(+)
diff --git a/dev-libs/jemalloc/files/jemalloc-4.2-issue_399.patch b/dev-libs/jemalloc/files/jemalloc-4.2-issue_399.patch
new file mode 100644
index 00000000..da9f2d8
--- /dev/null
+++ b/dev-libs/jemalloc/files/jemalloc-4.2-issue_399.patch
@@ -0,0 +1,26 @@
+From 3c8c3e9e9b59b6e34a222816a05f0a01a68919b3 Mon Sep 17 00:00:00 2001
+From: Jason Evans <jasone@canonware.com>
+Date: Mon, 26 Sep 2016 15:55:40 -0700
+Subject: [PATCH] Close file descriptor after reading
+ "/proc/sys/vm/overcommit_memory".
+
+This bug was introduced by c2f970c32b527660a33fa513a76d913c812dcf7c
+(Modify pages_map() to support mapping uncommitted virtual memory.).
+
+This resolves #399.
+---
+ src/pages.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/pages.c b/src/pages.c
+index 2a9b7e3..05b0d69 100644
+--- a/src/pages.c
++++ b/src/pages.c
+@@ -219,6 +219,7 @@ os_overcommits_proc(void)
+ return (false); /* Error. */
+
+ nread = read(fd, &buf, sizeof(buf));
++ close(fd);
+ if (nread < 1)
+ return (false); /* Error. */
+ /*
diff --git a/dev-libs/jemalloc/files/jemalloc-4.2-issue_443.patch b/dev-libs/jemalloc/files/jemalloc-4.2-issue_443.patch
new file mode 100644
index 00000000..d2b065a
--- /dev/null
+++ b/dev-libs/jemalloc/files/jemalloc-4.2-issue_443.patch
@@ -0,0 +1,58 @@
+From c443b67561891ae68d688daf5f8ce37820cdba2b Mon Sep 17 00:00:00 2001
+From: Jason Evans <jasone@canonware.com>
+Date: Sat, 29 Oct 2016 22:41:04 -0700
+Subject: [PATCH] Use syscall(2) rather than {open,read,close}(2) during boot.
+
+Some applications wrap various system calls, and if they call the
+allocator in their wrappers, unexpected reentry can result. This is not
+a general solution (many other syscalls are spread throughout the code),
+but this resolves a bootstrapping issue that is apparently common.
+
+This resolves #443.
+---
+ src/pages.c | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+
+diff --git a/src/pages.c b/src/pages.c
+index 05b0d69..84e2216 100644
+--- a/src/pages.c
++++ b/src/pages.c
+@@ -207,6 +207,11 @@ os_overcommits_sysctl(void)
+ #endif
+
+ #ifdef JEMALLOC_PROC_SYS_VM_OVERCOMMIT_MEMORY
++/*
++ * Use syscall(2) rather than {open,read,close}(2) when possible to avoid
++ * reentry during bootstrapping if another library has interposed system call
++ * wrappers.
++ */
+ static bool
+ os_overcommits_proc(void)
+ {
+@@ -214,12 +219,26 @@ os_overcommits_proc(void)
+ char buf[1];
+ ssize_t nread;
+
++#ifdef SYS_open
++ fd = (int)syscall(SYS_open, "/proc/sys/vm/overcommit_memory", O_RDONLY);
++#else
+ fd = open("/proc/sys/vm/overcommit_memory", O_RDONLY);
++#endif
+ if (fd == -1)
+ return (false); /* Error. */
+
++#ifdef SYS_read
++ nread = (ssize_t)syscall(SYS_read, fd, &buf, sizeof(buf));
++#else
+ nread = read(fd, &buf, sizeof(buf));
++#endif
++
++#ifdef SYS_close
++ syscall(SYS_close, fd);
++#else
+ close(fd);
++#endif
++
+ if (nread < 1)
+ return (false); /* Error. */
+ /*
diff --git a/dev-libs/jemalloc/jemalloc-4.2.1.ebuild b/dev-libs/jemalloc/jemalloc-4.2.1-r1.ebuild
similarity index 95%
rename from dev-libs/jemalloc/jemalloc-4.2.1.ebuild
rename to dev-libs/jemalloc/jemalloc-4.2.1-r1.ebuild
index 8c320ea..c7f3d8a 100644
--- a/dev-libs/jemalloc/jemalloc-4.2.1.ebuild
+++ b/dev-libs/jemalloc/jemalloc-4.2.1-r1.ebuild
@@ -17,6 +17,8 @@ IUSE="debug static-libs stats"
HTML_DOCS=( doc/jemalloc.html )
PATCHES=( "${FILESDIR}/${PN}-3.5.1-strip-optimization.patch"
"${FILESDIR}/${PN}-3.5.1_fix_html_install.patch"
+ "${FILESDIR}/${PN}-4.2-issue_399.patch"
+ "${FILESDIR}/${PN}-4.2-issue_443.patch"
)
MULTILIB_WRAPPED_HEADERS=( /usr/include/jemalloc/jemalloc.h )
# autotools-utils.eclass auto-adds configure options when static-libs is in IUSE
next reply other threads:[~2016-11-01 15:23 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-01 15:23 Thomas Deutschmann [this message]
-- strict thread matches above, loose matches on Subject: below --
2022-05-04 14:33 [gentoo-commits] repo/gentoo:master commit in: dev-libs/jemalloc/, dev-libs/jemalloc/files/ WANG Xuerui
2019-06-11 23:48 Thomas Deutschmann
2016-03-29 2:16 Ian Stakenvicius
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1478013791.7565f43fc1c544625d153f510b950f9f9bf6e848.whissi@gentoo \
--to=whissi@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox