From: Stefan Metzmacher Date: Fri, 20 Nov 2020 09:20:14 +0000 (+0000) Subject: script/autobuild.py: let cleanup() ignore errors from rmdir_force() by default X-Git-Tag: tevent-0.11.0~1958 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9883ac45939f253a63f3ff312fc3912c5f02cdac;p=thirdparty%2Fsamba.git script/autobuild.py: let cleanup() ignore errors from rmdir_force() by default It's not useful to generate a python backtrace from within the cleanup code. Signed-off-by: Stefan Metzmacher Reviewed-by: Ralph Boehme Autobuild-User(master): Stefan Metzmacher Autobuild-Date(master): Wed Jan 27 18:17:17 UTC 2021 on sn-devel-184 --- diff --git a/script/autobuild.py b/script/autobuild.py index c1d59b9c1a5..dded5c9dec9 100755 --- a/script/autobuild.py +++ b/script/autobuild.py @@ -1045,14 +1045,23 @@ class buildlist(object): self.tail_proc = Popen(cmd, close_fds=True) -def cleanup(): +def cleanup(do_raise=False): if options.nocleanup: return run_cmd("stat %s || true" % test_tmpdir, show=True) run_cmd("stat %s" % testbase, show=True) do_print("Cleaning up %r" % cleanup_list) for d in cleanup_list: - rmdir_force(d) + ok = rmdir_force(d, re_raise=False) + if ok: + continue + if os.path.isdir(d): + do_print("Killing, waiting and retry") + run_cmd("killbysubdir %s > /dev/null 2>&1" % d, checkfail=False) + else: + do_print("Waiting and retry") + time.sleep(1) + rmdir_force(d, re_raise=do_raise) def daemonize(logfile): @@ -1318,7 +1327,7 @@ while True: (status, failed_task, failed_stage, failed_tag, errstr) = blist.run() if status != 0 or errstr != "retry": break - cleanup() + cleanup(do_raise=True) except Exception: cleanup() raise