delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2010/03/12/12:28:14

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Date: Fri, 12 Mar 2010 18:28:01 +0100
From: Corinna Vinschen <corinna-cygwin AT cygwin DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: Cygwin 1.7: Concurrency Issue with Shared State Initialization
Message-ID: <20100312172801.GV6505@calimero.vinschen.de>
Reply-To: cygwin AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
References: <B10B50309DC54D45A855FD66F56015F71D07DD7E50 AT DEWDFECCR03 DOT wdf DOT sap DOT corp> <20100312162736 DOT GS6505 AT calimero DOT vinschen DOT de>
MIME-Version: 1.0
In-Reply-To: <20100312162736.GS6505@calimero.vinschen.de>
User-Agent: Mutt/1.5.20 (2009-06-14)
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 Mar 12 17:27, Corinna Vinschen wrote:
> On Mar 12 16:48, Schmidt, Oliver wrote:
> > Hi,
> > 
> > > Does the patch help?
> > 
> > As the issue is sporadic it's not that easy to come up with a conclusive
> > answer...
> > 
> > I downloaded http://cygwin.com/snapshots/cygwin1-20100309.dll.bz2, 
> > unpacked and renamed the DLL and used it as drop-in replacement to the
> > 1.7.1 DLL.
> > 
> > I experienced three times by now the effect that echo.exe "hangs" without
> > using significant CPU time. Attaching a MSVC debugger I could only find
> > out that in all three cases the executable stays in this endless loop:
> > 
> > 7D6373D2  cmp         dword ptr ds:[7D6A0220h],edi 
> > 7D6373D8  jne         7D628061 
> > 7D6373DE  lea         eax,[ebp-28h] 
> > 7D6373E1  push        eax  
> > 7D6373E2  push        ebx  
> > 7D6373E3  call        7D61CCB1 
> > 7D6373E8  cmp         eax,ebx 
> > 7D6373EA  jge         7D6373D2 
> 
> What about building the Cygwin DLL with debug symbols and using the GDB
> debugger instead of MSVC?  The latter doesn't grok the Dwarf-2 debugging
> format.

Hang on.  This endless loop has nothing to do with Cygwin code.  The
addresses show that we're outside of Cygwin, which is in the 0x61xxxxxx
address range.  0x7dxxxxxx is probably somewher in a Windows DLL.  Are
you absolutely sure that you can rule out BLODA effects?

Besides, the loop which handles the spinlock is much bigger than the
above code.  It would also contain a locking assembler directive along
the lines of `lock cmpxchgl ...'.

And last but not least, even if that doesn't count much, I just glared 
at the new spinlock loop in shared.cc until my eyes watered, and I can't
figure out any situation in which this could result in an endless loop
*unless* the process which is doing the initial initialization has been
forcefully teminated during initialization.


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

--
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