summaryrefslogtreecommitdiff
path: root/Utility
diff options
context:
space:
mode:
Diffstat (limited to 'Utility')
-rw-r--r--Utility/Gpg.hs9
1 files changed, 8 insertions, 1 deletions
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