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.



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