[regression-3.6] coreutils mkdir broken on UNC paths

Corinna Vinschen corinna-cygwin@cygwin.com
Thu Feb 20 20:36:37 GMT 2025


On Feb 20 19:24, Lionel Cons via Cygwin wrote:
> On 2025年2月20日 at 18:09, Corinna Vinschen via Cygwin
> <cygwin@cygwin.com> wrote:
> >
> > On Feb 20 17:37, Lionel Cons via Cygwin wrote:
> > > On 2025年2月20日 at 14:56, Cedric Blancher via Cygwin
> > > <cygwin@cygwin.com> wrote:
> > > >
> > > > Good afternoon!
> > > >
> > > > Cygwin 3.6.0-0.378.g78fb13d21f4f.x86_64, Cygwin coreutils package 9.6-1
> > > >
> > > > coreutils mkdir is broken on UNC paths:
> > > >
> > > > mkdir -p -- "//ember.data4.local/afs/disk11/builds/bash/install_root/usr/local/bin"
> > > > mkdir: cannot create directory ‘//ember.data4.local’: Read-only file system
> > > >
> > > > This happens because you cannot do a "cd .." in
> > > > //ember.data4.local/afs, because "afs" is the UNC prefix for that
> > > > filesystem.
> > >
> > > No, it happens because mkdir "//ember.data4.local" returns "Read-only
> > > file system". If Cygwin would just return EEXIST if this mount exists,
> > > then this whole mkdir -p would work.
> >
> > You know exactly what Cygwin is doing wrong, great!
>> Sorry, it has been a very long day, and I did not communicate my point
> precisely.
> My point is that mkdir("//ember.data4.local") for a share should in my
> opinion not return EROFS, because the share already exists.
>> Looking at the code:
> int
> fhandler_base::mkdir (mode_t)
> {
> if (exists ())
> set_errno (EEXIST);
> else
> set_errno (EROFS);
> return -1;
> }
>> My guess is that exists() fails. The why? and how? I do not know.

And here's the problem. It works fine for me on all shares, be it SMB,
Samba, or NFS:
https://cygwin.com/pipermail/cygwin/2025-February/257438.html
> Maybe the hostname resolution in fhandler_netdrive::exists() failed?

If so, it would be a problem on your side.
Does `nslookup ember.data4.local' return a valid address?
I just pushed a patch to print a debug statement in strace output
to see what error code GetAddrInfoW returned.
The next test release cygwin-3.6.0-0.380-gdf307349a09e, due in an hour
or so, will contain that patch. Rerun mkdir as above under strace and
send the full trace output as attachment.
Corinna


More information about the Cygwin mailing list

AltStyle によって変換されたページ (->オリジナル) /