Bug 16368 - Changed df behavior with overlapping mounts
Summary: Changed df behavior with overlapping mounts
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: Cauldron
Hardware: x86_64 Linux
Priority: Normal normal
Target Milestone: ---
Assignee: Base system maintainers
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-07-13 17:15 CEST by Frank Griffin
Modified: 2019-02-19 22:48 CET (History)
2 users (show)

See Also:
Source RPM: coreutils
CVE:
Status comment:


Attachments

Description Frank Griffin 2015-07-13 17:15:57 CEST
...and maybe mount as well.

I have two mounts in fstab that overlap on the remote end but not the local end:

ftgme2:/data/ftg/.thunderbird /home/ftg/.thunderbird nfs rw,bg,soft 0 0
ftgme2:/data /mnt/ftgme2.data nfs rw,bg,soft 0 0

When I boot the system, systemd fails to mount the first one (but this is a separate bug, mentioned here just to explain behavior).

For at least a year, if I then did a "mount -t nfs -a", the missing first mount was done, and df showed both mounts, each with the same size and GB-used info.

Now, df shows one or the other, apparently whichever was done last.  "df -a" shows both, but the one which "df" does not show appears with "-" for the size and usage figures.

This is going to confuse people, because if you assume the the mount *not* shown by "df" hasn't been done and try do it manually, you are told that the mount point is busy or already mounted (which in fact it is).

Here's an example.  Right after boot, because of the systemd bug, the first mount is not done at all:

[root@ftglap ~]# df
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 3.8G     0  3.8G   0% /dev
tmpfs                    3.8G  120K  3.8G   1% /dev/shm
tmpfs                    3.8G  1.4M  3.8G   1% /run
/dev/sda1                 40G   27G   11G  72% /
tmpfs                    3.8G     0  3.8G   0% /sys/fs/cgroup
tmpfs                    3.8G   72K  3.8G   1% /tmp
/dev/sda8                 89G   81G  3.6G  96% /mnt/temp
/dev/sda6                 16G  6.1G  8.8G  41% /usr/local
/dev/sda7                126G  102G   18G  85% /data
/dev/sda9                142G  135G  345M 100% /mnt/VirtualBox
ftgme2:/data2            252G  110G  130G  46% /mnt/ftgme2.data2
ftgme2:/                  40G   26G   13G  68% /mnt/ftgme2
ftgme2:/data             252G  180G   60G  76% /mnt/ftgme2.data
ftgme2:/usr/local         16G  6.1G  8.8G  41% /mnt/ftgme2.usr.local
ftgfiles1:/mnt/cauldron  222G  113G   98G  54% /mnt/cauldron
tmpfs                    777M   16K  777M   1% /run/user/501
[root@ftglap ~]# df -a
Filesystem               Size  Used Avail Use% Mounted on
proc                        0     0     0    - /proc
sysfs                       0     0     0    - /sys
devtmpfs                 3.8G     0  3.8G   0% /dev
devpts                      0     0     0    - /dev/pts
tmpfs                    3.8G  120K  3.8G   1% /dev/shm
tmpfs                    3.8G  1.4M  3.8G   1% /run
/dev/sda1                 40G   27G   11G  72% /
securityfs                  0     0     0    - /sys/kernel/security
tmpfs                    3.8G     0  3.8G   0% /sys/fs/cgroup
cgroup                      0     0     0    - /sys/fs/cgroup/systemd
pstore                      0     0     0    - /sys/fs/pstore
cgroup                      0     0     0    - /sys/fs/cgroup/devices
cgroup                      0     0     0    - /sys/fs/cgroup/freezer
cgroup                      0     0     0    - /sys/fs/cgroup/blkio
cgroup                      0     0     0    - /sys/fs/cgroup/cpu,cpuacct
cgroup                      0     0     0    - /sys/fs/cgroup/cpuset
cgroup                      0     0     0    - /sys/fs/cgroup/net_cls
debugfs                     0     0     0    - /sys/kernel/debug
mqueue                      0     0     0    - /dev/mqueue
hugetlbfs                   0     0     0    - /dev/hugepages
systemd-1                   -     -     -    - /proc/sys/fs/binfmt_misc
tmpfs                    3.8G   72K  3.8G   1% /tmp
sunrpc                      0     0     0    - /var/lib/nfs/rpc_pipefs
sunrpc                      0     0     0    - /proc/fs/nfsd
fusectl                     0     0     0    - /sys/fs/fuse/connections
/dev/sda8                 89G   81G  3.6G  96% /mnt/temp
/dev/sda6                 16G  6.1G  8.8G  41% /usr/local
/dev/sda7                126G  102G   18G  85% /data
/dev/sda9                142G  135G  345M 100% /mnt/VirtualBox
binfmt_misc                 0     0     0    - /proc/sys/fs/binfmt_misc
ftgme2:/data2            252G  110G  130G  46% /mnt/ftgme2.data2
ftgme2:/                  40G   26G   13G  68% /mnt/ftgme2
ftgme2:/data             252G  180G   60G  76% /mnt/ftgme2.data
ftgme2:/usr/local         16G  6.1G  8.8G  41% /mnt/ftgme2.usr.local
ftgfiles1:/mnt/cauldron  222G  113G   98G  54% /mnt/cauldron
tmpfs                    3.8G  1.4M  3.8G   1% /var/spool/postfix/run/saslauthd
tmpfs                    777M   16K  777M   1% /run/user/501
gvfsd-fuse               0.0K  0.0K  0.0K    - /run/user/501/gvfs

