X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,TW_CG,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Message-ID: <4BB3F897.7090306@gmail.com> Date: Wed, 31 Mar 2010 21:36:23 -0400 From: Mark Levedahl User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.8) Gecko/20100301 Fedora/3.0.3-1.fc12 Thunderbird/3.0.3 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: git on cygwin 1.7.2 References: <4BB29285 DOT 4010701 AT gmail DOT com> <20100331042545 DOT GA23824 AT ednor DOT casa DOT cgf DOT cx> In-Reply-To: <20100331042545.GA23824@ednor.casa.cgf.cx> 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 On 03/31/2010 12:25 AM, Christopher Faylor wrote: > On Tue, Mar 30, 2010 at 08:08:37PM -0400, Mark Levedahl wrote: > >> All of the above connections and i/o processing are done using >> bog-standard fork, pipe, open, read, write, and associated file >> commands. Git has no trouble opening all of the processes and pipes >> under Cygwin 1.7.2. However, in general before the data transfer is >> complete the demux process issues an error upon getting an incomplete >> packet (fewer bytes transmitted than declared in the header), and >> debugging shows the error code of the read() is ENOENT, indicating the >> pipe or socket has been terminated early. The index-pack process also >> issues an error due to receipt of an incomplete pack. >> > ENOENT does not mean that the pipe or socket has been terminated early. > It sounds like read is not returning an error in this case so the errno > would be meaningless. > > cgf > You are correct, the read returns 0 bytes while more are still expected, not an error. I put in a "sleep(10)" triggered when this happens followed by another read(), the second read still returns 0 bytes but all processes (including the git upload-pack on the server) are still running: they die only when I let the demux process terminate after the second time read returns 0 bytes. So, something has deadlocked. Are there any debug flags or other tricks I can use to try to illuminate what locked up in the dll? Mark -- 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