174 lines
9.6 KiB
Markdown
174 lines
9.6 KiB
Markdown
### Please describe the problem.
|
|
|
|
If a git-annex client from Debian buster (currently 6.20180913-1) tries to talk with a server running Debian stretch (currently 6.20170101-1+deb9u2), it will fail mysteriously:
|
|
|
|
copy bar (fd:18: hClose: resource vanished (Broken pipe)) failed
|
|
|
|
### What steps will reproduce the problem?
|
|
|
|
On the stretch machine, setup a test git-annex repository.
|
|
|
|
On the buster machine, setup a test repository, add the stretch
|
|
machine as a remote, then add a file in git-annex, and
|
|
git-annex-sync-content to the stretch machine.
|
|
|
|
### What version of git-annex are you using? On what operating system?
|
|
|
|
Debian buster and stretch standard Debian packages.
|
|
|
|
### Please provide any additional information below.
|
|
|
|
On the buster machine:
|
|
|
|
[[!format sh """
|
|
# If you can, paste a complete transcript of the problem occurring here.
|
|
# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
|
|
|
|
(test) [1265]anarcat@curie:test130$ git init test
|
|
Dépôt Git vide initialisé dans /home/anarcat/test/test/.git/
|
|
(test) [1266]anarcat@curie:test$ cd test
|
|
(test) [1267]anarcat@curie:test$ git annex init
|
|
init ok
|
|
(recording state in git...)
|
|
(test) [1268]anarcat@curie:test$ echo foo > bar
|
|
(test) [1269]anarcat@curie:test$ git annex add bar
|
|
add bar ok
|
|
(recording state in git...)
|
|
(test) [1270]anarcat@curie:test$ git remote add sal sal:test
|
|
(test) [1271]anarcat@curie:test$ git annex sync sal
|
|
commit
|
|
[master (commit racine) 05b6d24] git-annex in anarcat@curie:~/test/test
|
|
1 file changed, 1 insertion(+)
|
|
create mode 120000 bar
|
|
ok
|
|
pull sal
|
|
warning: pas de commit commun
|
|
remote: Counting objects: 5, done.
|
|
remote: Compressing objects: 100% (3/3), done.
|
|
remote: Total 5 (delta 0), reused 0 (delta 0)
|
|
Dépaquetage des objets: 100% (5/5), fait.
|
|
Depuis sal:test
|
|
* [nouvelle branche] git-annex -> sal/git-annex
|
|
ok
|
|
(merging sal/git-annex into git-annex...)
|
|
(recording state in git...)
|
|
push sal
|
|
Énumération des objets: 18, fait.
|
|
Décompte des objets: 100% (18/18), fait.
|
|
Compression par delta en utilisant jusqu'à 4 fils d'exécution
|
|
Compression des objets: 100% (12/12), fait.
|
|
Écriture des objets: 100% (16/16), 1.92 KiB | 654.00 KiB/s, fait.
|
|
Total 16 (delta 1), réutilisés 0 (delta 0)
|
|
To sal:test
|
|
* [new branch] git-annex -> synced/git-annex
|
|
* [new branch] master -> synced/master
|
|
ok
|
|
(test) [1272]anarcat@curie:test$ git annex sync --content sal
|
|
commit
|
|
Sur la branche master
|
|
rien à valider, la copie de travail est propre
|
|
ok
|
|
pull sal
|
|
ok
|
|
copy bar (fd:18: hClose: resource vanished (Broken pipe)) failed
|
|
git-annex: sync: 1 failed
|
|
|
|
# End of transcript or log.
|
|
"""]]
|
|
|
|
The stretch repo is just `git init test && git -C test annex
|
|
init`. SSH communication is setup with a passwordless SSH key in
|
|
both. Debugging shows us the problem is with the p2pstdio command:
|
|
|
|
[[!format sh """
|
|
$ git annex sync --content sal --debug
|
|
[2018-11-03 15:25:35.018955156] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","git-annex"]
|
|
[2018-11-03 15:25:35.022443588] process done ExitSuccess
|
|
[2018-11-03 15:25:35.022611687] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--hash","refs/heads/git-annex"]
|
|
[2018-11-03 15:25:35.02578792] process done ExitSuccess
|
|
[2018-11-03 15:25:35.026234842] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","log","refs/heads/git-annex..24d62bcb5e253326bde98283338a855c9bfbe983","--pretty=%H","-n1"]
|
|
[2018-11-03 15:25:35.030089742] process done ExitSuccess
|
|
[2018-11-03 15:25:35.041384604] chat: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","cat-file","--batch"]
|
|
[2018-11-03 15:25:35.042220799] chat: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","cat-file","--batch-check=%(objectname) %(objecttype) %(objectsize)"]
|
|
commit
|
|
[2018-11-03 15:25:35.045907106] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","commit","-a","-m","git-annex in anarcat@curie:~/test/test"]
|
|
Sur la branche master
|
|
rien à valider, la copie de travail est propre
|
|
[2018-11-03 15:25:35.077421642] process done ExitFailure 1
|
|
ok
|
|
[2018-11-03 15:25:35.077523489] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","symbolic-ref","-q","HEAD"]
|
|
[2018-11-03 15:25:35.079008549] process done ExitSuccess
|
|
[2018-11-03 15:25:35.079088278] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","refs/heads/master"]
|
|
[2018-11-03 15:25:35.080639101] process done ExitSuccess
|
|
[2018-11-03 15:25:35.080766018] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--verify","-q","refs/heads/synced/master"]
|
|
[2018-11-03 15:25:35.08225223] process done ExitSuccess
|
|
[2018-11-03 15:25:35.082343323] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","log","refs/heads/master..refs/heads/synced/master","--pretty=%H","-n1"]
|
|
[2018-11-03 15:25:35.084234147] process done ExitSuccess
|
|
pull sal
|
|
[2018-11-03 15:25:35.084663095] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","fetch","sal"]
|
|
[2018-11-03 15:25:37.678014829] process done ExitSuccess
|
|
[2018-11-03 15:25:37.678131075] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","branch","-f","synced/master","refs/heads/master"]
|
|
[2018-11-03 15:25:37.68042014] process done ExitSuccess
|
|
[2018-11-03 15:25:37.680521541] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--verify","-q","refs/remotes/sal/master"]
|
|
[2018-11-03 15:25:37.682164837] process done ExitFailure 1
|
|
[2018-11-03 15:25:37.682259432] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--verify","-q","refs/remotes/sal/synced/master"]
|
|
[2018-11-03 15:25:37.683835717] process done ExitSuccess
|
|
[2018-11-03 15:25:37.683934116] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","log","refs/heads/synced/master..refs/remotes/sal/synced/master","--pretty=%H","-n1"]
|
|
[2018-11-03 15:25:37.686212308] process done ExitSuccess
|
|
ok
|
|
[2018-11-03 15:25:37.686343742] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","git-annex"]
|
|
[2018-11-03 15:25:37.688215586] process done ExitSuccess
|
|
[2018-11-03 15:25:37.688305585] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--hash","refs/heads/git-annex"]
|
|
[2018-11-03 15:25:37.6901916] process done ExitSuccess
|
|
[2018-11-03 15:25:37.690393283] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","log","refs/heads/git-annex..24d62bcb5e253326bde98283338a855c9bfbe983","--pretty=%H","-n1"]
|
|
[2018-11-03 15:25:37.692726875] process done ExitSuccess
|
|
[2018-11-03 15:25:37.692906438] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","ls-files","--cached","-z","--"]
|
|
copy bar [2018-11-03 15:25:37.696621566] chat: ssh ["sal","-S",".git/annex/ssh/sal","-o","ControlMaster=auto","-o","ControlPersist=yes","-T","git-annex-shell 'p2pstdio' '/~/test' '--debug' 'f73778b3-17a4-4fee-9890-402bedf02456' --uuid 02ef3aa6-34d9-42b9-814e-f9ebc47c59e1"]
|
|
[2018-11-03 15:25:37.96931512] P2P > ERROR auth failed
|
|
(fd:18: hClose: resource vanished (Broken pipe)) failed
|
|
[2018-11-03 15:25:37.96973331] chat: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","check-attr","-z","--stdin","annex.backend","annex.numcopies","annex.largefiles","--"]
|
|
[2018-11-03 15:25:37.970341712] read: git ["--version"]
|
|
[2018-11-03 15:25:37.97296492] process done ExitSuccess
|
|
[2018-11-03 15:25:37.974463782] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","branch","-f","synced/master","refs/heads/master"]
|
|
[2018-11-03 15:25:37.978567382] process done ExitSuccess
|
|
[2018-11-03 15:25:37.979111982] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--verify","-q","refs/remotes/sal/synced/master"]
|
|
[2018-11-03 15:25:37.982068735] process done ExitSuccess
|
|
[2018-11-03 15:25:37.982213309] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","log","refs/remotes/sal/synced/master..refs/heads/synced/master","--pretty=%H","-n1"]
|
|
[2018-11-03 15:25:37.986086966] process done ExitSuccess
|
|
[2018-11-03 15:25:37.986239042] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","show-ref","--verify","-q","refs/remotes/sal/git-annex"]
|
|
[2018-11-03 15:25:37.988954838] process done ExitSuccess
|
|
[2018-11-03 15:25:37.989110109] read: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","log","refs/remotes/sal/git-annex..git-annex","--pretty=%H","-n1"]
|
|
[2018-11-03 15:25:37.993956367] process done ExitSuccess
|
|
[2018-11-03 15:25:37.994340874] read: ssh ["-O","stop","-S","sal","-o","ControlMaster=auto","-o","ControlPersist=yes","localhost"]
|
|
[2018-11-03 15:25:38.00909442] process done ExitSuccess
|
|
[2018-11-03 15:25:38.009887194] process done ExitSuccess
|
|
[2018-11-03 15:25:38.010571056] process done ExitSuccess
|
|
[2018-11-03 15:25:38.011368991] process done ExitSuccess
|
|
git-annex: sync: 1 failed
|
|
"""]]
|
|
|
|
A manual invocation confirms the [[design/p2p_protocol]] not supported
|
|
by the remote, probably because it's too old:
|
|
|
|
[[!format sh """
|
|
$ ssh sal git-annex-shell p2pstdio
|
|
fatal: unrecognized command 'p2pstdio'
|
|
git-annex-shell: git-shell failed
|
|
"""]]
|
|
|
|
I understand the need for this command (which has no manpage, for what
|
|
that's worth ;), but we should be able to fallback gracefully here. In
|
|
the worst case, just treat this as a remote without git-annex-shell
|
|
and revert to rsync to transfer files...
|
|
|
|
The workaround is to install the (working) backport in stretch, of course.
|
|
|
|
I wonder if this could be related to
|
|
[[bugs/new_git-annex-shell_protocol_hides_remote_error_messages/]].
|
|
|
|
### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
|
|
|
|
Yes! I'm using git-annex like a maniac and I'm using it to archive
|
|
Brazil right now. -- [[anarcat]]
|
|
|
|
> presumed [[done]] --[[Joey]]
|