df command reports wrong value after fd have been released

Bastien Semene bsemene at cyanide-studio.com
Thu Dec 1 16:12:28 UTC 2011


I removed a file from /var using all my filesystem space, then restarted 
the process that handled its file descriptors.
I then, for another reason, had to reboot the system.

During the boot I had a warning saying that the filesystem is full.

I did not checked the fs state with df before, thinking it was resolved.
df now still shows me the fs is full, I stopped the process then checked 
the fd with lsof, they were removed.
I changed the log file name then restarted the process.
lsof shows me that the process no longer uses fd on this "ghost" file.

I'm out of ideas to resolve the problem, as I'm out of knowledge to 
understand it.
Any explanation/idea to resolve this issue is welcome.

some informations :
# uname -a
FreeBSD vcs.cyanide-studio.com 8.2-RELEASE-p3 FreeBSD 8.2-RELEASE-p3 #0: 
Tue Sep 27 18:45:57 UTC 2011     
root at amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64

# df -h
Filesystem                             Size    Used   Avail Capacity  
Mounted on
/dev/ad4s1a                         9.7G    287M    8.6G     3%            /
devfs                                     1.0K      1.0K      0B     
100%         /dev
/dev/ad4s1e                         989M    144K    910M     0%         
/dev/ad4s1d                         4.8G    384K       4.5G     0%      
/dev/ad4s1g                         108G     25G       74G    26%        
/dev/ad4s1f                          19G     19G       -1.5G    109%    
tank                                       1.8T    1.1T        718G    
61%      /var/db/svn

All fs are UFS, except "tank" that is a zfs fs.

More information about the freebsd-questions mailing list