From b3d5220da5c62a709bab0e350ebc9f4ce1be0e83 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Mon, 31 Aug 2020 10:52:54 +0930 Subject: [PATCH] tools/refresh-submodules.sh: don't exit, but wait if called in parallel. Otherwise make thinks we're done, and we can get errors. Include primitive code if we abort build halfway and leave .refresh-submodules dir. Signed-off-by: Rusty Russell --- tools/refresh-submodules.sh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tools/refresh-submodules.sh b/tools/refresh-submodules.sh index 1f5964666..d78590217 100755 --- a/tools/refresh-submodules.sh +++ b/tools/refresh-submodules.sh @@ -9,8 +9,18 @@ fi [ -d .git ] || exit 0 # git submodule can't run in parallel. Really. +# Wait for it to finish if in parallel. if ! mkdir .refresh-submodules 2>/dev/null ; then - exit 0 + # If we don't make progress in ~60 seconds, force delete and retry. + LIMIT=$((50 + $$ % 20)) + i=0 + while [ $i -lt $LIMIT ]; do + [ -d .refresh-submodules ] || exit 0 + sleep 1 + i=$((i + 1)) + done + rmdir .refresh-submodules + exec "$0" "$@" || exit 1 fi trap "rmdir .refresh-submodules" EXIT