This is the mail archive of the cygwin 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]

FindNextFileA (fhandler_disk_file::readdir) Bizareness under NTFS


I have this really wierd/Bizarre situation, and wonder
if anyone else has stumbled upon this:

I have set /usr/src to be a managed link and it's located
at c:\cygmanaged\src

I have a directory /usr/src/cygwin-equivs/cygwin-base
and under it there are some additional directories.

the thing thats causing me some wierd grief is that 
fhandler_disk_file::readdir is telling me about a file that it sees
that DOES NOT exist.  And, it only does it when in a 
grandparent directory.  This causes find to exit with:  

        strace --mask=all --output=strace.out find . -type f -a \( -name \#\*\#
-o -name \*\~ -o -name DEADJOE -o -name \*.orig -o -name \*.rej -o -name \*.bak
-o -name .\*.orig -o -name .\*.rej -o -name .SUMS -o -name TAGS -o -name core -o
 \( -path \*/.deps/\* -a -name \*.P \) \) -print
find: ./debian/README.Debian.in: No such file or directory

I have modified fhandler_disk_file::readdir to print an additional output
line, and here is the snippet that I'm referring to:
   42 1666103 [main] find 6456 fhandler_disk_file::opendir: 0x100B3DA8 = opendir (/usr/src/cygwin-equivs/cygwin-base/equivs/debian)
  192 1666295 [main] find 6456 fhandler_disk_file::readdir: actually got '.'
   49 1666344 [main] find 6456 fhandler_disk_file::readdir: 0x100B3DAC = readdir (0x100B3DA8) (.)
   66 1666410 [main] find 6456 fhandler_disk_file::readdir: actually got '..'
   38 1666448 [main] find 6456 fhandler_disk_file::readdir: 0x100B3DAC = readdir (0x100B3DA8) (..)
   44 1666492 [main] find 6456 fhandler_disk_file::readdir: actually got '%52%45%41%44%4D%45.%44ebian'
   41 1666533 [main] find 6456 fhandler_disk_file::readdir: 0x100B3DAC = readdir (0x100B3DA8) (%52%45%41%44%4D%45.%44ebian)
   41 1666574 [main] find 6456 fhandler_disk_file::readdir: actually got '%52%45%41%44%4D%45.%44ebian.in'
   40 1666614 [main] find 6456 fhandler_disk_file::readdir: 0x100B3DAC = readdir (0x100B3DA8) (%52%45%41%44%4D%45.%44ebian.in)
  159 1666773 [main] find 6456 fhandler_disk_file::readdir: actually got 'changelog'
   43 1666816 [main] find 6456 fhandler_disk_file::readdir: 0x100B3DAC = readdir (0x100B3DA8) (changelog)
   41 1666857 [main] find 6456 fhandler_disk_file::readdir: actually got 'control'
   38 1666895 [main] find 6456 fhandler_disk_file::readdir: 0x100B3DAC = readdir (0x100B3DA8) (control)
   40 1666935 [main] find 6456 fhandler_disk_file::readdir: actually got 'copyright'
   52 1666987 [main] find 6456 fhandler_disk_file::readdir: 0x100B3DAC = readdir (0x100B3DA8) (copyright)
   40 1667027 [main] find 6456 fhandler_disk_file::readdir: actually got 'docs'
   38 1667065 [main] find 6456 fhandler_disk_file::readdir: 0x100B3DAC = readdir (0x100B3DA8) (docs)
   40 1667105 [main] find 6456 fhandler_disk_file::readdir: actually got 'rules'
   38 1667143 [main] find 6456 fhandler_disk_file::readdir: 0x100B3DAC = readdir (0x100B3DA8) (rules)
   88 1667231 [main] find 6456 fhandler_disk_file::readdir: 0x0 = readdir (0x100B3DA8)
   44 1667275 [main] find 6456 fhandler_disk_file::closedir: 0 = closedir (0x100B3DA8)
  121 1667396 [main] find 6456 closedir: 0 = closedir (0x22EAA8)

What's so bizarre is that the file README.Debian.in DOES NOT exist.
C:\cygmanaged\src\cygwin-equivs\cygwin-base\equivs\debian>dir
 Volume in drive C has no label.
 Volume Serial Number is B8DA-46B4

 Directory of C:\cygmanaged\src\cygwin-equivs\cygwin-base\equivs\debian

12/23/2004  01:26 PM    <DIR>          .
12/23/2004  01:26 PM    <DIR>          ..
12/23/2004  01:26 PM               770 %52%45%41%44%4D%45.%44ebian
12/23/2004  01:26 PM               137 changelog
12/23/2004  01:26 PM               326 control
12/23/2004  01:26 PM               939 copyright
12/23/2004  01:26 PM                 0 docs
12/23/2004  01:26 PM             1,100 rules
               6 File(s)          3,272 bytes
               2 Dir(s)  11,870,830,592 bytes free

C:\cygmanaged\src\cygwin-equivs\cygwin-base\equivs\debian>attrib
A          C:\cygmanaged\src\cygwin-equivs\cygwin-base\equivs\debian\%52%45%41%44%4D%45.%44ebian
A          C:\cygmanaged\src\cygwin-equivs\cygwin-base\equivs\debian\changelog
A          C:\cygmanaged\src\cygwin-equivs\cygwin-base\equivs\debian\control
A          C:\cygmanaged\src\cygwin-equivs\cygwin-base\equivs\debian\copyright
A          C:\cygmanaged\src\cygwin-equivs\cygwin-base\equivs\debian\docs
A          C:\cygmanaged\src\cygwin-equivs\cygwin-base\equivs\debian\rules

C:\cygmanaged\src\cygwin-equivs\cygwin-base\equivs\debian>

Does anyone have any idea where FindNextFileA is getting this extra file from?

Oh yeah, if I do this very same command down one directory, it works as expected, and does not
return the extra file.  Go Figure.




--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.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]