On Tue, Jun 13, 2000 at 11:01:19AM -0500, Dave Dykstra wrote:
> On Tue, Jun 13, 2000 at 08:55:50AM -0500, Dave Dykstra wrote:
> > Here's the status of the most recent releases of rsync:
> > 2.4.3 - sets O_NONBLOCK on stdin and stdout. There haven't been
> > reports that it still hangs ssh, but there have been numerous
> > reports that it gets rsync protocol errors ("unexpected tag" is the
> > one most often reported). I wonder if ssh can't completely handle
> > being in non-blocking mode, and I wonder if Wout's patch would solve
> > those problems.
> > 2.4.2 - similar to 2.4.3 except that it didn't work with rsh so it was
> > shortlived.
>
> Actually I just looked more closely and it appears that rsync is only
> setting O_NONBLOCK on stdout in 2.4.3; that was the change between 2.4.2
> and 2.4.3 to make rsh work again. It is still initially setting
> O_NONBLOCK on both stdin and stdout but just before it execs rsh or ssh in
> the child process it turns O_NONBLOCK off on stdin.
Oh, and I just realized that the "unexpected tag" errors in 2.4.3 are only
happening on rsh, not ssh. So ssh can probably handle the non-blocking
stdout but rsh cannot. The trouble is that there's no foolproof way for
rsync to know which transport it is using. Probably the best it can do is
to look at the base name of the "-e" option and see if it begins with an
'r' or an 's'.
- Dave Dykstra