rsync over ssh - lockups with pipe()
Ben Lindstrom
mouring at pconline.com
Sun Jan 30 12:53:53 EST 2000
[Removed tridge at linuxcare.com, and thanked him for a bit of help with
it on NeXT]
Has anyone tried this with OpenSSH? I know I ran it for about 5 - 10
minutes and it never deadlocked. Wondering if anyone else had any
problems.
On Sat, 29 Jan 2000 tridge at linuxcare.com wrote:
> For a couple of years people have been reporting intermittent problems
> with rsync over ssh freezing during a large transfer (typically
> several GB). I have now gotten to the bottom of these problems, and
> have written a small test program which demonstrates a deadlock in
> sshd when doing large bi-directional transfers. Luckily the problem is
> easily solved by modifying sshd to use socketpair() instead of
> pipe(). Just remove "#define USE_PIPES 1" from near the bottom of
> includes.h does the trick.
>
> The test program, along with instructions for use and an explanation
> of some of the pipe() bugs in various OSes that make this change
> necessary is available from ftp://samba.org/pub/tridge/misc/sshtest.c
>
> In past releases of rsync I added various buffering tricks in rsync
> which reduced the likelyhood of this problem occuring, but didn't
> eliminate it completely. I have removed those tricks in rsync 2.4.0 so
> you may find an increase in the number of bug reports regarding rsync
> over ssh. I removed the tricks as they caused excessive memory usage
> (to the point of memory starvation) in some cases and are completely
> unnecessary once sshd is modified to use socketpair().
>
> I think the combination of pipe/select bugs on various OSes means that
> you can't work around this problem by playing with non-blocking pipes
> or the size of writes (except by dropping the size by 1).
>
> I'm also amazed at the number of pipe/select bugs in the various OSes
> I tested - Linux 2.2 was particularly bad (fixed in 2.3). I really
> expected pipes to be pretty well defined and bug-free by now!
>
> Cheers, Tridge
>
> PS: I am not on this list, I'm just using this address as noted in the
> README.
>
More information about the openssh-unix-dev
mailing list