diff options
author | Joey Hess <joey@kitenet.net> | 2014-08-03 20:14:20 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2014-08-03 20:14:20 -0400 |
commit | 1f55c2a00d47290af6198e2df06a9d2e406fcff1 (patch) | |
tree | 56a819c0837e46308dff56342e4c17ea57065c3f /Remote/Helper/Ssh.hs | |
parent | de856bc585ee19800a98a062e47daad01a8d94e1 (diff) |
finally properly fixed ssh zombie leak
The leak was caused by the thread that sshd'd to send transferinfo
not waiting on its ssh. Doh.
Diffstat (limited to 'Remote/Helper/Ssh.hs')
-rw-r--r-- | Remote/Helper/Ssh.hs | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/Remote/Helper/Ssh.hs b/Remote/Helper/Ssh.hs index e0199dca3..05a98865f 100644 --- a/Remote/Helper/Ssh.hs +++ b/Remote/Helper/Ssh.hs @@ -102,20 +102,13 @@ dropKey r key = onRemote r (boolSystem, False) "dropkey" rsyncHelper :: Maybe MeterUpdate -> [CommandParam] -> Annex Bool rsyncHelper callback params = do showOutput -- make way for progress bar - ok <- ifM (liftIO $ (maybe rsync rsyncProgress callback) params) + ifM (liftIO $ (maybe rsync rsyncProgress callback) params) ( return True , do showLongNote "rsync failed -- run git annex again to resume file transfer" return False ) - {- For an unknown reason, this causes rsync to run a second - - ssh process, which it neglects to wait on. - - Reap the resulting zombie. -} - liftIO reapZombies - - return ok - {- Generates rsync parameters that ssh to the remote and asks it - to either receive or send the key's content. -} rsyncParamsRemote :: Bool -> Remote -> Direction -> Key -> FilePath -> AssociatedFile -> Annex [CommandParam] |