NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkg/57145: gmake: *** INTERNAL: readdir: Operation not supported. Stop.



The following reply was made to PR kern/57145; it has been noted by GNATS.

From: Havard Eidnes <he%NetBSD.org@localhost>
To: riastradh%NetBSD.org@localhost
Cc: gnats-bugs%netbsd.org@localhost, gnats-admin%NetBSD.org@localhost, mrg%netbsd.org@localhost,
 netbsd-bugs%netbsd.org@localhost, andrew.cagney%gmail.com@localhost
Subject: Re: pkg/57145: gmake: *** INTERNAL: readdir: Operation not
 supported. Stop.
Date: Wed, 21 Jan 2026 12:12:26 +0100 (CET)

 >> Date: Tue, 20 Jan 2026 17:12:12 +0100 (CET)
 >> From: Havard Eidnes <he%NetBSD.org@localhost>
 >> 
 >> After the initial failure of this type, I decided to try to
 >> capture the system call information with "ktrace -i", and as it
 >> happened, the problem was reproduced with a ktrace.out file of a
 >> mere 520MB.
 >
 > Great, thanks!
 
 Let's see...
 
   https://filesender.sikt.no/?s=download&token=4e7e3223-6bb9-424e-8f89-672d492679cd
 
 can be used to download the ktrace.out file.  That link is valid
 until February 20, 2026.
 
 >> The gmake system calls preceding this error were:
 >>
 >>  14717  14717 gmake    CALL  lseek(6,0,0,1)
 >>  14717  14717 gmake    RET   lseek 0
 >>  14717  14717 gmake    CALL  __getdents30(6,0x79e73d4a0000,0x1000)
 >>  14717  14717 gmake    GIO   fd 6 read 4080 bytes
 >> ...(omitted here)...
 >>  14717  14717 gmake    RET   __getdents30 4080/0xff0
 >>  14717  14717 gmake    CALL  lseek(6,0,0,1)
 >>  14717  14717 gmake    RET   lseek 3132/0xc3c
 >>  14717  14717 gmake    CALL  __getdents30(6,0x79e73d4a0000,0x1000)
 >>  14717  14717 gmake    RET   __getdents30 -1 errno 22 Invalid argument
 >>
 >> and it's all downhill from there.
 >
 > Can you share the output of `mount' on this system, and say which file
 > system the build is running in?
 
 Certainly.  This system configuration is fairly strictly adhering
 to the KISS principle, so nothing special here:
 
 castor: {43} mount
 /dev/dk1 on / type ffs (local)
 tmpfs on /tmp type tmpfs (local)
 kernfs on /kern type kernfs (local)
 ptyfs on /dev/pts type ptyfs (local)
 procfs on /proc type procfs (local)
 tmpfs on /var/shm type tmpfs (local)
 castor: {44} df -h -t ffs
 Filesystem     Size   Used  Avail %Cap Mounted on
 /dev/dk1       1.3T   149G   1.1T  11% /
 castor: {45} 
 
 dk1 is on sd0 which is a hardware-RAID over a number of SATA
 SSDs.  From "drvctl -lt":
 
   pci0
     pchb0
     ppb0
       pci1
         mfii0
           scsibus0
             sd0
 
 > (And, if you can figure it out, confirm from the ktrace which
 > file system the __getdents30 call applies to, by finding where
 > file descriptor 6 was opened from.)
 
 Should be possible to figure out from the ktrace, but ...
 
 Looks like this was:
 
  14717  14717 gmake    CALL  open(0xbc37e28,0x600004,0)
  14717  14717 gmake    NAMI  "."
  14717  14717 gmake    RET   open 6
  14717  14717 gmake    CALL  __fstatvfs190(6,0x7f7fff32f090,2)
  14717  14717 gmake    RET   __fstatvfs190 0
 (continues as above)
  14717  14717 gmake    CALL  lseek(6,0,0,1)
  14717  14717 gmake    RET   lseek 0
  14717  14717 gmake    CALL  __getdents30(6,0x79e73d4a0000,0x1000)
  14717  14717 gmake    GIO   fd 6 read 4080 bytes
 
 So not knowing the current directory makes this difficult, but
 it's the "one and only" FFS file system on the box.  (And the
 gmake process itself doesn't appear to do chdir(), so which
 directory is the current dir must be dug out from the output of
 the other processes in the ktrace.out file.)
 
 Best regards,
 
 - Havard
 


Home | Main Index | Thread Index | Old Index