Mesa (main): ci: Terminate capture-devcoredump before tarring up artifacts.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jun 21 18:38:58 UTC 2022


Module: Mesa
Branch: main
Commit: d4c664a67029440a0d53d70e2387f87c6eba0453
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d4c664a67029440a0d53d70e2387f87c6eba0453

Author: Emma Anholt <emma at anholt.net>
Date:   Wed Jun  1 12:29:07 2022 -0700

ci: Terminate capture-devcoredump before tarring up artifacts.

Every few weeks we'd get a flake where the script noticed the devcore
right as we were wrapping up, and then tar would exit because the file it
was tarring changed underneath it.  Just kill devcores before we do that
-- even if we kill it while it's working, it's so rare that it probably
won't bother anyone.

Fixes: #5867
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16820>

---

 .gitlab-ci/common/init-stage2.sh | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/.gitlab-ci/common/init-stage2.sh b/.gitlab-ci/common/init-stage2.sh
index 769b4c7355f..2f6f498c9d6 100755
--- a/.gitlab-ci/common/init-stage2.sh
+++ b/.gitlab-ci/common/init-stage2.sh
@@ -4,11 +4,15 @@
 # exiting, since any console output may interfere with LAVA signals handling,
 # which based on the log console.
 cleanup() {
+  if [ "$BACKGROUND_PIDS" = "" ]; then
+    return 0
+  fi
+
   set +x
   echo "Killing all child processes"
   for pid in $BACKGROUND_PIDS
   do
-    kill "$pid"
+    kill "$pid" 2>/dev/null || true
   done
 
   # Sleep just a little to give enough time for subprocesses to be gracefully
@@ -18,6 +22,9 @@ cleanup() {
   do
     kill -9 "$pid" 2>/dev/null || true
   done
+
+  BACKGROUND_PIDS=
+  set -x
 }
 trap cleanup INT TERM EXIT
 
@@ -135,6 +142,11 @@ mv -f ${CI_PROJECT_DIR}/results ./ 2>/dev/null || true
 
 [ ${EXIT_CODE} -ne 0 ] || rm -rf results/trace/"$PIGLIT_REPLAY_DEVICE_NAME"
 
+# Make sure that capture-devcoredump is done before we start trying to tar up
+# artifacts -- if it's writing while tar is reading, tar will throw an error and
+# kill the job.
+cleanup
+
 # upload artifacts
 if [ -n "$MINIO_RESULTS_UPLOAD" ]; then
   tar -czf results.tar.gz results/;



More information about the mesa-commit mailing list