git-annex/doc/bugs/withOtherTmp_file_escapes.mdwn

23 lines
1,002 B
Text
Raw Normal View History

2019-05-07 15:40:45 +00:00
This was reported with concurrent processes, I think probably during a `git
annex add` but not sure:
git-annex: .git/annex/othertmp/inge59014-3: getFileStatus: does not exist (No such file or directory)
failed
git-annex: .git/annex/othertmp/ingest-assemble_den59014-8: removeLink: does not exist (No such file or directory)
failed
From the "ingest" in the name, these files are from
`Annex.Ingest.lockDown'`, which uses `withOtherTmp`, hard links the file
into the temp directory, and then returns a LockedDown that includes the
temp filepath. So, it's escaped the locking that `withOtherTmp` does, and
another process can clean up the temp files at the wrong point in time.
This will need some significant code reworking to fix.
This is a fairly new problem because the code to have other processes
cleanup stale othertmp files was only added a couple months back.
I audited other uses of withOtherTmp, and the only other problem I found is
similar, in Annex.Branch.stageJournal.
--[[Joey]]