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]

Re: opendir/readdir failure on non-Samba Unix-hosted remote volumess


On Jul 30 15:00, Sam Nelson wrote:
> On Tue, July 29, 2008 16:16, Corinna Vinschen wrote:
> > Here's one additional test I'd like to ask you to do for the sake of
> > Cygwin 1.7.  Please replace the FileBothDirectoryInformation with
> > FileDirectoryInformation and strace it again.  You'll suffer the crash,
> > but until then, does the NtQueryDirectoryFile return successfully?
> 
> Set up like this, `ls' seems to be able to read directories (readdir
> returns 0) but seems to have some sort of character-set disagreement with
> the far end, with the result that the `strace' output becomes incredibly
> messy when the `lstat' calls fail on files whose names appear to consist
> of the right number of `?' for their length.  At the end of the directory,
> I see
> 
> ---------------------------------------------------------------
>    57  108833 [main] ls 4200 fhandler_disk_file::readdir:
> NtQueryDirectoryFile failed, status 0x80000006, win32 error 18
>    49  108882 [main] ls 4200 geterrno_from_win_error: windows error 18 ==
> errno 89
> ---------------------------------------------------------------
> 
> which looks reasonable (ENMFILE, `No more files', is it?) to me.
> 
> I don't see anything from `NtQueryDirectoryFile' until the report above.
> 
> So, the upshot appears to be that `FileIDBothDirectoryInformation' doesn't
> work at all, `FileBothDirectoryInformation' works, and
> `FileDirectoryInformation' is somewhere in between, but not in a useful
> way.  Is that what you wanted to discover, or did I miss the point?

That's what I wanted to see.  I expected a crash but apparently you
were lucky :)  The messy stuff you see is because the subsequent code
in Cygwin still assumes that structures of type FileBothDirectoryInformation
are returned.  It scrambles the filenames because the filename length and
string pointer are incorrect for that reason.  The test should only show
that FileDirectoryInformation doesn't make any problems becasue Cygwin 1.7
will use FileDirectoryInformation rather than FileBothDirectoryInformation.

> In user-operations terms, I now seem to have a situation I can deal with,
> in that I have a latest-release version of `cygwin1.dll' that local users
> can work with, and for the moment at least I have the means to tweak and
> build any subsequent releases.

There will be no more release before Cygwin 1.7.  I'm going to apply a 
patch to Cygwin 1.7.  For testing purposes you should try the *next*
snapshot (not the current one) from http://cygwin.com/snapshots/, or
build Cygwin from CVS HEAD and see if it solves the problem for you.
If you get a warning due to a missing /etc/fstab file, that's expected.


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

--
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]