summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG1
-rw-r--r--Utility/Gpg.hs9
2 files changed, 9 insertions, 1 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 8307252e7..4fe08d537 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -9,6 +9,7 @@ git-annex (6.20161013) UNRELEASED; urgency=medium
Thanks, James MacMahon.
* Assistant, repair: Improved filtering out of git fsck lines about
duplicate file entries in tree objects.
+ * test: Deal with gpg-agent behavior change that broke the test suite.
-- Joey Hess <id@joeyh.name> Mon, 17 Oct 2016 12:46:54 -0400
diff --git a/Utility/Gpg.hs b/Utility/Gpg.hs
index af740c3e0..21171b6fb 100644
--- a/Utility/Gpg.hs
+++ b/Utility/Gpg.hs
@@ -352,7 +352,14 @@ testHarness cmd a = do
[testSecretKey, testKey]
return dir
- cleanup orig tmpdir = removeDirectoryRecursive tmpdir >> reset orig
+ cleanup orig tmpdir = do
+ removeDirectoryRecursive tmpdir
+ -- gpg-agent may be shutting down at the same time
+ -- and may delete its socket at the same time as
+ -- we're trying to, causing an exception. Retrying
+ -- will deal with this race.
+ `catchIO` (\_ -> removeDirectoryRecursive tmpdir)
+ reset orig
reset (Just v) = setEnv var v True
reset _ = unsetEnv var