delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2009/11/08/10:05:21

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 <moss AT cs DOT umass DOT edu>
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>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019