ls -l triggers mount of autofs shares when --ghost option is present or browse_mode is enabled
Bug #2033892 reported by
René Kosche
This bug affects 2 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
coreutils (Fedora) |
Fix Released
|
High
|
|||
coreutils (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
Release: 22.04.3 LTS
coreutils 8.32-4.1ubuntu1
ls triggers unwanted mounts of autofs filesystems
cause: coreutils 8.32.4.1ubuntu1 uses statx which not pass the AT_NO_AUTOMOUNT flag
This bug is also known (and fixed) at Redhat https:/
upstream commits:
https:/
https:/
fedora commit https:/
tags: | added: jammy |
Changed in coreutils (Fedora): | |
importance: | Unknown → High |
status: | Unknown → Fix Released |
To post a comment you must log in.
Description of problem:
Autofs mounts with --ghost or browse_mode=yes enabled, triggers a mount or shows error "ls: cannot access 'XXXX': No such file or directory" when ls -l is run
Either errors are seen for mount points which we know are inaccessible for this client or
a mount is triggered for accessible mounts.
Version-Release number of selected component (if applicable): 5.1.4-74. el8.x86_ 64 8.30-12. el8.x86_ 64
autofs-
coreutils-
(however, I am starting the bug with autofs as affected component as discussed with Ian)
How reproducible:
Always
Steps to Reproduce:
1. Upgrade to RHEL 8.5 (which should have autofs- 5.1.4-74. el8.x86_ 64 and coreutils- 8.30-12. el8.x86_ 64) 600,bg, tcp,hard, vers=3, rsize=32768, wsize=32768, timeo=600, retrans= 6
2. Create an autofs map :
~~~
[root@rsablerhel85 mnt2]# grep -i mnt /etc/auto.master
/mnt2 /etc/auto.indirect timeout=
[root@rsablerhel85 mnt2]# cat /etc/auto.indirect /testshare <<<<< testshare is a valid export from server /testshare2 <<<<< testshare2 is not available to this client or could be a bogus entry
testshare rsable76server:
testshare2 rsable76server:
~~~
3. Either use --ghost in auto.master as an option or set browse_mode=yes :
~~~
[root@rsablerhel85 mnt2]# grep -i browse /etc/autofs.conf
# browse_mode - maps are browsable by default.
browse_mode = yes
~~~
4. Cd to /mnt2 and run ls -l / ll.
Note : this issue occurs irrespective of direct or indirect maps.
Actual results:
Mount is triggered and ll throws ENOENT for testshare2
~~~
[root@rsablerhel85 mnt2]# ll
ls: cannot access 'testshare2': No such file or directory <<<<< Error
total 0
drwxrwxrwx. 3 1000 1000 15 Jan 17 12:08 testshare <<<<< mount is triggerd for testshare
d?????????? ? ? ? ? ? testshare2 <<<<< Path we know that is inaccessible throws an error
[root@rsablerhel85 mnt2]# mount | grep -i test /testshare on /mnt2/testshare type nfs (rw,relatime, vers=3, rsize=32768, wsize=32768, namlen= 255,hard, proto=tcp, timeo=600, retrans= 6,sec=sys, mountaddr= 192.168. 122.58, mountvers= 3,mountport= 20048,mountprot o=tcp,local_ lock=none, addr=192. 168.122. 58)
rsable76server:
~~~
Expected results:
Mount should not be trigger and error "ls: cannot access 'testshare2': No such file or directory"
should not be seen.
Additional info:
I think the issue is with a behavior change in coreutils- common- 8.30-12. el8. common- 8.30-8. el8 this issue goes away :
Reverting back to coreutils-
~~~
[root@rsablerhel85 mnt2]# ll
ls: cannot access 'testshare2': No such file or directory
total 0
drwxrwxrwx. 3 1000 1000 15 Jan 17 12:08 testshare
d?????????? ? ? ? ? ? testshare2
[root@rsablerhel85 mnt2]# dnf downgrade coreutils- 8.30-8. el8.x86_ 64 8.30-8. el8.x86_ 64 coreutils- common- 8.30-8. el8.x86_ 64
Downgraded:
coreutils-
Complete!
[root@rsablerhel85 mnt2]# ll
total 0
drwxrwxrwx. 3 1000 1000 15 Jan 17 12:08 testshare
drwxr-xr-x. 2 root root 0 Jan 21 11:47 testshare2
~~~
I can see that coreutils- common- 8.30-12. el8 calls statx while coreutils- common- 8.30-8. el8 calls lstat :
~~~
coreutils-8.30-12
3181 12:02:13.828462 getdent...