From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 07AA61395E1 for ; Tue, 1 Nov 2016 15:23:57 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 15FD5E0BB8; Tue, 1 Nov 2016 15:23:54 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id E1F46E0BB8 for ; Tue, 1 Nov 2016 15:23:53 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 755A5340FA4 for ; Tue, 1 Nov 2016 15:23:51 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 7A4237D2 for ; Tue, 1 Nov 2016 15:23:49 +0000 (UTC) From: "Thomas Deutschmann" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Thomas Deutschmann" Message-ID: <1478013791.7565f43fc1c544625d153f510b950f9f9bf6e848.whissi@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/jemalloc/, dev-libs/jemalloc/files/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-libs/jemalloc/files/jemalloc-4.2-issue_399.patch dev-libs/jemalloc/files/jemalloc-4.2-issue_443.patch dev-libs/jemalloc/jemalloc-4.2.1-r1.ebuild dev-libs/jemalloc/jemalloc-4.2.1.ebuild X-VCS-Directories: dev-libs/jemalloc/files/ dev-libs/jemalloc/ X-VCS-Committer: whissi X-VCS-Committer-Name: Thomas Deutschmann X-VCS-Revision: 7565f43fc1c544625d153f510b950f9f9bf6e848 X-VCS-Branch: master Date: Tue, 1 Nov 2016 15:23:49 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: d57731c9-b92e-4a38-9271-d30b9b5db836 X-Archives-Hash: 731e8719539082eb8cd00faa464638d0 commit: 7565f43fc1c544625d153f510b950f9f9bf6e848 Author: Thomas Deutschmann gentoo org> AuthorDate: Tue Nov 1 15:22:38 2016 +0000 Commit: Thomas Deutschmann gentoo 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 +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 +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