Now mount with -a to get the missing one:

[root@ftglap ~]# mount -t nfs -a
[root@ftglap ~]# df -a
Filesystem                     Size  Used Avail Use% Mounted on
proc                              0     0     0    - /proc
sysfs                             0     0     0    - /sys
devtmpfs                       3.8G     0  3.8G   0% /dev
devpts                            0     0     0    - /dev/pts
tmpfs                          3.8G  120K  3.8G   1% /dev/shm
tmpfs                          3.8G  1.4M  3.8G   1% /run
/dev/sda1                       40G   27G   11G  72% /
securityfs                        0     0     0    - /sys/kernel/security
tmpfs                          3.8G     0  3.8G   0% /sys/fs/cgroup
cgroup                            0     0     0    - /sys/fs/cgroup/systemd
pstore                            0     0     0    - /sys/fs/pstore
cgroup                            0     0     0    - /sys/fs/cgroup/devices
cgroup                            0     0     0    - /sys/fs/cgroup/freezer
cgroup                            0     0     0    - /sys/fs/cgroup/blkio
cgroup                            0     0     0    - /sys/fs/cgroup/cpu,cpuacct
cgroup                            0     0     0    - /sys/fs/cgroup/cpuset
cgroup                            0     0     0    - /sys/fs/cgroup/net_cls
debugfs                           0     0     0    - /sys/kernel/debug
mqueue                            0     0     0    - /dev/mqueue
hugetlbfs                         0     0     0    - /dev/hugepages
systemd-1                         -     -     -    - /proc/sys/fs/binfmt_misc
tmpfs                          3.8G   72K  3.8G   1% /tmp
sunrpc                            0     0     0    - /var/lib/nfs/rpc_pipefs
sunrpc                            0     0     0    - /proc/fs/nfsd
fusectl                           0     0     0    - /sys/fs/fuse/connections
/dev/sda8                       89G   81G  3.6G  96% /mnt/temp
/dev/sda6                       16G  6.1G  8.8G  41% /usr/local
/dev/sda7                      126G  102G   18G  85% /data
/dev/sda9                      142G  135G  345M 100% /mnt/VirtualBox
binfmt_misc                       0     0     0    - /proc/sys/fs/binfmt_misc
ftgme2:/data2                  252G  110G  130G  46% /mnt/ftgme2.data2
ftgme2:/                        40G   26G   13G  68% /mnt/ftgme2
ftgme2:/data                      -     -     -    - /mnt/ftgme2.data
ftgme2:/usr/local               16G  6.1G  8.8G  41% /mnt/ftgme2.usr.local
ftgfiles1:/mnt/cauldron        222G  113G   98G  54% /mnt/cauldron
tmpfs                          3.8G  1.4M  3.8G   1% /var/spool/postfix/run/saslauthd
tmpfs                          777M   16K  777M   1% /run/user/501
gvfsd-fuse                     0.0K  0.0K  0.0K    - /run/user/501/gvfs
ftgme2:/data/ftg/.thunderbird  252G  180G   60G  76% /data/ftg/.thunderbird

