commit:     2a81ab517abab7db26b1959c41a203a9ef7c587f
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Wed Aug  5 19:22:08 2020 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Wed Aug  5 19:22:44 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2a81ab51

dev-db/mysql: limit MTR_PARALLEL to 4 instead of "auto"

Partial backport of commit 684ed130d446891ecd16927e0c2703283af52919.

Limit MTR_PARALLEL to 4 instead of "auto" to avoid test failures
because other settings like ulimit, fs.aio-max-nr must allow running
so many servers in parallel. User can still override.

Package-Manager: Portage-3.0.1, Repoman-2.3.23
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 dev-db/mysql/mysql-5.7.31.ebuild | 25 ++++++++++++++++++++-----
 1 file changed, 20 insertions(+), 5 deletions(-)

diff --git a/dev-db/mysql/mysql-5.7.31.ebuild b/dev-db/mysql/mysql-5.7.31.ebuild
index 6396f7ded4c..c7f2127c3a5 100644
--- a/dev-db/mysql/mysql-5.7.31.ebuild
+++ b/dev-db/mysql/mysql-5.7.31.ebuild
@@ -6,7 +6,7 @@ EAPI="7"
 CMAKE_MAKEFILE_GENERATOR=emake
 
 inherit check-reqs cmake flag-o-matic linux-info \
-       prefix toolchain-funcs multilib-minimal
+       multiprocessing prefix toolchain-funcs multilib-minimal
 
 # Patch version
 
PATCH_SET="https://dev.gentoo.org/~whissi/dist/mysql/${PN}-5.7.31-patches-01.tar.xz";
@@ -467,10 +467,25 @@ src_test() {
 
        # Ensure that parallel runs don't die
        export MTR_BUILD_THREAD="$((${RANDOM} % 100))"
-       # Enable parallel testing, auto will try to detect number of cores
-       # You may set this by hand.
-       # The default maximum is 8 unless MTR_MAX_PARALLEL is increased
-       export MTR_PARALLEL="${MTR_PARALLEL:-auto}"
+
+       if [[ -z "${MTR_PARALLEL}" ]] ; then
+               local -x MTR_PARALLEL=$(makeopts_jobs)
+
+               if [[ ${MTR_PARALLEL} -gt 4 ]] ; then
+                       # Running multiple tests in parallel usually require 
higher ulimit
+                       # and fs.aio-max-nr setting. In addition, tests like 
main.multi_update
+                       # are known to hit timeout when system is busy.
+                       # To avoid test failure we will limit MTR_PARALLEL to 4 
instead of
+                       # using "auto".
+                       local info_msg="Parallel MySQL test suite jobs limited 
to 4 (MAKEOPTS=${MTR_PARALLEL})"
+                       info_msg+=" to avoid test failures. Set MTR_PARALLEL if 
you know what you are doing!"
+                       einfo "${info_msg}"
+                       unset info_msg
+                       MTR_PARALLEL=4
+               fi
+       else
+               einfo "MTR_PARALLEL is set to '${MTR_PARALLEL}'"
+       fi
 
        # create directories because mysqladmin might run out of order
        mkdir -p "${T}"/var-tests{,/log} || die

Reply via email to