X-Original-To: alpine-aports@mail.alpinelinux.org Delivered-To: alpine-aports@mail.alpinelinux.org Received: from mail.alpinelinux.org (dallas-a1.alpinelinux.org [127.0.0.1]) by mail.alpinelinux.org (Postfix) with ESMTP id E9713DC06E0 for ; Wed, 24 Feb 2016 10:04:45 +0000 (UTC) Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net [217.70.183.195]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.alpinelinux.org (Postfix) with ESMTPS id 303B0DC00DC for ; Wed, 24 Feb 2016 10:04:43 +0000 (UTC) Received: from mfilter42-d.gandi.net (mfilter42-d.gandi.net [217.70.178.172]) by relay3-d.mail.gandi.net (Postfix) with ESMTP id 50C3EA80DF; Wed, 24 Feb 2016 11:04:34 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at mfilter42-d.gandi.net Received: from relay3-d.mail.gandi.net ([IPv6:::ffff:217.70.183.195]) by mfilter42-d.gandi.net (mfilter42-d.gandi.net [::ffff:10.0.15.180]) (amavisd-new, port 10024) with ESMTP id 2y6rckB9IHyr; Wed, 24 Feb 2016 11:04:32 +0100 (CET) X-Originating-IP: 193.248.36.207 Received: from localhost.localdomain (LCaen-656-1-170-207.w193-248.abo.wanadoo.fr [193.248.36.207]) (Authenticated sender: marc.vertes@ugrid.net) by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id C4F9EA80FF; Wed, 24 Feb 2016 11:04:14 +0100 (CET) From: Marc Vertes To: alpine-aports@lists.alpinelinux.org Cc: Marc Vertes Subject: [alpine-aports] [PATCH] testing/mongodb: Fix mongo shell "too much recursion" #5117 Date: Wed, 24 Feb 2016 10:03:40 +0000 Message-Id: <1456308220-7597-1-git-send-email-marc.vertes@ugrid.net> X-Mailer: git-send-email 2.7.1 X-Virus-Scanned: ClamAV using ClamSMTP X-Mailinglist: alpine-aports Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: The problem is due to the fact that spidermonkey expects a larger available space on the thread stack than the one allocated by default by Musl libc. In the code which checks the available stack space, we adjust the reserved quota to 32k instead of 64k because the default musl libc thread stack size is small (80k) and we can not set stack size for C++ threads. Note also that with musl, stack size does not include guard page. --- testing/mongodb/APKBUILD | 8 ++++---- testing/mongodb/musl-available-stack.patch | 17 +++++++++++++++++ testing/mongodb/musl-process-stack-size.patch | 22 ---------------------- 3 files changed, 21 insertions(+), 26 deletions(-) create mode 100644 testing/mongodb/musl-available-stack.patch delete mode 100644 testing/mongodb/musl-process-stack-size.patch diff --git a/testing/mongodb/APKBUILD b/testing/mongodb/APKBUILD index a177e91..3dac7ee 100644 --- a/testing/mongodb/APKBUILD +++ b/testing/mongodb/APKBUILD @@ -18,7 +18,7 @@ source="http://downloads.mongodb.org/src/mongodb-src-r${pkgver}.tar.gz 40-fix-elf-native-class.patch backtrace.patch fix-asio-strerror_r.patch - musl-process-stack-size.patch + musl-available-stack.patch boost160.patch mongodb.confd @@ -96,7 +96,7 @@ md5sums="a9f150f8bead9e8afd3ab28492167073 mongodb-src-r3.2.1.tar.gz 04a348397be8ca7471d404056d8a1490 40-fix-elf-native-class.patch 86a988b5d4402227d177b8a1167008e8 backtrace.patch cd0833592e3a23e729ebd71eb756318c fix-asio-strerror_r.patch -4a0b1b35ee0c6a5e5c35aee0097f4a07 musl-process-stack-size.patch +a0e1d0ef5df415965a20a5da67d853c9 musl-available-stack.patch 1df24dc2aa6b8f4c6da22f097a921ebb boost160.patch 7d2f94bed7bfacd32fcd52dfd931f077 mongodb.confd 792a0b53b3e843cf14176c5beb8cdfe1 mongodb.initd @@ -108,7 +108,7 @@ sha256sums="50431a3ba5ab68bd0bed4a157a8528ca27753a63cf101f13135255e4e9d42f15 mo 3a863660113d29728d7a852b3fba73926697b496848f8ccc4d8e73e6614cfdfc 40-fix-elf-native-class.patch 300d9f6b819730de54018d4b418eb7f921ba9c83fad4958a040544b076160848 backtrace.patch ec6d404221f02706ef2e52e00e414e98666dcc3606e78c9b3d33dfbd42a1eae7 fix-asio-strerror_r.patch -a266b1b2397f069fedb2427a1989a30ed9f63a300ba8726ec50609e93920f76d musl-process-stack-size.patch +68dba3180f0aedac2a3b9f868723552a2945882e53c9635e0d0585be9fd1e47b musl-available-stack.patch 0e9da35f4303e53daf51e78961c517895f2d12f4fa49298f01e1665e15246d73 boost160.patch a4ca29c577428c02cd0b0a8b46756df5f53a05519c9d13c270533cf99b9b819d mongodb.confd 7e39fbd4dc18dba21c8767931683f4795e58e0e91b9f9a5842539923ded453c9 mongodb.initd @@ -120,7 +120,7 @@ b9fdacb273d5a4e1e60735846b262287f84ca6cbded9393d182f69158d3162a50cae5d834f76860d 56db8f43afc94713ac65b174189e2dd903b5e1eff0b65f1bdac159e52ad4de6606c449865d73bd47bffad6a8fc339777e2b11395596e9a476867d94a219c7925 40-fix-elf-native-class.patch 7d097f497cb910c9cb81086cd8c222e43456d1a6de4adfe3e97a4d99add454279350fdeb7305dab84b3deca04afd824036d4065ee0fb8cdd8c03e96d98ee86af backtrace.patch f829b1ad542db3ee776d444243b8b47ab4e48a7386d9b199d7b1adafd31556cf173a5683b78ee735d6a69999ad9af5ad152fde955bbe8865f7910718991ce97c fix-asio-strerror_r.patch -e8f41ea4df62b6588cdea64e1f57553e04c3c0b603dac68b49b222bc9fa8c7b6f6bc1654b5033318ad3ec73632848dfa0f03d33b3c8d8b523ef0145e461364b2 musl-process-stack-size.patch +4251ad85c6a76cb5d87e7e1a3bb2f67c6abb046b3c145b86201310d89b43e99f3b4124da8a8df1f92dfcbcfc2187c14c14a85f48980cfd419ddb2e38508da071 musl-available-stack.patch 385c82875174caae433a3b381eb10f98a6fed0c8943788ddefff1de80a898e480bdbbf094a7783285cf2ae11ce3fc6878e57d58183d05be2f0837b206aaa4da6 boost160.patch 9bcd870742c31bf25f34188ddc3c414de1103e9860dea9f54eee276b89bc2cf1226abab1749c5cda6a6fb0880e541373754e5e83d63cc7189d4b9c274fd555c3 mongodb.confd 2cb295ac0eb44acb4533c86d6d0988d5f760361a43cff7845713f3e2cf0e37023d23790a2926c613bf2b0668060c0b68d59000db52daaacd8af10e701a8b4192 mongodb.initd diff --git a/testing/mongodb/musl-available-stack.patch b/testing/mongodb/musl-available-stack.patch new file mode 100644 index 0000000..4774b62 --- /dev/null +++ b/testing/mongodb/musl-available-stack.patch @@ -0,0 +1,17 @@ +--- mongodb-src-r3.2.1/src/mongo/scripting/mozjs/implscope.cpp.orig ++++ mongodb-src-r3.2.1/src/mongo/scripting/mozjs/implscope.cpp +@@ -258,7 +258,13 @@ + // + // TODO: What if we are running on a platform with very + // large pages, like 4MB? +- JS_SetNativeStackQuota(_runtime, available.get() - (64 * 1024)); ++ //JS_SetNativeStackQuota(_runtime, available.get() - (64 * 1024)); ++ ++ // For musl libc: We adjust the reserved quota to 32k instead of ++ // 64k because the default musl libc thread stack size is small ++ // (80k) and we can not set stack size for C++ threads. ++ // Note also that with musl, stack size does not include guard page. ++ JS_SetNativeStackQuota(_runtime, available.get() - (32 * 1024)); + } + + // The memory limit is in megabytes diff --git a/testing/mongodb/musl-process-stack-size.patch b/testing/mongodb/musl-process-stack-size.patch deleted file mode 100644 index dd45abb..0000000 --- a/testing/mongodb/musl-process-stack-size.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- mongodb-src-r3.2.1.orig/src/mongo/platform/stack_locator_pthread_getattr_np.cpp -+++ mongodb-src-r3.2.1/src/mongo/platform/stack_locator_pthread_getattr_np.cpp -@@ -31,6 +31,7 @@ - #include "mongo/platform/stack_locator.h" - - #include -+#include - - #include "mongo/util/assert_util.h" - #include "mongo/util/scopeguard.h" -@@ -52,6 +53,11 @@ - invariant(result == 0); - invariant(base != nullptr); - invariant(size != 0); -+ -+ struct rlimit rl; -+ -+ invariant(getrlimit(RLIMIT_STACK, &rl) == 0); -+ size = rl.rlim_cur ? : 2 * 1024 * 1024; - - // TODO: Assumes a downward growing stack. Note here that - // getstack returns the stack *base*, being the bottom of the -- 2.7.1 --- Unsubscribe: alpine-aports+unsubscribe@lists.alpinelinux.org Help: alpine-aports+help@lists.alpinelinux.org ---