assistant: The ConfigMonitor left one zombie behind each time it checked for changes, now fixed.

This commit is contained in:
Joey Hess 2013-03-18 22:09:51 -04:00
parent b543842a7f
commit a5dded0401
4 changed files with 19 additions and 5 deletions

View file

@ -94,6 +94,12 @@ pipeNullSplit params repo = do
where where
sep = "\0" sep = "\0"
pipeNullSplitStrict :: [CommandParam] -> Repo -> IO [String]
pipeNullSplitStrict params repo = do
s <- pipeReadStrict params repo
return $ filter (not . null) $ split sep s
where
sep = "\0"
pipeNullSplitZombie :: [CommandParam] -> Repo -> IO [String] pipeNullSplitZombie :: [CommandParam] -> Repo -> IO [String]
pipeNullSplitZombie params repo = leaveZombie <$> pipeNullSplit params repo pipeNullSplitZombie params repo = leaveZombie <$> pipeNullSplit params repo

View file

@ -29,15 +29,17 @@ data TreeItem = TreeItem
, file :: FilePath , file :: FilePath
} deriving Show } deriving Show
{- Lists the complete contents of a tree. -} {- Lists the complete contents of a tree, with lazy output. -}
lsTree :: Ref -> Repo -> IO [TreeItem] lsTree :: Ref -> Repo -> IO [TreeItem]
lsTree t repo = map parseLsTree <$> lsTree t repo = map parseLsTree <$> pipeNullSplitZombie ps repo
pipeNullSplitZombie [Params "ls-tree --full-tree -z -r --", File $ show t] repo where
ps = [Params "ls-tree --full-tree -z -r --", File $ show t]
{- Lists specified files in a tree. -} {- Lists specified files in a tree. -}
lsTreeFiles :: Ref -> [FilePath] -> Repo -> IO [TreeItem] lsTreeFiles :: Ref -> [FilePath] -> Repo -> IO [TreeItem]
lsTreeFiles t fs repo = map parseLsTree <$> lsTreeFiles t fs repo = map parseLsTree <$> pipeNullSplitStrict ps repo
pipeNullSplitZombie ([Params "ls-tree -z --", File $ show t] ++ map File fs) repo where
ps = [Params "ls-tree -z --", File $ show t] ++ map File fs
{- Parses a line of ls-tree output. {- Parses a line of ls-tree output.
- (The --long format is not currently supported.) -} - (The --long format is not currently supported.) -}

2
debian/changelog vendored
View file

@ -24,6 +24,8 @@ git-annex (4.20130315) UNRELEASED; urgency=low
* webapp: Improved alerts displayed when syncing with remotes, and * webapp: Improved alerts displayed when syncing with remotes, and
when syncing with a remote fails. when syncing with a remote fails.
* webapp: Force wrap long filenames in transfer display. * webapp: Force wrap long filenames in transfer display.
* assistant: The ConfigMonitor left one zombie behind each time
it checked for changes, now fixed.
-- Joey Hess <joeyh@debian.org> Fri, 15 Mar 2013 00:10:07 -0400 -- Joey Hess <joeyh@debian.org> Fri, 15 Mar 2013 00:10:07 -0400

View file

@ -24,3 +24,7 @@ Please provide any additional information below.
I'm really not sure what to look for next. Happy to take suggestions. I'm really not sure what to look for next. Happy to take suggestions.
[!tag /design/assistant]] [!tag /design/assistant]]
> [[done]], I found the zombie leak; the ConfigMonitor was
> leaving one zombie every time it checked a push/pull.
> Not a fast leak, but over time they would add up. --[[Joey]]