bugs/Assistant drops files from remote repos that it shouldn'tgit-annexhttp://git-annex.branchable.com/bugs/Assistant_drops_files_from_remote_repos_that_it_shouldn__39__t/git-annexikiwiki2016-11-27T12:23:20Zcomment 1http://git-annex.branchable.com/bugs/Assistant_drops_files_from_remote_repos_that_it_shouldn__39__t/comment_1_5e7d5b0b996a171c641fa560a613d319/joey2014-11-06T19:39:04Z2014-11-06T19:33:18Z
<p>The command <code>git annex find --want-drop --in m2</code>
finds files that meet 2 criteria:</p>
<ol>
<li>Present in the m2 remote. In this case, that is file3.</li>
<li>Are not wanted to be present in the repository in which you run
git-annex. In this case, that's all files, since you're running it
in m1, which has no files, and is set to manual mode.</li>
</ol>
<p>Combining criterion 1 and criterion 2, the command finds file3.
Not that you expected, but only I think because you misunderstood
what --in does.</p>
<p>So, I don't see a bug here?</p>
comment 2http://git-annex.branchable.com/bugs/Assistant_drops_files_from_remote_repos_that_it_shouldn__39__t/comment_2_2015dfc648d26d6dfabe6ad4f4754034/Александр2014-11-06T21:15:14Z2014-11-06T21:15:14Z
<p>Joey, thank you very much for the explanation. I completely agree that what I described in "how to reproduce" works as it should.</p>
<p>Actually I was trying to isolate an issue I had where assistant drops files in a remote manual repo. I don't quite get what circumstances are, but sometimes assistant running in m1 starts to drop files in m2 (while still leaving a copy in A). In this test setting the issue doesn't appear... In my actual setup there is an archive and 3 manual live repos, everything connected via ssh, sometimes on slow links, one manual repo is on a linux phone. Assistants were running on several repos.</p>
<p>I'll try to find a convinient way to reproduce this situation, or maybe discover that bug is in my head again ) Anyway I'll return with an update soon.</p>
comment 3http://git-annex.branchable.com/bugs/Assistant_drops_files_from_remote_repos_that_it_shouldn__39__t/comment_3_8f394437982cebeaf878f5b3871afaf3/Walter2014-11-06T22:59:38Z2014-11-06T22:59:38Z
<p>This might not be a very helpful comment, but a while ago I also had a situation where files would be dropped from a remote manual repo.</p>
<p>Unfortunately, I was not able to get this to happen reliably, but from memory</p>
<p>(on repo 1)</p>
<pre><code>git annex get file --from repo2
</code></pre>
<p>would result in <code>file</code> being gotten, and then dropped, from repo2, even though both repos were set to manual.</p>
<p>But, the unhelpful part, is I can't even remember exactly when this happened (maybe a year ago), so this might not help narrow it down.</p>
comment 4http://git-annex.branchable.com/bugs/Assistant_drops_files_from_remote_repos_that_it_shouldn__39__t/comment_4_ccd108a53a9fb747539e269becfb3e05/renaud [casenave.fr]2014-11-07T04:43:44Z2014-11-07T04:43:44Z
<p>This is the same problem I try to report here: http://git-annex.branchable.com/bugs/file_in_manual_mode_repository_is_dropped_when_it_is_copied_to_another_manual_mode_repository/</p>
<p>It is as Walter said, <code>git annex get file --from repo2</code> will add the file to the current repo but will drop it in repo2</p>
comment 5http://git-annex.branchable.com/bugs/Assistant_drops_files_from_remote_repos_that_it_shouldn__39__t/comment_5_7ee571496c6d7cd57a206e6356dc2be3/Александр2014-11-16T12:32:28Z2014-11-16T12:32:28Z
<p>Thanks Walter, renaud.</p>
<p>I was finally able to consitently reproduce the bug and record clean debug logs.</p>
<p>There are 3 repos, "arch", "man1", "man2". They are on different machines connected via ssh. "arch" is archive, "man1" and "man2" are in manual mode. Assistant is started only at "man1" with args -v -d, after that some files are added. Assistant detects them, adds and then transfers to "arch", this works as expected.</p>
<p>After that in "man2" I run command:</p>
<pre><code>git annex get --from man1 random_1_24
</code></pre>
<p>File is successfully transferred, and then assistant removes it from "man1". Here is corresponding part of logs at "man1":</p>
<pre><code>[2014-11-16 15:10:12 MSK] TransferWatcher: transfer starting: Upload UUID "d865391b-cf21-42d6-a04c-e1b32897c1af" random_1_24 Nothing
[2014-11-16 15:10:12 MSK] TransferWatcher: transfer starting: Upload UUID "d865391b-cf21-42d6-a04c-e1b32897c1af" random_1_24 Nothing
[2014-11-16 15:10:13 MSK] TransferWatcher: transfer finishing: Transfer {transferDirection = Upload, transferUUID = UUID "d865391b-cf21-42d6-a04c-e1b32897c1af", transferKey = Key {keyName = "f91971893f882086488ca244c7c9e60a5ca23e088a95c171c21e40327de3278b", keyBackendName = "SHA256E", keySize = Just 3145728, keyMtime = Nothing, keyChunkSize = Nothing, keyChunkNum = Nothing}}
[2014-11-16 15:10:13 MSK] TransferWatcher: transfer finishing: Transfer {transferDirection = Upload, transferUUID = UUID "d865391b-cf21-42d6-a04c-e1b32897c1af", transferKey = Key {keyName = "f91971893f882086488ca244c7c9e60a5ca23e088a95c171c21e40327de3278b", keyBackendName = "SHA256E", keySize = Just 3145728, keyMtime = Nothing, keyChunkSize = Nothing, keyChunkNum = Nothing}}
[2014-11-16 15:10:14 MSK] RemoteControl: SYNCING ssh://jolla:2222//home/nemo/annex_test
[2014-11-16 15:10:14 MSK] RemoteControl: Syncing with man2
From ssh://jolla:2222//home/nemo/annex_test
d20436c..f7aff95 git-annex -> man1/git-annex
[2014-11-16 15:10:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","show-ref","git-annex"]
[2014-11-16 15:10:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","show-ref","--hash","refs/heads/git-annex"]
[2014-11-16 15:10:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","log","refs/heads/git-annex..ea323207549cd5853213f1aeaf5f3c1f32e79fe9","-n1","--pretty=%H"]
[2014-11-16 15:10:14 MSK] RemoteControl: DONESYNCING ssh://jolla:2222//home/nemo/annex_test 1
[2014-11-16 15:10:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","log","refs/heads/git-annex..5701db750b10ae4d579bbccee828c808c8031e7e","-n1","--pretty=%H"]
[2014-11-16 15:10:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","log","refs/heads/git-annex..08e7fcc374ee7e233f5f26c0bb7ff825a673818e","-n1","--pretty=%H"]
[2014-11-16 15:10:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","log","refs/heads/git-annex..959215d3a9eae6a65ec5e6c68f345f9f623a0d1e","-n1","--pretty=%H"]
[2014-11-16 15:10:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","log","refs/heads/git-annex..f7aff95774a095ccf3a5b11bf2e27108d6aadf58","-n1","--pretty=%H"]
[2014-11-16 15:10:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","log","refs/heads/git-annex..4aae0d044273fd8716c4cf4946126b0ebf2e0db3","-n1","--pretty=%H"]
(merging man1/git-annex into git-annex...)
[2014-11-16 15:10:14 MSK] feed: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","update-index","-z","--index-info"]
[2014-11-16 15:10:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","diff-index","--raw","-z","-r","--no-renames","-l0","--cached","f7aff95774a095ccf3a5b11bf2e27108d6aadf58"]
[2014-11-16 15:10:14 MSK] chat: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","hash-object","-t","blob","-w","--stdin","--no-filters"]
[2014-11-16 15:10:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","log","f7aff95774a095ccf3a5b11bf2e27108d6aadf58..refs/heads/git-annex","-n1","--pretty=%H"]
(Recording state in git...)
[2014-11-16 15:10:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","write-tree"]
[2014-11-16 15:10:14 MSK] chat: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","commit-tree","dd91fafe3d6acfe88b41c677e66507c0f1905175","--no-gpg-sign","-p","refs/heads/git-annex","-p","f7aff95774a095ccf3a5b11bf2e27108d6aadf58"]
[2014-11-16 15:10:14 MSK] call: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","update-ref","refs/heads/git-annex","2ad4a45d95a29db1ecc84a49d5c68bf709f2b3db"]
[2014-11-16 15:10:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","ls-tree","--full-tree","-z","--","refs/heads/git-annex","uuid.log","remote.log","trust.log","group.log","numcopies.log","schedule.log","preferred-content.log","required-content.log","group-preferred-content.log"]
[2014-11-16 15:10:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","show-ref","git-annex"]
[2014-11-16 15:10:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","show-ref","--hash","refs/heads/git-annex"]
[2014-11-16 15:10:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","log","refs/heads/git-annex..2ad4a45d95a29db1ecc84a49d5c68bf709f2b3db","-n1","--pretty=%H"]
[2014-11-16 15:10:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","log","refs/heads/git-annex..5701db750b10ae4d579bbccee828c808c8031e7e","-n1","--pretty=%H"]
[2014-11-16 15:10:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","log","refs/heads/git-annex..08e7fcc374ee7e233f5f26c0bb7ff825a673818e","-n1","--pretty=%H"]
[2014-11-16 15:10:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","log","refs/heads/git-annex..959215d3a9eae6a65ec5e6c68f345f9f623a0d1e","-n1","--pretty=%H"]
[2014-11-16 15:10:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","log","refs/heads/git-annex..f7aff95774a095ccf3a5b11bf2e27108d6aadf58","-n1","--pretty=%H"]
[2014-11-16 15:10:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","log","refs/heads/git-annex..4aae0d044273fd8716c4cf4946126b0ebf2e0db3","-n1","--pretty=%H"]
drop random_1_24 (checking arch...) [2014-11-16 15:10:23 MSK] call: ssh ["-S",".git/annex/ssh/axe","-o","ControlMaster=auto","-o","ControlPersist=yes","-T","axe","git-annex-shell 'inannex' '//home/butler/annex_test' 'SHA256E-s3145728--f91971893f882086488ca244c7c9e60a5ca23e088a95c171c21e40327de3278b' --uuid 5aaf3dc8-f94c-4949-8491-26d5d0de5127"]
ok
[2014-11-16 15:10:23 MSK] dropped random_1_24 (from here) (copies now 2) : drop wanted after Upload UUID "d865391b-cf21-42d6-a04c-e1b32897c1af" random_1_24 Nothing
drop man2 random_1_24 (checking arch...) [2014-11-16 15:10:23 MSK] call: ssh ["-S",".git/annex/ssh/axe","-o","ControlMaster=auto","-o","ControlPersist=yes","-T","axe","git-annex-shell 'inannex' '//home/butler/annex_test' 'SHA256E-s3145728--f91971893f882086488ca244c7c9e60a5ca23e088a95c171c21e40327de3278b' --uuid 5aaf3dc8-f94c-4949-8491-26d5d0de5127"]
[2014-11-16 15:10:23 MSK] call: ssh ["-S",".git/annex/ssh/jolla!2222","-o","ControlMaster=auto","-o","ControlPersist=yes","-p","2222","-T","jolla","git-annex-shell 'dropkey' '//home/nemo/annex_test' '--quiet' '--force' 'SHA256E-s3145728--f91971893f882086488ca244c7c9e60a5ca23e088a95c171c21e40327de3278b' --uuid d865391b-cf21-42d6-a04c-e1b32897c1af"]
ok
[2014-11-16 15:10:23 MSK] dropped random_1_24 (from UUID "d865391b-cf21-42d6-a04c-e1b32897c1af") (copies now 1) : drop wanted after Upload UUID "d865391b-cf21-42d6-a04c-e1b32897c1af" random_1_24 Nothing
[2014-11-16 15:11:14 MSK] read: git ["--git-dir=/home/butler/annex_test/.git","--work-tree=/home/butler/annex_test","ls-tree","--full-tree","-z","--","refs/heads/git-annex","uuid.log","remote.log","trust.log","group.log","numcopies.log","schedule.log","preferred-content.log","required-content.log","group-preferred-content.log"]
</code></pre>
<p>Here is git annex vicfg at "man1":</p>
<pre><code># git-annex configuration
#
# Changes saved to this file will be recorded in the git-annex branch.
#
# Lines in this file have the format:
# setting field = value
# Repository trust configuration
# (Valid trust levels: trusted semitrusted untrusted dead)
# (for web)
#trust 00000000-0000-0000-0000-000000000001 = semitrusted
# (for man2)
#trust 2104670a-6a96-11e4-a3ca-0f84dcf32d24 = semitrusted
# (for [arch])
#trust 5aaf3dc8-f94c-4949-8491-26d5d0de5127 = semitrusted
# (for [man2])
#trust d865391b-cf21-42d6-a04c-e1b32897c1af = semitrusted
# (for man1)
#trust f15688ce-14e0-43ba-a3a2-69ee9d5bdf45 = semitrusted
# Repository groups
# (Standard groups: client transfer backup incrementalbackup smallarchive archive source manual public unwanted)
# (Separate group names with spaces)
# (for [arch])
group 5aaf3dc8-f94c-4949-8491-26d5d0de5127 = archive
# (for [man2])
group d865391b-cf21-42d6-a04c-e1b32897c1af = manual
# (for man1)
group f15688ce-14e0-43ba-a3a2-69ee9d5bdf45 = manual
# (for web)
#group 00000000-0000-0000-0000-000000000001 =
# (for man2)
#group 2104670a-6a96-11e4-a3ca-0f84dcf32d24 =
# Repository preferred contents
# (Set to "standard" to use a repository's group's preferred contents)
# (for [arch])
wanted 5aaf3dc8-f94c-4949-8491-26d5d0de5127 = standard
# (for [man2])
wanted d865391b-cf21-42d6-a04c-e1b32897c1af = standard
# (for man1)
wanted f15688ce-14e0-43ba-a3a2-69ee9d5bdf45 = standard
# (for web)
#wanted 00000000-0000-0000-0000-000000000001 =
# (for man2)
#wanted 2104670a-6a96-11e4-a3ca-0f84dcf32d24 =
# Group preferred contents
# (Used by repositories with "groupwanted" in their preferred contents)
#groupwanted archive =
#groupwanted backup =
#groupwanted client =
#groupwanted incrementalbackup =
#groupwanted manual =
#groupwanted public =
#groupwanted smallarchive =
#groupwanted source =
#groupwanted transfer =
#groupwanted unwanted =
# Standard preferred contents
# (Used by wanted or groupwanted expressions containing "standard")
# (For reference only; built-in and cannot be changed!)
# standard client = (((exclude=*/archive/* and exclude=archive/*) or (not (copies=archive:1 or copies=smallarchive:1))) and not unused) or approxlackingcopies=1
# standard transfer = (not (inallgroup=client and copies=client:2) and ((((exclude=*/archive/* and exclude=archive/*) or (not (copies=archive:1 or copies=smallarchive:1))) and not unused) or approxlackingcopies=1)) or approxlackingcopies=1
# standard backup = include=* or unused
# standard incrementalbackup = ((include=* or unused) and (not copies=incrementalbackup:1)) or approxlackingcopies=1
# standard smallarchive = ((include=*/archive/* or include=archive/*) and ((not (copies=archive:1 or copies=smallarchive:1)) or approxlackingcopies=1)) or approxlackingcopies=1
# standard archive = (not (copies=archive:1 or copies=smallarchive:1)) or approxlackingcopies=1
# standard source = not (copies=1)
# standard manual = present and ((((exclude=*/archive/* and exclude=archive/*) or (not (copies=archive:1 or copies=smallarchive:1))) and not unused) or approxlackingcopies=1)
# standard public = inpreferreddir
# standard unwanted = exclude=*
# Repository required contents
# (for web)
#required 00000000-0000-0000-0000-000000000001 =
# (for man2)
#required 2104670a-6a96-11e4-a3ca-0f84dcf32d24 =
# (for [arch])
#required 5aaf3dc8-f94c-4949-8491-26d5d0de5127 =
# (for [man2])
#required d865391b-cf21-42d6-a04c-e1b32897c1af =
# (for man1)
#required f15688ce-14e0-43ba-a3a2-69ee9d5bdf45 =
# Scheduled activities
# (Separate multiple activities with "; ")
# (for web)
#schedule 00000000-0000-0000-0000-000000000001 =
# (for man2)
#schedule 2104670a-6a96-11e4-a3ca-0f84dcf32d24 =
# (for [arch])
#schedule 5aaf3dc8-f94c-4949-8491-26d5d0de5127 =
# (for [man2])
#schedule d865391b-cf21-42d6-a04c-e1b32897c1af =
# (for man1)
#schedule f15688ce-14e0-43ba-a3a2-69ee9d5bdf45 =
</code></pre>
<p>Please let me know if I can provide more information, some extra logs, traces, recompile git-annex, etc.</p>
comment 6http://git-annex.branchable.com/bugs/Assistant_drops_files_from_remote_repos_that_it_shouldn__39__t/comment_6_6c88b218b8186242a6106fc3e7b3edf5/joey2015-07-06T20:43:08Z2015-07-06T20:31:06Z
<p>Well, you've provided some great information, and your setup seems sane,
and I'd expect it to keep the file in manual mode and not drop it.</p>
<p>The key part of the log is this:</p>
<pre><code>[2014-11-16 15:10:23 MSK] dropped random_1_24 (from here) (copies now 2) : drop wanted after Upload UUID "d865391b-cf21-42d6-a04c-e1b32897c1af" random_1_24 Nothing
</code></pre>
<p>So, after transferring the file to the remote where you're getting it, it
has apparently checked the local repo's preferred content, and thinks it says
that the local repo doesn't want the file anymore. Which certianly doesn't
make sense if the repo is configured to be in manual mode.</p>
<p>The only time I'd expect this to happen is if the file in question is one that
a "client" repository wouldn't normally want. So, if "random_1_24" was in an
archive directory, the preferred content expression would let it drop it then.</p>
<p>I tried to replicate your configuration, and wasn't able to reproduce
it deciding to drop the file, when testing with git-annex version 5.20150618.</p>
<p>Can you reproduce this with the most recent release of git-annex?</p>
<p>If so, can you verify that running "git annex drop --auto" doesn't try to drop any files when you run it
in the repository that's confgured to be in manual mode?</p>
comment 7http://git-annex.branchable.com/bugs/Assistant_drops_files_from_remote_repos_that_it_shouldn__39__t/comment_7_fbbf9d1a63fc61a5fd288fd308b24ca1/joey2015-07-06T22:14:56Z2015-07-06T22:08:11Z
<p>I have also not been able to reproduce this using version 5.20141024. So,
there must be some peice of information left out that's needed to reproduce
this, or possibly it's an intermittent problem.</p>
<p>I did verify that my attempts to reproduce it caused the code path that
handles drops after transfers to fire; in my tests it decided not to drop
the file.</p>
comment 8http://git-annex.branchable.com/bugs/Assistant_drops_files_from_remote_repos_that_it_shouldn__39__t/comment_8_fe2498f60b02104a8a044c79cb5bea63/etesial2015-07-07T14:45:32Z2015-07-07T14:45:32Z
<p>Hi Joey, I've failed to reproduce it now on Debian's 5.20141105-g8d8b248 and have already deleted dirs from previous setup. Maybe I'll try again later if I get some ideas what to tune.</p>
<p>This time I've written a script to setup repos for better reproducibility and while result is negative, I think it'll still may be useful to post it here:</p>
<pre><code>#!/bin/bash
set -x
set -e
DIRS=("/home/butler/annex_test/data"
"/home/butler/annex_test/data"
"/home/butler/annex_test/data")
NAMES=("antiferno" "axe" "deadbird")
URIS=("ssh://antiferno//${DIRS[0]}"
"ssh://axe//${DIRS[1]}"
"ssh://deadbird//${DIRS[2]}")
MODES=("manual" "backup" "manual")
function init {
git init "$1"
}
function git_add_remote {
git --git-dir="$1/.git" --work-tree="$1" remote add "$2" "$3"
}
function annex_init {
git --git-dir="$1/.git" --work-tree="$1" annex init "annex at $2"
}
function annex_set_mode {
git --git-dir="$1/.git" --work-tree="$1" annex wanted . standard
git --git-dir="$1/.git" --work-tree="$1" annex group . "$2"
}
function add_initial_file {
path="$1/file_$2"
echo "File from $2" >"$path"
git --git-dir="$1/.git" --work-tree="$1" annex add "$path"
git --git-dir="$1/.git" --work-tree="$1" commit -m "First file on $2"
}
function setup {
init "${DIRS[$1]}"
annex_init "${DIRS[$1]}" "${NAMES[$1]}"
git_add_remote "${DIRS[$1]}" "${NAMES[$2]}" "${URIS[$2]}"
git_add_remote "${DIRS[$1]}" "${NAMES[$3]}" "${URIS[$3]}"
annex_set_mode "${DIRS[$1]}" "${MODES[$1]}"
add_initial_file "${DIRS[$1]}" "${NAMES[$1]}"
}
if [ "$1" == "${NAMES[0]}" ]; then setup 0 1 2; fi
if [ "$1" == "${NAMES[1]}" ]; then setup 1 2 0; fi
if [ "$1" == "${NAMES[2]}" ]; then setup 2 0 1; fi
</code></pre>
comment 9http://git-annex.branchable.com/bugs/Assistant_drops_files_from_remote_repos_that_it_shouldn__39__t/comment_9_c46cdba62da4f5ccfdc42dfc33aec600/boh2016-11-27T12:23:20Z2016-11-27T12:23:20Z
<p>Seems as if the problem still exists in 6.20161118 (Debian).</p>
<p>I have three repositories (among others), <code>jolla</code>, <code>sts-3xx</code>, and <code>here</code>. <code>jolla</code> and <code>here</code> are in group <code>manual</code>, <code>sts-3xx</code> is <code>backup</code>; <code>here</code> and <code>sts-3xx</code> have assistants running, <code>jolla</code> not. <code>jolla</code> and <code>sts-3xx</code> have slightly older versions of git-annex installed.</p>
<p>Now, when I copy a file from <code>here</code> to <code>jolla</code> like this</p>
<pre><code>git annex copy real_programmers.png -t jolla
</code></pre>
<p>the file is subsequently dropped by the assistant:</p>
<pre><code>drop real_programmers.png (locking jolla...) [2016-11-27 13:00:02.667376556] chat: ssh ["-S",".git/annex/ssh/jolla","-o","ControlMaster
=auto","-o","ControlPersist=yes","-F",".git/annex/ssh.config","-T","jolla","git-annex-shell 'lockcontent' '/~/Music/media/' '--debug' '
SHA256E-s84499--ff98a733cc0122858fb11433c720e2d038fec190a3d36380d0e7e8dab468f883.png' --uuid 5298e3ce-1106-4d5e-b052-0aee4b27a344"]
(locking sts-3xx...) [2016-11-27 13:00:03.252473676] chat: ssh [..., "git-annex-shell 'lockcontent' '/backups/exot/media/' '--debug' 'SHA256E-s84499--ff98a733cc0122858fb11433c720e2d038fec190a3d 36380d0e7e8dab468f883.png' --uuid 1fec6253-171d-4f86-885b-e233be2d65ec"]
(lockcontent failed) [2016-11-27 13:00:03.486158016] process done ExitFailure 1
(checking sts-3xx...) [2016-11-27 13:00:03.487047149] call: ssh [..., "git-annex-shell 'inannex' '/backups/exot/media/' '--debug' 'SHA256E-s84499--ff98a733cc0122858fb11433c720e2d038fec190a3d363 80d0e7e8dab468f883.png' --uuid 1fec6253-171d-4f86-885b-e233be2d65ec"]
[2016-11-27 13:00:03.76435136] process done ExitSuccess
[2016-11-27 13:00:03.764705754] Dropping from here proof: Just (SafeDropProof (NumCopies 2) [RecentlyVerifiedCopy UUID "1fec6253-171d-4 f86-885b-e233be2d65ec",LockedCopy UUID "5298e3ce-1106-4d5e-b052-0aee4b27a344"] (Just (ContentRemovalLock (Key {keyName = "ff98a733cc012 2858fb11433c720e2d038fec190a3d36380d0e7e8dab468f883.png", keyBackendName = "SHA256E", keySize = Just 84499, keyMtime = Nothing, keyChun kSize = Nothing, keyChunkNum = Nothing}))))
[2016-11-27 13:00:04.24333081] process done ExitFailure 1
ok
[2016-11-27 13:00:04.251232455] dropped real_programmers.png (from here) (copies now 4) : drop wanted after Upload UUID "5298e3ce-1106- 4d5e-b052-0aee4b27a344" real_programmers.png Just 84499
</code></pre>
<p>However, I failed to reproduce the problem by replicating my setup with fresh repositories …</p>
<p>Please let me know if you need more information, and <em>so</em> many thanks for git-annex!</p>