From 89f7adb158aa3cb8f217d18ed895d02bc37753eb Mon Sep 17 00:00:00 2001 From: Pádraig Brady Date: Thu, 14 Jan 2016 01:52:34 +0000 Subject: tests: avoid coredumps when determining memory limits * init.cfg (get_min_ulimit_v_): Refactor ulimit call to... (ulimit_supported_): ...here, and add calls to avoid coredumps. --- init.cfg | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/init.cfg b/init.cfg index e0ee1bc67..108fd206b 100644 --- a/init.cfg +++ b/init.cfg @@ -153,6 +153,23 @@ require_openat_support_() fi } +# Return true if command runs with the +# ulimit specified in the first argument +ulimit_supported_() +{ + local v + v="$1" + shift + + ( + # Try to disable core dumps which may + # occur with memory constraints + trap '' SEGV; ulimit -c 0; + + ulimit -v $v && "$@" + ) >/dev/null 2>&1 +} + # Determine the minimum required VM limit to run the given command. # Output that value to stdout ... to be used by the caller. # Return 0 in case of success, and a non-Zero value otherwise. @@ -166,11 +183,11 @@ get_min_ulimit_v_() page_size=$(($page_size / 1024)) for v in $( seq 5000 5000 50000 ); do - if ( ulimit -v $v && "$@" ) >/dev/null; then + if ulimit_supported_ $v "$@"; then local prev_v prev_v=$v for v in $( seq $(($prev_v-1000)) -1000 1000 ); do - ( ulimit -v $v && "$@" ) >/dev/null || \ + ulimit_supported_ $v "$@" || { ret_v=$((prev_v + $page_size)) echo $ret_v -- cgit v1.2.3-54-g00ecf