Mail Archives: cygwin/2005/06/27/23:24:45
[bug-coreutils: posting this cygwin question upstream]
> On Jun 27 14:50, Will Parsons wrote:
> > I notice that "ls" reports:
> >
> > /bin/ls: hiberfil.sys: No such file or directory
> > /bin/ls: pagefile.sys: No such file or directory
> >
> > "ls hi<tab>" completes to "ls hiberfil.sys", and shows the same message.
> >
> > Could this have something to do with the slow response?
>
> No, that's entirely unrelated. In recent Cygwin snapshots the message
> from ls has changed to "Device or resource busy" and you get an ls
> output for these files. It's just an open() on exclusively locked files
> which fails in the above cases.
>
> Along these lines, we had a short discussion on the developers list
> and we're wondering if it's necessary that ls prints this error message
> at all. The message is generated after a stat() already succeeded and
> a follow up acl() call returns -1. To say it with Dave Korn's words:
>
> ISTM that ls has all the information it should need to DTRT - a successful
> call to stat(), a return value of -1 from acl() and (I would hope that)
> errno has EACCES(*) from the ERROR_SHARING_VIOLATION return should let it
> deduce 'the file exists but is locked', shouldn't it?
>
> (*) actually EBUSY.
>
>
> Eric?
Hmm - murky waters here. It would be a simple one-line fix to
coreutils/lib/acl.c to ignore EBUSY as a non-error, and POSIX has
no requirements per se that a failure of acl() should imply a failure
of ls(1). Should a busy file be conservatively treated as having an
ACL (designated with '+' in the mode string) or left alone without
one (designated with ' ' in the mode string) when cygwin is unable
to query Windows without blocking for an undue length of time?
Right now, I'm almost leaning for a third option, and displaying '?'
or some other character to mean unable to determine, but that
would be more work (the gnulib library file_has_acl already returns
-1 on failure, 0 on no ACL, and 1 on ACL; perhaps make it return
2 on indeterminate). Should such a change be propagated to
coreutils and gnulib, or left as a cygwin-local patch?
--
Eric Blake
--
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/
- Raw text -