Subject: Re: bug#17833: coreutils 8.22 df

From: Pádraig Brady <[email-masked]>
Date: Wed, 25 Jun 2014 10:17:30 +0100

On 06/22/2014 09:41 AM, Gabor Z. Papp wrote:
> lo lo,
> 
> seems like I discovered a problem in 8.22's df util:
> 
> $ cat /etc/fstab 
> /dev/md0 / ext3 defaults,errors=remount-ro 0 1
> /dev/sda2 swap swap defaults 0 0
> /dev/sdb2 swap swap defaults 0 0
> /dev/md1 /var/archive ext3 defaults,errors=remount-ro 0 1
> /dev/sr0 /mnt/cdrom iso9660 defaults,noauto 0 0
> 
> proc /proc proc defaults 0 0
> none /proc/bus/usb usbfs defaults 0 0
> 
> $ cat /etc/mtab 
> /dev/md0 / ext3 rw,errors=remount-ro 0 0
> proc /proc proc rw,relatime 0 0
> sysfs /sys sysfs rw,relatime 0 0
> tmpfs /dev tmpfs rw,relatime,size=4k,mode=755 0 0
> devpts /dev/pts devpts rw,relatime,mode=620 0 0
> /dev/md1 /var/archive ext3 rw,errors=remount-ro 0 1
> /var/archive/home /home none rw,bind 0 0
> /var/archive/spool /var/spool none rw,bind 0 0
> /var/archive/www /var/lib/www none rw,bind 0 0

Is this mtab really a link to /proc/mounts?
That's the normal case on modern Linux distros.

> $ df-8.22 -h
> Filesystem      Size  Used Avail Use% Mounted on
> /dev/md0         21G  8.8G   11G  46% /
> tmpfs           4.0K     0  4.0K   0% /dev
> 
> And where is /dev/md1 ?

Not sure what's going on here.
Since you've compiled various versions,
could you replace src/df.c in your 8.22 build dir with:
http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=blob_plain;f=src/df.c;hb=HEAD
There have been many df changes since 8.22, so it would
be good to check with the latest.

> running df from coreutils 8.21 shows different result:
> 
> $ df-8.21 -h
> Filesystem         Size  Used Avail Use% Mounted on
> /dev/md0            21G  8.8G   11G  46% /
> tmpfs              4.0K     0  4.0K   0% /dev
> /var/archive/home  273G  244G   29G  90% /home
> 
> Still weird.

As part of the device de-duplication logic we used in 8.21
we're favoring '/home' since it's shorter than '/var/archive'
and thus we're using the '/var/archive/home' "device".

> Trying with 8.20:
> 
> $ df-8.20 -h
> Filesystem      Size  Used Avail Use% Mounted on
> /dev/md0         21G  8.8G   11G  46% /
> tmpfs           4.0K     0  4.0K   0% /dev
> /dev/md1        273G  244G   29G  90% /var/archive

I agree that this is the best output for your case.
I suppose we could stat the sources in the de-duplication logic
to favor real devices. I.E. stat '/var/archive/home' and '/dev/md1'
in your case to favor the latter.

thanks,
Pádraig.