force fully strict read of journal file again
authorJoey Hess <joeyh@joeyh.name>
Fri, 22 Jul 2022 15:36:21 +0000 (11:36 -0400)
committerJoey Hess <joeyh@joeyh.name>
Fri, 22 Jul 2022 15:36:21 +0000 (11:36 -0400)
I was thinking that discardIncompleteAppend would make it strict, since
it looks at the end of the bytestring. But, it's applied lazily..

This probably fixes windows, which was failing:

      git-annex.exe: .git\annex\journal\trust.log: DeleteFile "\\\\?\\C:\\Users\\runneradmin\\.t\\5\\tmprepo22\\.git\\annex\\journal\\trust.log": permission denied (The process cannot access the file because it is being used by another process.)

Annex/Journal.hs

index db3c0a35877e956b8622df65025813942735fab7..249fb20037f9601d6b2f884f56a5c716e370c3da 100644 (file)
@@ -196,8 +196,8 @@ getJournalFileStale (GetPrivate getprivate) file = do
   where
        jfile = journalFile file
        getfrom d = catchMaybeIO $
-               discardIncompleteAppend 
-                       <$> L.readFile (fromRawFilePath (d P.</> jfile))
+               discardIncompleteAppend . L.fromStrict
+                       <$> B.readFile (fromRawFilePath (d P.</> jfile))
 
 -- Note that this forces read of the whole lazy bytestring.
 discardIncompleteAppend :: L.ByteString -> L.ByteString