From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24375 invoked by alias); 26 Jan 2009 14:28:31 -0000 Received: (qmail 24362 invoked by uid 22791); 26 Jan 2009 14:28:30 -0000 X-Spam-Check-By: sourceware.org Received: from aquarius.hirmke.de (HELO calimero.vinschen.de) (217.91.18.234) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 26 Jan 2009 14:28:26 +0000 Received: by calimero.vinschen.de (Postfix, from userid 500) id 943256D418A; Mon, 26 Jan 2009 15:28:15 +0100 (CET) Date: Mon, 26 Jan 2009 15:46:00 -0000 From: Corinna Vinschen To: cygwin@cygwin.com Subject: Re: [1.7] regression wrt scp? Message-ID: <20090126142815.GD16129@calimero.vinschen.de> Reply-To: cygwin@cygwin.com Mail-Followup-To: cygwin@cygwin.com References: <49644339.8000508@cwilson.fastmail.fm> <20090108103349.GB14304@calimero.vinschen.de> <20090108161513.GA10914@trixie.casa.cgf.cx> <20090126074307.GA32214@ednor.casa.cgf.cx> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20090126074307.GA32214@ednor.casa.cgf.cx> User-Agent: Mutt/1.5.17 (2007-11-01) Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com X-SW-Source: 2009-01/txt/msg00755.txt.bz2 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/