Weird directories on Windows share when using rm to delete a directory

Corinna Vinschen corinna-cygwin@cygwin.com
Wed Jul 7 09:38:00 GMT 2010


On Jul  6 06:41, Slide wrote:
> On Tue, Jul 6, 2010 at 1:02 AM, Corinna Vinschen
> <corinna-cygwin@cygwin.com> wrote:
> > On Jul  5 23:00, Slide wrote:
> >> <snip>
> >>
> >> > This funtionality wasn't available in 1.5, so, yes, this would only
> >> > have started with 1.7.
> >> >
> >> > So it seems that these netapp drives somehow don't understand the
> >> > entirely normal FileDispositionInformation method, or they ignore it for
> >> > some unknown reason.
> >> >
> >> > Unfortunately the strace from your OP isn't helpful since it
> >> > only contains the deletion of a single file.  What would help is
> >> > an strace of a rmdir or rm -rf(*) of a directory which then creates
> >> > one of those temporary directories.  There are lots of potential
> >> > debug messages wqhich might sched a light here.
> >> >
> >> >
> >> > Corinna
> >> >
> >> > (*) If possible with not more than a single file in the dir, so that
> >> >    the strace doesn't become too big.
> >> >
> >>
> >> The directory structure is like the following:
> >>
> >> //share/directory/path/to/dir/hammer.ba_
> >>
> >> Command is "rm -rf //share/directory/path/to/dir"
> >
> > Thanks.  The strace doesn't help, though.  The rmdir of foo works
> > without any problem, so not even a single debug output is generated.
> >
> > I have an idea or two what could be the problem of the netapp drive,
> > but that requires testing with a Cygwin DLL with enhanced debug output
> > in the unlink/rmdir functionality.
> >
> > Would you mind to play guinea pig if I send you the link to such a
> > DLL via PM?
> >
> >
> 
> 
> I'd love to play guinea pig if it will help get the issue resolved :-)

Thanks for your help.  This problem should be fixed now in CVS.
I switched off the entire mechanism which tries to resolve sharing
violations for netapp drives.

What happens is this:

The netapp drive is thoroughly confused when trying to move-and-delete
a file or directory using a single handle.  In case of directories it
moves the directories and the subsequent delete call returns success
without actually having succeeded.  In case of files, renaming the file
fails with "sharing violation" and the subsequent call for deletion
fails with "file has been moved" (I guess you see the confusion here).
Above all, when trying to remove a directory tree, after all files in a
directory have been removed, opening the directory with only the
FILE_SHARE_DELETE sharing flag set fails with a ... sharing violation.


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



More information about the Cygwin mailing list