X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-2.1 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Message-ID: <4AF6DE22.6080402@cs.umass.edu> Date: Sun, 08 Nov 2009 10:05:06 -0500 From: Eliot Moss User-Agent: Thunderbird 2.0.0.23 (Windows/20090812) MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: Problem with rsync 3.0.6-1 under 1.7.0-62 and 63 References: <4AF5A3B3 DOT 7010403 AT monai DOT ca> <4AF5AD99 DOT 2040305 AT cs DOT umass DOT edu> <4AF5C2E1 DOT 6010701 AT monai DOT ca> <4AF5FB1D DOT 5010609 AT cs DOT umass DOT edu> <4AF64CDD DOT 7000405 AT monai DOT ca> <4AF67C20 DOT 8060707 AT cs DOT umass DOT edu> In-Reply-To: <4AF67C20.8060707@cs.umass.edu> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Eliot Moss wrote: > Tried two more things ... > > - rsync in the opposite direction fails in the same way > > - adding --protocol=29 (to match the remote end) did not > change the behavor > > Unfortunately no other version of rsync is available with > cygwin 1.7.x, so I can't simply install an earlier version. > I think I'll need to obtain source and build it myself. > Maybe later today .... Rebuilding from source had no effect -- I did apply first the 3.0.6-1.src patch and then the cygwin patch. So I tried strace to get more info. The first failure is at a dup2 call immediately after a fork() call. The dup2 args are (3, 0) and Win32 returns error 6, which cygwin translates to 9 (EBADF). Near as I can tell, fd 3 is a socket. The code is in piped_child in pipe.c; here is the comment at the top of that routine: /** * Create a child connected to us via its stdin/stdout. * * This is derived from CVS code * * Note that in the child STDIN is set to blocking and STDOUT * is set to non-blocking. This is necessary as rsh relies on stdin being blocking * and ssh relies on stdout being non-blocking * * If blocking_io is set then use blocking io on both fds. That can be * used to cope with badly broken rsh implementations like the one on * Solaris. **/ Not sure if I am reporting the most helpful stuff, but there it is. Any ideas on how I can help resolve this? There does not seem to be anything like this reported in the rsync list, so I think it's particular to cygwin, and probably to 1.7.x. Cheers -- Eliot Moss -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple