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.
This commit is contained in:
Joey Hess 2014-08-03 20:14:20 -04:00
parent 8587cd40ed
commit 1cd2273035
2 changed files with 9 additions and 9 deletions

View file

@ -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]