git-annex/Annex
Joey Hess 667d38a8f1
Fix a crash (STM deadlock) when -J is used with multiple files that point to the same key
See the comment for a trace of the deadlock.

Added a new StartStage. New worker threads begin in the StartStage.
Once a thread is ready to do work, it moves away from the StartStage,
and no thread will ever transition back to it.

A thread that blocks waiting on another thread that is processing
the same key will block while in the StartStage. That other thread
will never switch back to the StartStage, and so the deadlock is avoided.
2019-11-14 13:51:09 -04:00
..
AdjustedBranch fix a typo that didn't matter so far 2019-09-27 14:08:16 -04:00
Branch make DropDead transition minimize remote.log for dead sameas remotes 2019-10-15 11:39:25 -04:00
Content preserve unlocked file mtime when dropping 2019-10-08 14:01:12 -04:00
LockPool update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
MetaData update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
SpecialRemote autoenable sameas remotes 2019-10-11 15:52:40 -04:00
View update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Action.hs make WorkerStage an open type 2019-06-19 13:05:03 -04:00
AdjustedBranch.hs refactor 2019-11-11 19:10:52 -04:00
AutoMerge.hs remove unused import 2019-08-28 15:38:29 -04:00
BloomFilter.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Branch.hs refactor 2019-11-11 19:10:52 -04:00
BranchState.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
CatFile.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
ChangedRefs.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
CheckAttr.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
CheckIgnore.hs Removed support for git versions older than 2.1 2019-09-11 16:14:43 -04:00
Common.hs finally really add back custom-setup stanza 2017-12-31 16:36:39 -04:00
Concurrent.hs Fix a crash (STM deadlock) when -J is used with multiple files that point to the same key 2019-11-14 13:51:09 -04:00
Content.hs make --json-error-messages capture url download errors 2019-11-12 13:52:38 -04:00
CurrentBranch.hs refactor getCurrentBranch 2018-10-19 17:29:18 -04:00
Difference.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
DirHashes.hs correct license to AGPL 2019-08-17 14:08:07 -04:00
Drop.hs remove most remnants of direct mode 2019-08-26 16:27:48 -04:00
Environment.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Export.hs improve messages around export/import conflicts 2019-04-09 13:03:59 -04:00
FileMatcher.hs fix annex.largefiles largerthan/smallerthan bug 2019-09-30 17:15:08 -04:00
Fixup.hs Removed support for git versions older than 2.1 2019-09-11 16:14:43 -04:00
GitOverlay.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
HashObject.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Hook.hs update uninit to handle all the v7 stuff 2019-10-08 14:34:00 -04:00
Import.hs add RemoteStateHandle 2019-10-14 13:51:42 -04:00
Ingest.hs v7 for all repositories 2019-08-30 14:09:14 -04:00
Init.hs init: fix data loss bug 2019-11-05 12:41:15 -04:00
InodeSentinal.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Journal.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Link.hs remove one more warningIO 2019-11-12 10:45:52 -04:00
Locations.hs init: Fix a reversion that broke initialization on systems that need to use pid locking 2019-09-10 13:37:07 -04:00
LockFile.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
LockPool.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Magic.hs Added --mimetype and --mimeencoding file matching options. 2019-09-19 12:09:59 -04:00
MetaData.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Multicast.hs remove many old version ifdefs 2019-07-05 15:09:37 -04:00
Notification.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
NumCopies.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Path.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Perms.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Queue.hs remove one more warningIO 2019-11-12 10:45:52 -04:00
RemoteTrackingBranch.hs refactor 2019-11-11 19:10:52 -04:00
ReplaceFile.hs avoid build warning on Windows about unused import 2019-05-23 12:15:33 -04:00
SpecialRemote.hs autoenable sameas remotes 2019-10-11 15:52:40 -04:00
Ssh.hs annex.jobs=cpus etc 2019-05-10 13:27:08 -04:00
TaggedPush.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Tmp.hs init: Fix a reversion that broke initialization on systems that need to use pid locking 2019-09-10 13:37:07 -04:00
Transfer.hs use fine-grained WorkerStages when transferring and verifying 2019-06-19 13:24:20 -04:00
UpdateInstead.hs v7 for all repositories 2019-08-30 14:09:14 -04:00
Url.hs make --json-error-messages capture url download errors 2019-11-12 13:52:38 -04:00
UUID.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
VariantFile.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
VectorClock.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
Version.hs one missed thing for automatic v5 -> v7 upgrades 2019-08-30 17:35:10 -04:00
View.hs refactor 2019-11-11 19:10:52 -04:00
Wanted.hs update licenses from GPL to AGPL 2019-03-13 15:48:14 -04:00
WorkTree.hs init: fix data loss bug 2019-11-05 12:41:15 -04:00
YoutubeDl.hs make --json-error-messages capture url download errors 2019-11-12 13:52:38 -04:00