#40633 [Com]: disk_free_space returns a bad result on filesystems with negative free space

From: Date: Fri, 16 Oct 2009 04:30:04 +0000
Subject: #40633 [Com]: disk_free_space returns a bad result on filesystems with negative free space
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-143617@lists.php.net to get a copy of this message
ID: 40633 Comment by: perryc at gmail dot com Reported By: adam-phpbugs at adam dot gs Status: Suspended Bug Type: Filesystem function related Operating System: FreeBSD PHP Version: 5.2.1 Assigned To: tony2001 New Comment: Remarkably on a completely different machine, version of FreeBSD, available disk space, etc I get the same return value from disk_free_space() (albeit with slightly better precision): Oct 15 2009 21:21:51 disk_free_space(): 3.7778931862952E+22 The reporter's remarks about negative free space are correct. Previous Comments: ------------------------------------------------------------------------ [2007-04-26 23:18:13] adam-phpbugs at adam dot gs For some reason I didn't get any notification of stas's message. this is FreeBSD 6.2-STABLE <pre> struct statvfs { fsblkcnt_t f_bavail; /* Number of blocks */ fsblkcnt_t f_bfree; fsblkcnt_t f_blocks; fsfilcnt_t f_favail; /* Number of files (e.g., inodes) */ fsfilcnt_t f_ffree; fsfilcnt_t f_files; unsigned long f_bsize; /* Size of blocks counted above */ unsigned long f_flag; unsigned long f_frsize; /* Size of fragments */ unsigned long f_fsid; /* Not meaningful */ unsigned long f_namemax; /* Same as pathconf(_PC_NAME_MAX) */ };</pre> http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/sys/statvfs.h for cvs/changelog (make sure your looking at 6.2-RELEASE) branch, there may be differences. ------------------------------------------------------------------------ [2007-04-10 20:58:25] stas@php.net Funny thing is that PHP doesn't use any unsigned numbers on the way - it translates it directly from system call int64 to double. I guess version of the system and header file defining struct statvfs would be useful. ------------------------------------------------------------------------ [2007-02-26 15:44:08] tony2001@php.net Please provide an SSH account on a machine where I can reproduce it. ------------------------------------------------------------------------ [2007-02-26 13:33:03] adam-phpbugs at adam dot gs changing OS to FreeBSD ------------------------------------------------------------------------ [2007-02-26 13:32:36] adam-phpbugs at adam dot gs This was FreeBSD if you look at the FreeBSD manpage for tunefs(8), this is the intended behaviour. http://www.freebsd.org/cgi/man.cgi? query=tunefs&apropos=0&sektion=0&manpath=FreeBSD+6.2- RELEASE&format=html Basically, in FreeBSD (under UFS2 at least) avaliable space is calculated as total minus used minus reserved. A small % (8 by default) is reserved. So, this is not really a bug, but actually an intended feature. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/40633 -- Edit this bug report at http://bugs.php.net/?id=40633&edit=1

« previous php.bugs (#143617) next »