X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Date: Mon, 13 Dec 2010 10:27:48 +0100 From: Corinna Vinschen To: cygwin AT cygwin DOT com Subject: Re: 1.7.7: rm -rf sometimes fails - race condition? Message-ID: <20101213092748.GC10566@calimero.vinschen.de> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <4D026815 DOT 4070606 AT gmx DOT de> <20101210182652 DOT GA27615 AT ednor DOT casa DOT cgf DOT cx> <3D3D7FA2B44B477A8342F96F72AE1BE7 AT multiplay DOT co DOT uk> <20101212124248 DOT GB11357 AT calimero DOT vinschen DOT de> <4D04D92F DOT 6000002 AT gmx DOT de> <20101212151228 DOT GA8795 AT calimero DOT vinschen DOT de> <4D04E6E8 DOT 6060905 AT gmx DOT de> <20101212151956 DOT GC8795 AT calimero DOT vinschen DOT de> <20101212154656 DOT GD8795 AT calimero DOT vinschen DOT de> <4D04FE72 DOT 8070309 AT gmx DOT de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <4D04FE72.8070309@gmx.de> 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 Dec 12 17:55, Matthias Andree wrote: > Am 12.12.2010 16:46, schrieb Corinna Vinschen: > > Probably the file-in-use stuff is not really your problem. There's > > another problem which is this: If the directory you want to remove is > > the CWD of a Windows process, then removing the dir fails. The reason > > is that the CWD handle of a Windows process is opened without the > > FILE_SHARE_DELETE sahring mode set. So, any try to rename or remove > > that dir will fail. > > > > For Cygwin 1.7.7, this is also true for Cygwin processes. There was > > that handle problem with Cygwin's CWD handling on Vista and later which > > has been discussed on this list between August and October. Since we > > had no way to fix this problem at this point, Cygwin 1.7.7 reverted to > > the old Cygwin 1.5 behaviour to use the Win32 function SetCurrentDirectory > > to set the CWD. With obvious results. > > > > In the meantime John Carey was so kind to dive into the OS and found a > > solution to replicate Vista's CWD handling so that Cygwin 1.7.8 will > > again be able to remove directories which are the CWD of any Cygwin > > process. The problem with native, non-Cygwin processes holding a > > CWD handle to this directory will of course persist. > > Ah, that might possibly account for races, depending on how fast we leave the > directory alone in 1.7.7. Some tools or scripts expect to be able to do this: mkdir foo cd foo [...] rmdir ../foo ("rmdir ." returns EINVAL per POSIX) > > So, here's the question: Did you try a recent Cygwin snapshot from > > http://cygwin.com/snapshots/? Perhaps it fixes your problem. > > Not yet, but can do. Does that entail reinstalling cyglsa since 1.7.7 (just > planning to keep the number of reboots down :-))? Just replacing the Cygwin DLL will do. 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