delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2010/07/02/09:33:39

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Date: Fri, 2 Jul 2010 15:33:23 +0200
From: Corinna Vinschen <corinna-cygwin AT cygwin DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: Weird directories on Windows share when using rm to delete a directory
Message-ID: <20100702133323.GC8163@calimero.vinschen.de>
Reply-To: cygwin AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
References: <AANLkTil2xhfblmgyMhLPlAIY_PDDo7GXq-GByS4XZiSc AT mail DOT gmail DOT com> <4C2D0872 DOT 9080306 AT redhat DOT com> <20100702132803 DOT GB8163 AT calimero DOT vinschen DOT de>
MIME-Version: 1.0
In-Reply-To: <20100702132803.GB8163@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
Note-from-DJ: This may be spam

On Jul  2 15:28, Corinna Vinschen wrote:
> On Jul  1 15:28, Eric Blake wrote:
> > On 07/01/2010 03:24 PM, Slide wrote:
> > > I am seeing a VERY odd problem. If I run "/usr/bin/rm -rf
> > > //computer/share/path/to/dir" to remove a directory on a network
> > > share. I get some directories created with names like
> > > .XXXfffff8a0015e3b00c65f07a9f20c7a31 at the ROOT of the share (where
> > > XXX is unprintable character with the value 0x3f). I ran the command
> > > with strace, but didn't see anything in there that would point to why
> > > the directory is created.
> > > 
> > > If I run the corresponding Windows command "rmdir /s /q
> > > \\computer\share\path\to\dir" I do NOT see the same thing occur, so
> > > something in Cygwin is causing this issue. I am running Cygwin 1.7
> > > updated today.
> > 
> > This is due to cygwin emulating the ability to delete a file that is
> > still open.  Since windows doesn't directly allow it, cygwin instead
> > renames it out of the way, and relies on windows delete-on-close
> > semantics to get rid of that temporary name after everything finally
> > lets go of the file.  But if the delete-on-close stuff isn't working for
> > your particular network share, [...]
> 
> Sorry Eric, but that's not the problem.
> 
> Cygwin does what you say *only* for local drives.  [...]

Oh boy, scratch this.

I didn't remember that I implemented it exactly as described for remote
drives.

*blush*

I just read my longish comment in the source code which describes
what happens:

  /* Create hopefully unique filename.
     Since we have to stick to the current directory on remote shares, make
     the new filename at least very unlikely to match by accident.  It starts
     with ".cyg", with "cyg" transposed into the Unicode low surrogate area
     starting at U+dc00.  Use plain ASCII chars on filesystems not supporting
     Unicode.  The rest of the filename is the inode number in hex encoding
     and a hash of the full NT path in hex.  The combination allows to remove
     multiple hardlinks to the same file. */

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