On Thu, Sep 10, 2020 at 04:18:10PM +0200, Thomas Huth wrote: > On 10/09/2020 12.37, Yonggang Luo wrote: > > This reverts commit 45f7b7b9f38f5c4d1529a37c93dedfc26a231bba > > ("cirrus.yml: Split FreeBSD job into two parts"). > > > > freebsd 1 hour limit not hit anymore > > > > I think we going to a wrong direction, I think there is some tests a stall > > the test runner, > > please look at > > https://cirrus-ci.com/task/5110577531977728 > > When its running properly, the consumed time are little, but when tests > > running too long, > > look at the cpu usage, the cpu usage are nearly zero. doesn't consuming > > time. > > > > And look at > > https://cirrus-ci.com/task/6119341601062912 > > > > If the tests running properly, the time consuming are little > > We should not hide the error by split them > > Ok, but before we merge this patch, I'd like to understand (and fix if > necessary) what is/was causing the slowdowns. Otherwise we'll continue > to see failing CI runs, which is very annoying.
I think we need the test harness to print out the time duration for each test in order to stand a chance of find the slow one. A hack like this could be sufficient: diff --git a/scripts/mtest2make.py b/scripts/mtest2make.py index 9cbb2e374d..9103ae65b9 100644 --- a/scripts/mtest2make.py +++ b/scripts/mtest2make.py @@ -20,7 +20,7 @@ print(''' SPEED = quick # $1 = environment, $2 = test command, $3 = test name, $4 = dir -.test-human-tap = $1 $(if $4,(cd $4 && $2),$2) < /dev/null | ./scripts/tap-driver.pl --test-name="$3" $(if $(V),,--show-failures-only) +.test-human-tap = export then=`date +%s` ; $1 $(if $4,(cd $4 && $2),$2) < /dev/null | ./scripts/tap-driver.pl --test-name="$3" $(if $(V),,--show-failures-only) ; export now=`date +%s` ; delta=`expr $$now - $$then` ; $(if $(V),echo "TIME $$delta seconds",true) .test-human-exitcode = $1 $(PYTHON) scripts/test-driver.py $(if $4,-C$4) $(if $(V),--verbose) -- $2 < /dev/null .test-tap-tap = $1 $(if $4,(cd $4 && $2),$2) < /dev/null | sed "s/^[a-z][a-z]* [0-9]*/& $3/" || true .test-tap-exitcode = printf "%s\\n" 1..1 "`$1 $(if $4,(cd $4 && $2),$2) < /dev/null > /dev/null || echo "not "`ok 1 $3" not sure if there is a nicer way todo this but itworks ok for make check-unit at least Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|