From cb82274538bbfc80c385c9fe13a22d576c79d5de Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 22 Jul 2020 13:59:49 -0700 Subject: [PATCH] ci/bare-metal: Capture the first devcoredump a job produces. Connor recently ran into an issue where the chezas were hanging where his GPUs weren't, and was blocked on getting some feedback on what was happening. A devcoredump will help non-cheza-having devs debug (or hopefully with other intermittent fails). Closes: #3187 Reviewed-by: Rob Clark Part-of: --- .gitlab-ci/bare-metal/capture-devcoredump.sh | 14 ++++++++++++++ .gitlab-ci/bare-metal/init.sh | 4 ++++ .gitlab-ci/bare-metal/rootfs-setup.sh | 2 ++ 3 files changed, 20 insertions(+) create mode 100755 .gitlab-ci/bare-metal/capture-devcoredump.sh diff --git a/.gitlab-ci/bare-metal/capture-devcoredump.sh b/.gitlab-ci/bare-metal/capture-devcoredump.sh new file mode 100755 index 00000000000..095bad875a4 --- /dev/null +++ b/.gitlab-ci/bare-metal/capture-devcoredump.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +while true; do + devcds=`find /sys/devices/virtual/devcoredump/ -name data` + for i in $devcds; do + echo "Found a devcoredump at $i." + if cp $i /results/first.devcore; then + echo 1 > $i + echo "Saved to the job artifacts at /first.devcore" + exit 0 + fi + done + sleep 10 +done diff --git a/.gitlab-ci/bare-metal/init.sh b/.gitlab-ci/bare-metal/init.sh index 797f0d73e72..2e67b1c64da 100755 --- a/.gitlab-ci/bare-metal/init.sh +++ b/.gitlab-ci/bare-metal/init.sh @@ -19,6 +19,10 @@ echo "nameserver 8.8.8.8" > /etc/resolv.conf # Overwrite traces.yml file with the baremetal version cp /install/traces-baremetal.yml /install/traces.yml +# Start a little daemon to capture the first devcoredump we encounter. (They +# expire after 5 minutes, so we poll for them). +./capture-devcoredump.sh & + if sh $BARE_METAL_TEST_SCRIPT; then OK=1 else diff --git a/.gitlab-ci/bare-metal/rootfs-setup.sh b/.gitlab-ci/bare-metal/rootfs-setup.sh index 27735e2d32c..c5106c06472 100644 --- a/.gitlab-ci/bare-metal/rootfs-setup.sh +++ b/.gitlab-ci/bare-metal/rootfs-setup.sh @@ -7,6 +7,8 @@ mkdir -p $rootfs_dst/results # Set up the init script that brings up the system. cp $BM/init.sh $rootfs_dst/init +cp $BM/capture-devcoredump.sh $rootfs_dst/ + set +x # Pass through relevant env vars from the gitlab job to the baremetal init script touch $rootfs_dst/set-job-env-vars.sh -- 2.30.2