Work around gnupg agent connection races by having our stunt gpg
wrapper simply try running gpg again, once, if it exits 2.
This does not fully suppress the bug but it does significantly reduce
the probability.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Test suite:
* sbuild-gitish: New test case to check running sbuild from git
+ * Work around gnupg agent connection races by having our stunt
+ gpg wrapper simply try running gpg again, once, if it exits 2.
+ This does not fully suppress the bug but it does significantly reduce
+ the probability.
--
#!/bin/sh
set -e
-exec \
+
+for attempt in '' exec; do
+
+set +e
+$attempt \
$DGIT_TEST_REAL_GPG \
--agent-program=$DGIT_STUNT_AGENT \
"$@"
+rc=$?
+set -e
+
+if [ $rc != 2 ]; then exit $rc; fi
+
+echo >&2 "WARNING - GNUPG FAILED $rc - STUNT GNUPG $attempt $*"
+
+done
+
+exit 127