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 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> <20100812081151 DOT GT14202 AT calimero DOT vinschen DOT de> <3C031C390CBF1E4A8CE1F74DE7ECAF3A158EDA702A AT MBX8 DOT EXCHPROD DOT USA DOT NET> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline 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 Precedence: bulk List-Id: List-Unsubscribe: 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 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