On Fri, Nov 6, 2015 at 3:58 AM, <larsxschneider@xxxxxxxxx> wrote: > In rare cases p4d seems to hang. This watchdog will kill the p4d > process after 300s in any case. That means each individual git p4 test > needs to finish before 300s or it will fail. > > Signed-off-by: Lars Schneider <larsxschneider@xxxxxxxxx> > --- > diff --git a/t/lib-git-p4.sh b/t/lib-git-p4.sh > @@ -81,6 +85,19 @@ start_p4d() { > # will be caught with the "kill -0" check below. > i=${P4D_START_PATIENCE:-300} > pid=$(cat "$pidfile") > + > + timeout=$(($(date +%s) + $P4D_TIMEOUT)) > + while true The 'while' line is incorrectly indented with spaces rather than tabs. > + do > + if test $(date +%s) -gt $timeout I don't know how portable you intend this to be, but 'date +%s' is not universally supported (it's missing on Solaris, for instance, and perhaps AIX). For 6a9d16a (filter-branch: add passed/remaining seconds on progress, 2015-09-07), we ultimately settled upon detecting +%s support dynamically: if date '+%s' 2>/dev/null | grep -q '^[0-9][0-9]*$' # it's supported fi Perhaps you'd want to detect this via a lazy prerequisite and skip this if not supported? > + then > + kill -9 $pid > + exit 1 > + fi > + sleep 1 > + done & > + watchdog_pid=$! > + > ready= > while test $i -gt 0 > do > @@ -131,7 +148,8 @@ kill_p4d() { > done && > # complain if it would not die > test_must_fail kill $pid >/dev/null 2>&1 && > - rm -rf "$db" "$cli" "$pidfile" > + rm -rf "$db" "$cli" "$pidfile" && > + retry_until_fail kill -9 $watchdog_pid > } > > cleanup_git() { > -- > 2.5.1 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html