git-annex/Command
Joey Hess 10d3b7fc62
Fix reversion introduced in 6.20171214 that caused concurrent transfers to incorrectly fail with "transfer already in progress".
Avoid creating transfer info file before transfer lock is created and
locked.

The wrong order for one thing caused transfer info to be overwritten
when a transfer was already in progress.

But worse, it caused checkTransfer to see the transfer info,
and so lock the transfer lock in order to verify the transfer was not in
progress. Which in a concurrent situation, prevented the transferrer
from locking the transfer lock, so it failed with "transfer already in
progress".

Note that the transferinfo command does not lock the transfer lock
before creating the transfer info. But, that's only run after
recvkey is running, and recvkey does lock the transfer lock, so that
seems more or less ok. (Other than being a super complicated legacy mess
that the P2P code has mostly obsoleted now.)

This commit was supported by the NSF-funded DataLad project.
2018-03-14 18:55:34 -04:00
..
Add.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
AddUnused.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
AddUrl.hs importfeed: Fix a failure when downloading with youtube-dl and the destination subdirectory does not exist yet. 2018-02-22 13:20:19 -04:00
Adjust.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Assistant.hs fold Build/SysConfig.hs into BuildInfo via include 2017-12-14 12:46:57 -04:00
Benchmark.hs change keys database to use IKey type with more efficient serialization 2016-01-12 14:01:50 -04:00
CalcKey.hs more lambda-case conversion 2017-12-05 15:00:50 -04:00
CheckPresentKey.hs more lambda-case conversion 2017-12-05 15:00:50 -04:00
Commit.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00
Config.hs more lambda-case conversion 2017-12-05 15:00:50 -04:00
ConfigList.hs .noannex file 2017-12-13 14:34:32 -04:00
ContentLocation.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
Copy.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Dead.hs more lambda-case conversion 2017-12-05 15:00:50 -04:00
Describe.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
DiffDriver.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
Direct.hs more lambda-case conversion 2017-12-05 15:00:50 -04:00
Drop.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
DropKey.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
DropUnused.hs add gitAnnexTmpWorkDir and withTmpWorkDir 2017-11-29 13:53:39 -04:00
EnableRemote.hs Improve startup time for commands that do not operate on remotes 2018-01-09 16:22:07 -04:00
EnableTor.hs move protocol version stuff to the Net free monad 2018-03-12 15:20:51 -04:00
ExamineKey.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Expire.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Export.hs use total size from DATA 2018-03-12 21:46:58 -04:00
Find.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
FindRef.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Fix.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Forget.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
FromKey.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Fsck.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
FuzzTest.hs Fix several places where files in .git/annex/ were written with modes that did not take the core.sharedRepository config into account. 2018-01-02 17:25:25 -04:00
GCryptSetup.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
Get.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Group.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
GroupWanted.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Help.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00
Import.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
ImportFeed.hs Fix several places where files in .git/annex/ were written with modes that did not take the core.sharedRepository config into account. 2018-01-02 17:25:25 -04:00
InAnnex.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00
Indirect.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Info.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Init.hs .noannex file 2017-12-13 14:34:32 -04:00
InitRemote.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Inprogress.hs inprogress: Avoid showing failures for files not in progress. 2018-01-24 20:43:19 -04:00
List.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Lock.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
LockContent.hs make sure that lockContentShared is always paired with an inAnnex check 2018-03-07 14:23:52 -04:00
Log.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
LookupKey.hs lookupkey absolute path support 2017-12-08 15:35:02 -04:00
Map.hs Improve startup time for commands that do not operate on remotes 2018-01-09 16:22:07 -04:00
MatchExpression.hs matchexpression: Added --largefiles option to parse an annex.largefiles expression. 2016-02-03 16:58:36 -04:00
Merge.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
MetaData.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Migrate.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Mirror.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Move.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Multicast.hs deal with unlocked files 2018-03-13 14:27:14 -04:00
NotifyChanges.hs make tor hidden service work when directory watching is not available 2016-12-09 16:40:47 -04:00
NumCopies.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
P2P.hs move protocol version stuff to the Net free monad 2018-03-12 15:20:51 -04:00
P2PStdIO.hs version the P2P protocol 2018-03-12 14:36:35 -04:00
PostReceive.hs configuration to disable automatic merge conflict resolution 2017-06-01 12:51:01 -04:00
PreCommit.hs Avoid repeated checking that files passed on the command line exist. 2017-10-16 14:10:20 -04:00
Proxy.hs finally really add back custom-setup stanza 2017-12-31 16:36:39 -04:00
ReadPresentKey.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
RecvKey.hs get, move, copy, mirror: Added --failed switch which retries failed copies/moves 2016-08-03 12:37:12 -04:00
RegisterUrl.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Reinit.hs .noannex file 2017-12-13 14:34:32 -04:00
Reinject.hs annex.securehashesonly 2017-02-27 13:33:59 -04:00
ReKey.hs deal with unlocked files 2018-03-13 14:27:14 -04:00
RemoteDaemon.hs remotedaemon: serve tor hidden service 2016-11-20 15:48:12 -04:00
Repair.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00
Required.hs started converting to use optparse-applicative 2015-07-08 13:36:25 -04:00
ResolveMerge.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
RmUrl.hs rekey: Added --batch mode. 2016-12-05 12:55:50 -04:00
Schedule.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Semitrust.hs convert all commands to work with optparse-applicative 2015-07-08 15:08:02 -04:00
SendKey.hs AssociatedFile newtype 2017-03-10 13:35:31 -04:00
SetKey.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
SetPresentKey.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Smudge.hs add KeyVariety type 2017-02-24 15:16:56 -04:00
Status.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Sync.hs fix sync bug in direct mode 2018-02-26 14:10:03 -04:00
Test.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00
TestRemote.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
TransferInfo.hs Fix reversion introduced in 6.20171214 that caused concurrent transfers to incorrectly fail with "transfer already in progress". 2018-03-14 18:55:34 -04:00
TransferKey.hs AssociatedFile newtype 2017-03-10 13:35:31 -04:00
TransferKeys.hs AssociatedFile newtype 2017-03-10 13:35:31 -04:00
Trust.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Unannex.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Undo.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
Ungroup.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Uninit.hs Avoid repeated checking that files passed on the command line exist. 2017-10-16 14:10:20 -04:00
Unlock.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00
Untrust.hs convert all commands to work with optparse-applicative 2015-07-08 15:08:02 -04:00
Unused.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Upgrade.hs .noannex file 2017-12-13 14:34:32 -04:00
VAdd.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
VCycle.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Version.hs split BuildInfo and BuildFlags 2018-01-02 13:47:51 -04:00
VFilter.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Vicfg.hs make git annex config settings editable in vicfg 2017-01-30 17:08:05 -04:00
View.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
VPop.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Wanted.hs showStart variant for when there's no worktree file 2017-11-28 15:14:16 -04:00
Watch.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00
WebApp.hs Avoid backtraces on expected failures when built with ghc 8; only use backtraces for unexpected errors. 2016-11-15 21:29:54 -04:00
Whereis.hs add --json-error-messages (not yet implemented) 2018-02-19 14:32:15 -04:00