summaryrefslogtreecommitdiff
path: root/doc/bugs/Error___39__get__39__ting_files_from_rsync_remote__44___versions_3.20120315_and_3.20120430.mdwn
blob: 85e243382999a1b735b6e649e834f1823bbf6c24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
What steps will reproduce the problem?

	$ git annex initremote rsyncremote type=rsync rsyncurl=myuser@rsync.hidrive.strato.com:/users/myuser/git-annex/Music/ encryption=0xC597DECC177AFD7C
	$ git annex get --from rsyncremote "file"

What is the expected output? What do you see instead?

I expect that the requested file is copied as for every other remote, but instead I get this error:

----------------------------------------
	get <file> (from rsyncremote...) (gpg) 
	rsync: change_dir "/users/myuser/git-annex/Music/0e5/a5b/'GPGHMACSHA1--3afd32ab8e70ac329262adeb770c330b0845b1e0" failed: No such file or directory (2)

	sent 8 bytes  received 10 bytes  7.20 bytes/sec
	total size is 0  speedup is 0.00
	rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1518) [Receiver=3.0.9]

	  rsync failed -- run git annex again to resume file transfer

	rsync: change_dir "/users/myuser/git-annex/Music/8k/QZ/'GPGHMACSHA1--3afd32ab8e70ac329262adeb770c330b0845b1e0" failed: No such file or directory (2)

	sent 8 bytes  received 10 bytes  36.00 bytes/sec
	total size is 0  speedup is 0.00
	rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1518) [Receiver=3.0.9]

	  rsync failed -- run git annex again to resume file transfer
failed
	git-annex: get: 1 failed
----------------------------------------

I can verify that the directory /users/myuser/git-annex/Music/0e5/a5b/GPGHMACSHA1--3afd32ab8e70ac329262adeb770c330b0845b1e0 exists in the rsync remote, without the ' character.

What version of git-annex are you using? On what operating system?

I tried versions 3.20120315 and 3.20120430 on Gentoo linux.

	$ uname -a
	Linux odin 3.3.1-gentoo-odin #1 SMP Sat Apr 7 21:18:11 CEST 2012 x86_64 Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz GenuineIntel GNU/Linux

	$ ghc --version
	The Glorious Glasgow Haskell Compilation System, version 7.4.1

Please provide any additional information below.

The rsync remote config in .git/config:

	[remote "rsyncremote"]
		annex-rsyncurl = myuser@rsync.hidrive.strato.com:/users/myuser/git-annex/Music/
		annex-uuid = "UUID"

> Here's what the --debug flag shows is being run: --[[Joey]] 

	Running: rsync ["--progress","--inplace","joey@localhost:/tmp/Music/d98/a3c/'GPGHMACSHA1--878c3a3f59965bd87b4738ab29562efd215b954c/GPGHMACSHA1--878c3a3f59965bd87b4738ab29562efd215b954c'","/home/joey/tmp/x/.git/annex/tmp/GPGHMACSHA1--878c3a3f59965bd87b4738ab29562efd215b954c"] 

> But, this works for me, here, despite containing the quoting!
> That's because here it's using rsync over ssh, which actually requires
> that quoting. Are you using rsync
> over the rsync protocol? If so, the workaround is to explicitly make
> the rsyncurl start with `rsync://`
> 
> And if this is the case, I need
> to adjust the code in git-annex that determines if it's using ssh or
> the rsync protocol. It assumes that (and this is what the rsync man 
> says AFAICS) that the rsync protocol is only used if the url starts
> with `rsync://` or contains `::`.
> 
>> Nope, it is indeed using rsync over ssh as git-annex thought.
> 
> Hmm, I see that `hidrive.strato.com` is some kind of rsync provider?
> Perhaps they do something with rsync over ssh that
> avoids the need for shell quoting. For example, they might pass incoming
> ssh connections directly into rsync, bypassing the shell
> -- which avoids the need for this quoting. Any details you can provide
> about them would probably be useful then. Ie, do they really use rsync
> over ssh, is it really a `rsync.net` type rsync provider? 
>  --[[Joey]]
> 
>> This was the case, and the shellescape=no config option has been added
>> to rsync special remotes to deal with it. [[done]] --[[Joey]]