Hi Sergei,

On Fri, Apr 19, 2024 at 10:33:00PM +0100, Sergei Trofimovich wrote:
> On Fri, 19 Apr 2024 00:33:52 -0700
> Paul Eggert <egg...@cs.ucla.edu> wrote:
> 
> > On 2024-04-18 14:52, Sergei Trofimovich wrote:
> > > $ clang simple.c -o simple && echo 42 | ./simple
> > > 1: ino=3009428657538693161
> > > 2: ino=3009428657538693161
> > > 3: ino=1568241705
> > > 
> > > Note how stat() and fstat() don't agree on inode.
> > > 
> > > Apparently it's documented in
> > > https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man2/fstat.2.html
> > > as
> > > 
> > >    BUGS
> > >       Applying fstat to a socket (and thus to a pipe) returns a zero'd 
> > > buffer,
> > >       except for the blocksize field, and a unique device and inode 
> > > number.  
> > 
> > The BUGS note simply means that a pipe has a unique inode number, which 
> > is what we want. So that's not indicating any problem.
> > 
> > 
> > Oh, I see the problem now.  For a socket or pipe, macOS fstat returns 
> > the full 64-bit inode number, whereas macOS stat returns only the low 
> > order 32 bits.  In your example, 3009428657538693161 % (2**32) == 
> > 1568241705.
> > 
> > This is a kernel bug in macOS. Can you report it or otherwise arrange to 
> > have the kernel bug fixed? I expect that you have better connections 
> > with Apple than I do. A proposed patch (relative to xnu-10063.101.15) is 
> > attached; I have not tested it as I don't use macOS. Thanks.
> 
> I reported it via https://www.apple.com/feedback/macos.html

Did they reply?  Had the Darwin kernel bug been fixed?


Have a lovely day!
Alex

> 
> > Also, I am documenting this macOS bug in Gnulib by installing the second 
> > attached patch to Gnulib, and am cc'ing this email to bug-gnulib.
> 
> Thank you, Paul!
> 
> -- 
> 
>   Sergei

-- 
<https://www.alejandro-colomar.es>
Use port 80 (that is, <...:80/>).

Attachment: signature.asc
Description: PGP signature

Reply via email to