aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2015-10-09 16:16:03 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2015-10-09 16:16:03 -0400
commit59e14fb081908f3d40eac6890cb668c088b86d92 (patch)
tree750482021e4aff738e1b27e37b8101043a41c3f0 /doc
parente3eb0165dfec73d065b409d14ac83f855384b56b (diff)
also generate a drop safety proof for move --from remote
Diffstat (limited to 'doc')
-rw-r--r--doc/bugs/concurrent_drop--from_presence_checking_failures.mdwn19
1 files changed, 19 insertions, 0 deletions
diff --git a/doc/bugs/concurrent_drop--from_presence_checking_failures.mdwn b/doc/bugs/concurrent_drop--from_presence_checking_failures.mdwn
index 22e50766a..de50ca431 100644
--- a/doc/bugs/concurrent_drop--from_presence_checking_failures.mdwn
+++ b/doc/bugs/concurrent_drop--from_presence_checking_failures.mdwn
@@ -346,3 +346,22 @@ A drops B keeps C keeps
It can race other ways, but they all work out the same way essentially,
due to the locking.
</pre>
+
+# the bug, with moves
+
+`git annex move --from remote` is the same as a copy followed by drop --from,
+so the same bug can occur then.
+
+But, the implementation differs from Command.Drop, so will also
+need some changes.
+
+Command.Move.toPerform already locks local content for removal before
+removing it, of course. So, that will interoperate fine with
+concurrent drops/moves. Seems fine as-is.
+
+Command.Move.fromPerform simply needs to lock the local content
+in place before dropping it from the remote. This satisfies the need
+for 1 locked copy when dropping from a remote, and so is sufficent to
+fix the bug.
+
+> done