defer deletion of test repos until end, fixes sqlite crash
The crash turned out to be caused by the sqlite database being deleted out from under sqlite before it was done with it. Since multiple git_annex calls are done in the same process while running the test suite, the DbHandle could linger until GCed, and the test repo, and thus sqlite database be deleted before the workerThread was done.
This commit is contained in:
parent
bafcbe95c3
commit
8e958c3f4b
1 changed files with 3 additions and 6 deletions
9
Test.hs
9
Test.hs
|
@ -1631,15 +1631,12 @@ withtmpclonerepo' cfg a = do
|
|||
clone <- clonerepo mainrepodir dir cfg
|
||||
r <- tryNonAsync (a clone)
|
||||
case r of
|
||||
Right () -> cleanup clone
|
||||
Right () -> return ()
|
||||
Left e -> do
|
||||
ifM (keepFailures <$> getTestMode)
|
||||
( putStrLn $ "** Preserving repo for failure analysis in " ++ clone
|
||||
, cleanup clone
|
||||
)
|
||||
whenM (keepFailures <$> getTestMode) $
|
||||
putStrLn $ "** Preserving repo for failure analysis in " ++ clone
|
||||
throwM e
|
||||
|
||||
|
||||
disconnectOrigin :: Assertion
|
||||
disconnectOrigin = boolSystem "git" [Param "remote", Param "rm", Param "origin"] @? "remote rm"
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue