public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
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


             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