delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2010/09/03/03:38:08

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Date: Fri, 3 Sep 2010 09:37:40 +0200
From: Corinna Vinschen <corinna-cygwin AT cygwin DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: 1.7.5: Occasional failure of CreatePipe or signal handing due to thread-unsafe code in cwdstuff::set
Message-ID: <20100903073740.GA1749@calimero.vinschen.de>
Reply-To: cygwin AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
References: <3C031C390CBF1E4A8CE1F74DE7ECAF3A140684F0AA AT MBX8 DOT EXCHPROD DOT USA DOT NET> <20100811084926 DOT GC26152 AT calimero DOT vinschen DOT de> <3C031C390CBF1E4A8CE1F74DE7ECAF3A140684F0B0 AT MBX8 DOT EXCHPROD DOT USA DOT NET> <AANLkTimpBCKzUioEarGiKMQbTjN+6s9iDYm_zzZ2Lxr9 AT mail DOT gmail DOT com> <20100812081151 DOT GT14202 AT calimero DOT vinschen DOT de> <3C031C390CBF1E4A8CE1F74DE7ECAF3A158EDA702A AT MBX8 DOT EXCHPROD DOT USA DOT NET>
MIME-Version: 1.0
In-Reply-To: <3C031C390CBF1E4A8CE1F74DE7ECAF3A158EDA702A@MBX8.EXCHPROD.USA.NET>
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 Sep  2 23:32, John Carey wrote:
> On Aug 12 01:11, Corinna Vinschen wrote:
> > On Aug 12 06:54, Andy Koppe wrote:
> > > On 11 August 2010 20:55, John Carey wrote:
> > > > So is your idea that if SetCurrentDirectory() fails because
> > > > of path length or permissions, then Cygwin would just accept
> > > > the failure and keep an internal record the
> > > > POSIX current working directory and use that for all
> > > > Cygwin calls, not the Win32 notion of current directory?
> > >
> > > Yes. The question then becomes what to do about the Win32 working
> > > directory in that case.
> > 
> > Actually, Cygwin accepts *any* directory it can open as CWD:
> > 
> > - Directories which can only be opened under SE_BACKUP_NAME.
> > - Directories with a length up to 32768 chars.
> > - Virtual directories, which don't exist at all as filesystem-based
> >   paths, like /proc, /cygdrive, etc.
> > 
> 
> In Aug 17 10:15, Corinna Vinschen wrote:
> > I just released 1.7.6-1.
> ...
> > What changed since Cygwin 1.7.5:
> > ================================
> > 
> > - Cygwin handles the current working directory entirely on its own.  The
> >   Win32 current working directory is set to an invalid path to be out of
> >   the way.  This affects calls to the Win32 file API (CreateFile, etc.).
> >   See http://cygwin.com/htdocs/cygwin-ug-net/using.html#pathnames-win32-api
> 
> Thank you very much for the fix!
> 
> I've been running tests against Cygwin 1.7.6, and then 1.7.7,
> and those sporadic, non-deterministic failures in CreatePipe
> did stop after the 1.7.6 upgrade, and are still gone in 1.7.7.
> I think it's been long enough to conclude that it is not just
> the non-determinism--it really is fixed, as expected.
> 
> I understand that this issue opened a can of worms;
> thanks again for your efforts to overcome those difficulties.

I still don't like the final workaround, which is, to set the Win32 CWD
to the Cygwin CWD.  It would be nice if we could revert that change to
the pre-1.7.6 behaviour in a Vista-friendly way.  If you ever find out
how to make sure that the new handle in the PEB's user parameter block
is used even on Vista and later, pray tell me. 


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