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