Subject: bug#58803: closed (Re: bug#58803: coreutils-8.32 test failure on i586-gnu)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 18 Jul 2023 20:10:02 +0000

Your bug report

#58803: coreutils-8.32 test failure on i586-gnu

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
58803: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=58803
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#58803: coreutils-8.32 test failure on i586-gnu
From: Ludovic Courtès <[email-masked]>
To: [email-masked]
Date: Tue, 18 Jul 2023 22:09:36 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Ludovic Courtès <[email-masked]> skribis:

>> Ludovic Courtès, le mer. 26 oct. 2022 19:20:07 +0200, a ecrit:
>>> ludo@childhurd ~$ mkfifo fifo
>>> ludo@childhurd ~$ ls -l fifo
>>> prw-r--r-- 1 ludo users 0 Oct 21 07:08 fifo
>>> ludo@childhurd ~$ df ./fifo
>>> df: Warning: cannot read table of mounted file systems: No such file or directory
>>> ^C
>>
>> Using coreutils 9.1, I am not getting the issue any more:
>>
>> € mkfifo foo
>> € ls -l foo
>> prw-r--r-- 1 samy samy 0 Nov 26 11:47 foo
>> € df ./foo
>> Filesystem      Size  Used Avail Use% Mounted on
>> -                20G   18G  1.8G  91% /
>
> Oh nice.  This may be a side effect of Coreutils commit
> a3c04f8da14f0fe2a0561bf5562032b8ce5dafa9 (which made it in 9.0), which
> opens the file with O_NONBLOCK.

This is confirmed to be fixed with Coreutils 9.1 as discussed at:

  https://issues.guix.gnu.org/64711

Closing!

Ludo’.

Subject: coreutils-8.32 test failure on i586-gnu
From: Ludovic Courtès <[email-masked]>
To: [email-masked]
Date: Wed, 26 Oct 2022 19:20:07 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Native builds of coreutils-8.32 (ca. commit
3734857fc55df2c599c2fe5cc4ae49f5d47879fc) have one test failure on
i586-gnu:

--8<---------------cut here---------------start------------->8---
+ skip_if_root_
+ uid_is_privileged_
++ id -u
+ my_uid=999
+ case $my_uid in
+ return 1
+ touch unreadable
+ chmod a-r unreadable
+ df unreadable
df: Warning: cannot read table of mounted file systems: No such file or directory
Filesystem     1K-blocks    Used Available Use% Mounted on
-               12288000 2916208   8757392  25% /
+ mkfifo_or_skip_ fifo
+ test 1 = 1
+ mkfifo fifo
+ timeout 10 df fifo
df: Warning: cannot read table of mounted file systems: No such file or directory
+ fail=1
+ test 1 = 1
+ dump_mount_list_
+ cat /proc/self/mountinfo
cat: /proc/self/mountinfo: No such file or directory
+ cat /proc/self/mounts
cat: /proc/self/mounts: No such file or directory
+ cat /proc/mounts
/dev/hd0s1 / ext2fs writable,store-type=typed 0 0
proc /proc /hurd/procfs defaults 0 0
none /dev/shm /hurd/tmpfs writable,no-sync,size=1514772K 0 0
+ Exit 1
+ set +e
+ exit 1
+ exit 1
+ remove_tmp_
+ __st=1
+ cleanup_
+ :
+ test '' = yes
+ cd /tmp/guix-build-coreutils-8.32.drv-0/coreutils-8.32
+ chmod -R u+rwx /tmp/guix-build-coreutils-8.32.drv-0/coreutils-8.32/gt-unreadable.sh.6E92
+ rm -rf /tmp/guix-build-coreutils-8.32.drv-0/coreutils-8.32/gt-unreadable.sh.6E92
+ exit 1
FAIL tests/df/unreadable.sh (exit status: 1)
--8<---------------cut here---------------end--------------->8---

Indeed, ‘df’ seems to read FIFOs as if they were regular files:

--8<---------------cut here---------------start------------->8---
ludo@childhurd ~$ mkfifo fifo
ludo@childhurd ~$ ls -l fifo
prw-r--r-- 1 ludo users 0 Oct 21 07:08 fifo
ludo@childhurd ~$ df ./fifo
df: Warning: cannot read table of mounted file systems: No such file or directory
^C
--8<---------------cut here---------------end--------------->8---

It would seem that it’s stuck on a ‘dir_lookup’ RPC:

--8<---------------cut here---------------start------------->8---
  135<--132(pid83)->io_identity_request () = 0    137<--136(pid83)    131<--133(pid83) 29419
task109(pid83)-> 3206 (pn{ 18}) = 0 
task109(pid83)-> 3206 (pn{ 19}) = 0 
task109(pid83)-> 3206 (pn{ 17}) = 0 
task109(pid83)-> 3206 (pn{ 19}) = 0 
task109(pid83)-> 3206 (pn{ 17}) = 0 
task109(pid83)-> 3206 (pn{ 16}) = 0 
task109(pid83)-> 3206 (pn{ 14}) = 0 
task109(pid83)-> 3206 (pn{ 17}) = 0 
task109(pid83)-> 3206 (pn{ 14}) = 0 
task109(pid83)-> 2023 (17022976 4096) = 0 
  86<--120(pid83)->dir_lookup ("home/ludo/fifo" 65 0) ...113
task109(pid83)-> 2021 (0 4096 1) = 0 17018880
task109(pid83)-> 3208 (pn{ 13} 0 1) = 0 
task109(pid83)-> 3206 (pn{ 13}) = 0 
--8<---------------cut here---------------end--------------->8---

… where 65 = O_NOTRANS | O_RDONLY.

Passing O_NOTRANS (without O_RDONLY) like the ‘stat’ command does works
fine.

Maybe /hurd/fifo needs to implement ‘trivfs_check_open_hook’ to avoid
actually opening?

Ludo’.