coreutils-8.32 test failure on i586-gnu

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Samuel Thibault
Owner
unassigned
Submitted by
Ludovic Courtès
Severity
normal
L
L
Ludovic Courtès wrote on 26 Oct 2022 19:20
(address . bug-guix@gnu.org)
87r0yu1ozc.fsf@inria.fr
Native builds of coreutils-8.32 (ca. commit
3734857fc55df2c599c2fe5cc4ae49f5d47879fc) have one test failure on
i586-gnu:

Toggle snippet (44 lines)
+ 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)

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

Toggle snippet (8 lines)
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

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

Toggle snippet (17 lines)
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

… 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’.
S
S
Samuel Thibault wrote on 26 Nov 2022 12:53
20221126115338.fvkutuq3cce5ed7r@begin
Hello,

It seems that replying on the web interface didn't work, so replying
again here by mail.

Ludovic Courtès, le mer. 26 oct. 2022 19:20:07 +0200, a ecrit:
Toggle quote (7 lines)
> 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% /

Toggle quote (3 lines)
> Maybe /hurd/fifo needs to implement ‘trivfs_check_open_hook’ to avoid
> actually opening?

I don't think it will change the behavior? trivfs_S_dir_lookup will call
trivfs_open after trivfs_check_open_hook anyway.

Samuel
L
L
Ludovic Courtès wrote on 26 Nov 2022 16:35
(address . 58803@debbugs.gnu.org)(address . bug-hurd@gnu.org)
87fse57mpq.fsf@gnu.org
Hi,

Samuel Thibault <samuel.thibault@gnu.org> skribis:

Toggle quote (3 lines)
> It seems that replying on the web interface didn't work, so replying
> again here by mail.

Weird.

Toggle quote (17 lines)
> 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.

Toggle quote (6 lines)
>> Maybe /hurd/fifo needs to implement ‘trivfs_check_open_hook’ to avoid
>> actually opening?
>
> I don't think it will change the behavior? trivfs_S_dir_lookup will call
> trivfs_open after trivfs_check_open_hook anyway.

Indeed, that was misguided, sorry for the confusion.

Ludo’.
L
L
Ludovic Courtès wrote on 18 Jul 2023 22:09
Re: bug#58803: coreutils-8.32 test failure on i586-gnu
(address . 58803-done@debbugs.gnu.org)
874jm1hthb.fsf@gnu.org
Ludovic Courtès <ludo@gnu.org> skribis:

Toggle quote (21 lines)
>> 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:


Closing!

Ludo’.
Closed
?