Please describe the problem.
git annex cannot get me my file contents from my remotes
What steps will reproduce the problem?
git clone myserver:/path/to/repo
cd repo
git annex get
What version of git-annex are you using? On what operating system?
Using git-annex-5.20150327 on gentoo linux
Please provide any additional information below.
The error messages I get egenrally look like:
get 2att/photos-glasgow/male/patrik.jpg (from clusterhost...)
git-annex: ../chymera/data/.git/annex/transfer/upload/b8415264-4b9a-40ca-b450-7e57507cdc06/lck.SHA256E-s814245--9dc6f1287ba683cae030e04ba7f94a73e566ce392c2d032f171094ddc342fa60.jpg: openFd: does not exist (No such file or directory)
git-annex-shell: sendkey: 1 failed
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(176) [Receiver=3.1.1]
rsync failed -- run git annex again to resume file transfer
Unable to access these remotes: clusterhost
Try making some of these repositories available:
809074b6-e079-4ea1-b2f8-2d7840deda7d -- zenbookhost
a1ed6786-8b93-4a14-b00d-877b741e34da -- [clusterhost]
failed
From the rsync man page that the error directs you to:
Doesn't seem to be the case. I get nothing in my out.dat file, but still the same rsync complaint from git annex.
The error message about the transfer lock file is probably relevant, and seems to be coming from git-annex-shell on the clusterhost server.
Since this code has recently been changed and partly rewritten, you ought to try upgrading git-annex on clusterhost to a more recent version.
If that doesn't help, check if the specified lock file exists, and if its parent directory exists. It's possible that the directory it's trying to put the lock file in doesn't exist and this is causing the problem. If so, manually creating the directory would solve it.
The other possibility seems to be that it's trying to open a lock file for read that doesn't exist. But I don't see how that can happen, at least not with the current code which catches any such exception.
Stracing git-annex-shell would help narrow this down. The git-annex-shell command that's failing is something like this:
git-annex-shell sendkey ../chymera/data SHA256E-s814245--9dc6f1287ba683cae030e04ba7f94a73e566ce392c2d032f171094ddc342fa60.jpg
ssh remote /bin/true
) with a fresh install of git annex, when I did not have write rights to the remote's .git folder. I temporarily solved the issue by giving myself write rights to that folder, but can this be avoided?git-annex needs write access to the repository it's running in. This is a fairly pervasive assumption and it would not be at all easy to fix.