summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Utility/Gpg.hs7
-rw-r--r--doc/bugs/transferkey_fails_due_to_gpg.mdwn6
2 files changed, 10 insertions, 3 deletions
diff --git a/Utility/Gpg.hs b/Utility/Gpg.hs
index 923f6d5be..8d25272d3 100644
--- a/Utility/Gpg.hs
+++ b/Utility/Gpg.hs
@@ -64,7 +64,7 @@ passphraseHandle :: [CommandParam] -> String -> IO L.ByteString -> (Handle -> IO
passphraseHandle params passphrase a b = do
-- pipe the passphrase into gpg on a fd
(frompipe, topipe) <- createPipe
- _ <- forkIO $ do
+ void $ forkIO $ do
toh <- fdToHandle topipe
hPutStrLn toh passphrase
hClose toh
@@ -76,8 +76,9 @@ passphraseHandle params passphrase a b = do
withBothHandles createProcessSuccess (proc "gpg" params') go
where
go (to, from) = do
- L.hPut to =<< a
- hClose to
+ void $ forkIO $ do
+ L.hPut to =<< a
+ hClose to
b from
{- Finds gpg public keys matching some string. (Could be an email address,
diff --git a/doc/bugs/transferkey_fails_due_to_gpg.mdwn b/doc/bugs/transferkey_fails_due_to_gpg.mdwn
index 1cb0914b8..26bd0443e 100644
--- a/doc/bugs/transferkey_fails_due_to_gpg.mdwn
+++ b/doc/bugs/transferkey_fails_due_to_gpg.mdwn
@@ -43,3 +43,9 @@ The key which is used for the remote is password protected. The GnuPG Agent asks
When adding a new rsync-remote with encryption set to 'none' (therefore disabled), everything works, so it really seems a gpg issue.
How can I help debugging?
+
+> Thanks, I reproduced a deadlock in the gpg code, which was introduced
+> with some of my earlier changes to use threading. No released version of
+> git-annex was affected, and I have developed a fix, which works for me
+> and is now committed to master. Marking this [[done]]; please do check
+> that my fix works for you! --[[Joey]]