How to fix |mkfifo()| failure if |pathname| is on NFS ? / was: Re: [EXTERNAL] Re: mkfifo: cannot set permissions of 'x.fifo': Not a directory

Brian Inglis Brian.Inglis@Shaw.ca
Sat Aug 26 19:16:23 GMT 2023


On 2023-08-26 11:40, Martin Wege via Cygwin wrote:
> On Sat, Aug 26, 2023 at 4:16 PM Corinna Vinschen via Cygwin
> <cygwin@cygwin.com> wrote:
>>
>> On Aug 26 13:26, Cedric Blancher via Cygwin wrote:
>>> On Fri, 25 Aug 2023 at 14:26, Corinna Vinschen via Cygwin
>>> <cygwin@cygwin.com> wrote:
>>>>
>>>> On Aug 25 14:18, Corinna Vinschen via Cygwin wrote:
>>>>> On Aug 23 01:05, Roland Mainz via Cygwin wrote:
>>>>>> 2. Check whether the filesystem for the fifos path is NFS
>>>>>> (cgywin.dll's |fs.fs_is_nfs()|), and then just refuse |mkfifo()| with
>>>>>> |ENOSYS| (not implemented)
>>>>>
>>>>> I like the idea.
>>>>
>>>> EPERM, btw.  See https://man7.org/linux/man-pages/man2/mknod.2.html
>>>>
>>>
>>> I am vehemently opposed to that idea. That will IMHO not only be the
>>> wrong solution, it will break actual things like autoconf&friends on
>>> NFS - they create fifos for testing, but do not use them. If you just
>>> make this return EPERM, then you break stuff we have to rely on.
>>
>> https://cygwin.com/acronyms/#STC, please.#
> 
> Real world failure for Cygwin on NFS:
> 
> wget 'http://deb.debian.org/debian/pool/main/k/ksh93u+m/ksh93u+m_1.0.4.orig.tar.gz
> cd ksh-1.0.4
> $PWD/bin/package make
> 
> This fails with Cygwin 3.4.8-1:
> 
> cat buildlog.log
> package: update
> /cygdrive/z/arbeitdfn/windows_ksh/build_nfsv3/ksh-1.0.4/bin/execrate
> package: initialize the
> /cygdrive/z/arbeitdfn/windows_ksh/build_nfsv3/ksh-1.0.4/arch/cygwin.i386-64
> view
> package: update
> /cygdrive/z/arbeitdfn/windows_ksh/build_nfsv3/ksh-1.0.4/arch/cygwin.i386-64/lib/probe/C/make/probe
> package: update
> /cygdrive/z/arbeitdfn/windows_ksh/build_nfsv3/ksh-1.0.4/arch/cygwin.i386-64/bin/mamake
> package: make with mamake
> package: make output captured in
> /cygdrive/z/arbeitdfn/windows_ksh/build_nfsv3/ksh-1.0.4/arch/cygwin.i386-64/lib/package/gen/make.out
> mkfifo: cannot set permissions of
> '/cygdrive/z/arbeitdfn/windows_ksh/build_nfsv3/ksh-1.0.4/arch/cygwin.i386-64/lib/package/gen/make.out.fifo':
> No such file or directory
> package: make done at Fri Aug 26 19:24:26 CEST 2023 in
> /cygdrive/z/arbeitdfn/windows_ksh/build_nfsv3/ksh-1.0.4/arch/cygwin.i386-64
> 
> If you need more examples just let me now, we have MUCH more of that...

No - the DLL developers need fewer examples, just *ONE* Simple Test Case, boiled 
down to the essentials, with notes on preconditions, if you can not recreate the 
required conditions in a program or script.

Alternatively, Cygwin strace output with notes from a failing program, or a gdb 
script and log of the failing code with enough calling context and notes.

Please read the problem reporting guidelines linked at the bottom of all posts 
and follow them.

-- 
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer     but when there is no more to cut
                                 -- Antoine de Saint-Exupéry


More information about the Cygwin mailing list