File: withOtherTmp_file_escapes.mdwn

package info (click to toggle)
git-annex 8.20210223-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 68,764 kB
  • sloc: haskell: 70,359; javascript: 9,103; sh: 1,304; makefile: 212; perl: 136; ansic: 44
file content (24 lines) | stat: -rw-r--r-- 1,047 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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.

> [[fixed|done]] --[[Joey]]

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. Fixed that one.
--[[Joey]]