Mail Archives: cygwin/2010/09/14/13:08:22
On Sep 14 09:39, Earl Chew wrote:
> > There shouldn't be any race. When you set the delete disposition,
> > the file is actually deleted as soon as the last handle to the file
> > is closed. If the file isn't opened by another process, it will
> > disappear right at the NtClose at the end of unlink_nt. Please note
> > that the call to check_dir_not_empty already takes place *only* if
> > trying to open the directory failed with STATUS_SHARING_VIOLATION.
> > So there *was* another process blocking things.
>
> Corinna,
>
> Yes, I noticed that check wrt STATUS_SHARING_VIOLATION.
>
> These actions are performed consequential to a shell script,
> that launches a Makefile, that performs the rm -r -f ... so within
> that context there is definitely scope for oversight and we
> might inadvertently have a process getting in the way.
>
> When you describe the other process blocking things, what might
> that other process be doing?
>
> I presume that other process having the directory in question
> open, or as cwd is sufficient.
...or having a cwd below the directory. Trying to remove a directory
which is the CWD of some process is the most common reason that the
directory is blocked, because the Win32 CWD is opened without the
FILE_SHARE_DELETE flag. Especially something like `rm -rf ../foo'
is suspicious, if foo is the CWD of the current shell.
We're trying to revert this to the Linux way again in 1.7.8 (see the
thread starting at http://cygwin.com/ml/cygwin/2010-09/msg00342.html),
but even after that the problem remains for any non-Cygwin process.
> Is there anything else I should be on the lookout for?
Virus scanners, etc. There *might* be some unfortunate interaction
with a scanner which keeps handles of just deleted files or dirs open.
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 -