delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2010/12/13/04:28:10

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 <corinna-cygwin AT cygwin DOT com>
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
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
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 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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019