Note that both mounts are there, but now the usage data for ftgme2:data, which had real numbers above, now shows as "-", and the real usage data shows up under ftgme2:/data/ftg/.thunderbird.

And,

[root@ftglap ~]# df
Filesystem                     Size  Used Avail Use% Mounted on
devtmpfs                       3.8G     0  3.8G   0% /dev
tmpfs                          3.8G  104K  3.8G   1% /dev/shm
tmpfs                          3.8G  1.4M  3.8G   1% /run
/dev/sda1                       40G   27G   11G  72% /
tmpfs                          3.8G     0  3.8G   0% /sys/fs/cgroup
tmpfs                          3.8G   72K  3.8G   1% /tmp
/dev/sda8                       89G   81G  3.6G  96% /mnt/temp
/dev/sda6                       16G  6.1G  8.8G  41% /usr/local
/dev/sda7                      126G  102G   18G  85% /data
/dev/sda9                      142G  135G  345M 100% /mnt/VirtualBox
ftgme2:/data2                  252G  110G  130G  46% /mnt/ftgme2.data2
ftgme2:/                        40G   26G   13G  68% /mnt/ftgme2
ftgme2:/data/ftg/.thunderbird  252G  180G   60G  76% /data/ftg/.thunderbird
ftgme2:/usr/local               16G  6.1G  8.8G  41% /mnt/ftgme2.usr.local
ftgfiles1:/mnt/cauldron        222G  113G   98G  54% /mnt/cauldron
tmpfs                          777M   20K  777M   1% /run/user/501

/mnt/ftgme2.data no longer appears.

So was it broken all along and just fixed, or vice-versa ?







 

Reproducible: 

Steps to Reproduce:
Comment 1 Marja Van Waes 2016-10-20 17:27:48 CEST
@ Frank

Sorry for the very late reply. As you know, BugSquad is short on active members.

Tbh, I'd never thought having overlapping mounts would be possible at all, regardless of on which side they overlap.

Is it not possible or better to have only

   ftgme2:/data /mnt/ftgme2.data nfs rw,bg,soft 0 0

and link

   /home/ftg/.thunderbird to /mnt/ftgme2.data/ftg/.thunderbird  ?

Assigning to the basesystem maintainers, assuming this issue is still valid, please close this ticket if it isn't!

CC: (none) => marja11
Assignee: bugsquad => basesystem

Comment 2 Pascal Terjan 2016-10-20 18:18:32 CEST
IIRC df behaviour depends if you have /etc/mtab but I don't remember the details

If also has some duplicate detection code. I thought it was keeping the shortest one but not sure, and it has changed over the years.

Looking at http://git.savannah.gnu.org/cgit/coreutils.git/plain/NEWS

* Noteworthy changes in release 8.25 (2016-01-20) [stable]

  df now prefers sources towards the root of a device when
  eliding duplicate bind mounted entries.

Which may be related.

CC: (none) => pterjan

Comment 3 Pascal Terjan 2016-10-20 18:19:33 CEST
Also, 

* Noteworthy changes in release 8.24 (2015-07-03) [stable]

  df no longer suppresses separate exports of the same remote device, as
  these are generally explicitly mounted.  The --total option does still
  suppress duplicate remote file systems.
  [suppression was introduced in coreutils-8.21]
Comment 4 Pascal Terjan 2016-10-20 18:21:28 CEST
So, can you try in cauldron?

It seems it was fixed upstream by the release which happened 10 days before you reported this bug last year, and we have a more recent one now.
Comment 5 Frank Griffin 2019-02-19 22:48:36 CET
Working now.

Status: NEW => RESOLVED
Resolution: (none) => FIXED


Note You need to log in before you can comment on or make changes to this bug.