This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Infinite Loop In "rm -fr" When Busy File Encountered


> > > Greetings,
> > >
> > > I have encountered a problem in "rm" when used with the "-f" and "-r"
> > > options and a busy and hence unremovable file is encountered.
> > >
> > > When "rm -fr" encounters a busy and hence unremovable file, it goes
into an
> > > infinite loop consuming as much CPU time as it can get until it is
forcibly
> > > terminated. The error is completely repeatable as long as the file
remains
> > > busy by virtue of being open in another program.
> > >
> > > The file system is NTFS and the mount is binmode. The system is
Windows
> > > 2000 Pro with SP2 and security patches installed.
> > >
> > > This is an up-to-date Cygwin installation that is exhibiting no other
> > > anomalous behavior.
> > >
> > > In reference to the attached "cygcheck -rs" output, this happened on
"C:"
> > > "/cygdrive/c" (reached via a symlink "/c -> /cygdrive/c").
> >
> >I tried exhaustively to reproduce this (cygwin1.dll v1.3.10), but failed.
>
>
> "Exhaustively?" In such little time?
Oops - exhaustively was the wrong word to use. My apologies!
>
> Please tell me what you tried. I believe when it happened to me the file
> triggering the problem was open for writing.
>From memory:
mkdir test
cp test.c test (where test.c is a program that just sleeps in a loop)
cd test
gcc test.c -otest
./test &
cd ..
rm -rf test
mkdir test2
ln -s $PWD/test test2
rm -rf test2
mkdir test2
ln -s $PWD/test test2
rm -rf test2/*
mkdir test/test3
cp test/test test/test3
test/test3/test &
rm -rf test
mkdir test2
ln -s $PWD/test test2
rm -rf test2/test3
mkdir /cygdrive/c/test
cp test/test /cygdrive/c/test
/cygdrive/c/test/test &
rm -rf /cygdrive/c/test
ln -s /cygdrive/c /c
rm -rf /c/test
And maybe some more, I forget.

If it is indeed a bug causing the problem you specified, it probably lies in
delqueue.cc somewhere. If you can reproduce the problem, try running rm
under strace:
strace rm -fr <directory>
>
> Randall Schulz




--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]