From Bugzilla Helper: User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; H010818) Description of problem: RedHat 7.3, fileutils-4.1-10, strace of df -l shows that it stat64's all filesystems in the mtab and then attempts to print just the local filesystems. This hangs if there's an NFS mount hang. df -l should only stat local filesystems period. Bad algorithm! Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1.mount NFS partition 2.strace df -kl 3.watch output for stat64(NFS-partition) If you disconnect the NFS server and re-run df -kl you'll see that it hangs. Actual Results: If the NFS server is down in any way then df -l hangs. strace output reveals that df -l stats everything in the mtab and then prints only the local filesystems. Expected Results: What should happen, algorithmically is that df -l should run through the mtab and only stat (and then print) local filesystems. This is the correct behaviour and many things break because this behaviour changed. Additional info:
any progress? has anyone even looked at this to decide what to do (if anything) about it?
This is fixed in 4.1.9-*. [root@aachen root]# df -k Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda1 38337872 36399588 1938284 95% / none 256200 0 256200 0% /dev/shm none 256200 0 256200 0% /build/ark-1.0/dev/shm 172.16.2.140:/mnt/raid 310130136 309228232 901904 100% /mnt/raid 172.16.2.140:/mnt/stgt 179413064 81773888 97639176 46% /mnt/stgt [root@aachen root]# strace df -k 2>&1 |grep stgt statfs("/mnt/stgt", {f_type="NFS_SUPER_MAGIC", f_bsize=8192, f_blocks=22426633, f_bfree=12204897, f_files=5632000, f_ffree=5136554, f_namelen=255}) = 0 stat64("/mnt/stgt", {st_mode=S_IFDIR|S_ISUID|0755, st_size=4096, ...}) = 0 stat64("/mnt/stgt", {st_mode=S_IFDIR|S_ISUID|0755, st_size=4096, ...}) = 0 172.16.2.140:/mnt/stgt 179413064 81773888 97639176 46% /mnt/stgt [root@aachen root]# strace df -kl 2>&1 |grep stgt [root@aachen root]#