delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2009/01/26/09:28:35

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Date: Mon, 26 Jan 2009 15:28:15 +0100
From: Corinna Vinschen <corinna-cygwin AT cygwin DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: [1.7] regression wrt scp?
Message-ID: <20090126142815.GD16129@calimero.vinschen.de>
Reply-To: cygwin AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
References: <49644339 DOT 8000508 AT cwilson DOT fastmail DOT fm> <20090108103349 DOT GB14304 AT calimero DOT vinschen DOT de> <20090108161513 DOT GA10914 AT trixie DOT casa DOT cgf DOT cx> <20090126074307 DOT GA32214 AT ednor DOT casa DOT cgf DOT cx>
MIME-Version: 1.0
In-Reply-To: <20090126074307.GA32214@ednor.casa.cgf.cx>
User-Agent: Mutt/1.5.17 (2007-11-01)
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT 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

On Jan 26 02:43, Christopher Faylor wrote:
> I finally managed to duplicate this.
> [...]
> >It's already on my list to investigate.  When I saw "broken pipe" I
> >thought it could be something in the new pipe code.
> 
> But, if it is, I can't see it yet.
> 
> The strace snippet below seems to show that the ssh process which scp
> forks is expecting for the socket to become writable but that never happens.
> 
> At time 10048910 you can see 16384 bytes received.  Then select() is
> called to inspect the socket handler for readability/writability.  But
> select claims that the socket handle is never ready.

It's probably right about that.  The peek_socket function is called in a
loop by the thread_socket function (via select) with a non INFINITE
timeout.  The "Broken pipe" message already occured at the time the
peek_socket function is repeated ad infinitum.  This message in the
strace does not mean that SSH hangs for that reason, it just doesn't get
any data from the remote side.  SSH maintains a select loop over all
open descriptors and every poll from the thread_socket function
generates this debug message.  SSH seems to be waiting for data from the
local pipe to the local scp actually.

What strucks me as weird is, why does SSH hang in select() at all?  The
"Broken pipe" message should have resulted in exiting the application
but for some reason only scp noticed the broken pipe, not SSH.  That's
the only reason I can think of that the select loop in SSH didn't finish.

FWIW, I reverted the pipe-related changes from 2008-12-20 and 2008-12-23
for testing and the problem goes away for me.


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 -


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