From 3f323aba1a5ce928539d0efc1523e2ddad3c7fb2 Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Thu, 31 Jan 2019 11:56:15 -0800 Subject: [PATCH] Search and destroy loitering processes from previous CI runs --- .buildkite/hooks/post-checkout | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.buildkite/hooks/post-checkout b/.buildkite/hooks/post-checkout index 32d88815f5..b47ad6a50d 100644 --- a/.buildkite/hooks/post-checkout +++ b/.buildkite/hooks/post-checkout @@ -1,2 +1,18 @@ CI_BUILD_START=$(date +%s) export CI_BUILD_START + +# Processes from previously aborted CI jobs seem to loiter, unclear why as one +# would expect the buildkite-agent to clean up all child processes of the +# aborted CI job. +# But as a workaround for now manually kill some known loiterers. These +# processes will all have the `init` process as their PPID: +( + victims= + for name in bash cargo docker solana; do + victims="$victims $(pgrep -u "$(id -u)" -P 1 -d \ $name)" + done + for victim in $victims; do + echo "Killing pid $victim" + kill -9 "$victim" || true + done +)