Mail Archives: cygwin/2007/05/14/07:15:38
On Apr 19 11:01, Mark Riley wrote:
> After having problems with rsync (2.6.6) hanging while pushing files
> to a Cygwin machine over ssh, I searched the lists here and found
> that many other users were experiencing the same problem. While
> some solutions seemed to mitigate the problem, there are still some
> users experiencing this problem (myself included).
>
> After wading through massive(!) strace output files, it appears that
> an interaction between tcsh and rsync on the remote Cygwin machine
> is the culprit. If the remote machine is configured to use bash as the
> login shell, then the problem disappears - rsync works fine. This
> might explain why some users can't reproduce the problem (they don't
> use tcsh).
>
> When rsync connects to the remote machine using ssh, sshd launches
> a login shell (tcsh in this case) before the remote rsync command is run.
> Perusing the source for tcsh, it can be seen that tsch calls setmode(fd,
> O_TEXT) on the pipe supplied to it by sshd. When rsync is subsequently
> invoked, it inherits this pipe. Rsync apparently assumes it is getting an
> O_BINARY pipe and fails miserably when \r\n combinations are
> translated to \n.
>
> Recompiling rsync with
>
> setmode(STDIN_FILENO, O_BINARY);
> setmode(STDOUT_FILENO, O_BINARY);
>
> placed near the beginning of main() fixes the problem and I can now
> use tcsh as my login shell on the remote machine again.
>
> This may not be the ideal solution, but other solutions I've tried like
> putting "binmode" in the CYGWIN environment variable on the remote
> machine or invoking rsync with the --rsh="ssh -T" option didn't
> help.
>
> Anyway, I hope this solution works for some of the others out there
> experiencing this problem.
This is IMHO a problem in both applications, rsync and tcsh. rsync
should always make sure that its IO on the pipe is binary (as you do
above, for instance), and tcsh shouldn't assume O_TEXT for all input.
The latter is something I plan to change for years, but I got always
distracted by other stuff. Maybe this year?!?
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Project Co-Leader cygwin AT cygwin DOT com
Red Hat
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
- Raw text -