On Sun, 7 Sep 2025 11:06:37 +0200
Alejandro Colomar <a...@kernel.org> wrote:

> 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?

Unfortunately I got no reply back.

-- 

  Sergei



Reply via email to