diff options
-rw-r--r-- | Utility/Gpg.hs | 7 | ||||
-rw-r--r-- | doc/bugs/transferkey_fails_due_to_gpg.mdwn | 6 |
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]] |