summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog4
-rwxr-xr-xtests/tstunt/gpg16
2 files changed, 19 insertions, 1 deletions
diff --git a/debian/changelog b/debian/changelog
index e1c2c47..7bae4d2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -21,6 +21,10 @@ dgit (4.1~) experimental; urgency=medium
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.
--
diff --git a/tests/tstunt/gpg b/tests/tstunt/gpg
index d71aa63..790c46c 100755
--- a/tests/tstunt/gpg
+++ b/tests/tstunt/gpg
@@ -1,6 +1,20 @@
#!/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