git-annex/Database
Joey Hess 73e1507c72
fix deadlock
git-annex test hung, at varying points depending
on when git decided to run the smudge clean filter.

Recent changes to reconcileStaged caused a deadlock, when git write-tree
for some reason decides to run the smudge clean filter. Which tries
to open the keys db, and blocks waiting for the lock file that its
grandparent has locked.

I don't know why git write-tree does that. It's supposed to only write a
tree from the index which needs no smudge/clean filtering.

I've verified that, in a situation where git write-tree runs the clean
filter, disabling the filter results in a tree being written that
contains the annex link, not eg, the worktree file content. So it seems
safe to disable the clean filter, but also this seems likely to be
working around a bug in git because it seems it is running the clean
filter in a situation where the object has already been cleaned.

Sponsored-by: Dartmouth College's Datalad project
2021-05-24 16:19:26 -04:00
..
Keys smudge: check for known annexed inodes before checking annex.largefiles 2021-05-10 13:20:10 -04:00
Benchmark.hs more RawFilePath conversion 2020-11-05 18:45:37 -04:00
ContentIdentifier.hs remove ContentIndentifiersCidRemoteIndex uniqueness constraint 2020-12-23 14:03:33 -04:00
Export.hs use GIT keys for export of non-annexed files 2021-03-05 14:12:11 -04:00
Fsck.hs enable extensions needed by new version of persistent 2020-11-07 14:09:17 -04:00
Handle.hs Fix build with persistent-2.12.0.1 2021-04-01 12:21:02 -04:00
Init.hs more RawFilePath conversion 2020-11-05 18:45:37 -04:00
Keys.hs fix deadlock 2021-05-24 16:19:26 -04:00
Queue.hs more RawFilePath conversion 2020-11-05 18:45:37 -04:00
Types.hs started converting Ref from String to ByteString 2020-04-06 17:14:49 -04:00