diff --git a/CHANGELOG b/CHANGELOG index 8307252e77..4fe08d537d 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 Mon, 17 Oct 2016 12:46:54 -0400 diff --git a/Utility/Gpg.hs b/Utility/Gpg.hs index af740c3e0e..21171b6fb0 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