ID: 48099
Comment by: offset at galvanet dot com
Reported By: offset at galvanet dot com
Status: Feedback
Bug Type: Filesystem function related
Operating System: Linux
PHP Version: 5.2.9
New Comment:
It's working with LFS support.
Stat is exactly the same :
stat64("/home/files/3/4/0/340db92364af5c0616187f6e1db86ed7",
{st_mode=S_IFREG|0444, st_size=9888768, ...}) = 0
But after the size is writen correctly :
write(1, "9888768", 79888768) = 7
(Working on a 32bit system)
Thanks
Previous Comments:
------------------------------------------------------------------------
[2009-04-28 18:57:09] [email protected]
As I don't have any NFS mounted stuff available anywhere, can you try
this:
# CFLAGS=`getconf LFS_CFLAGS` ./config.nice
# make clean && make
And then try that script of yours.
------------------------------------------------------------------------
[2009-04-28 18:14:00] [email protected]
This might be related to ug #45040 (And LFS support in general..)
------------------------------------------------------------------------
[2009-04-28 14:50:36] offset at galvanet dot com
Strace on php execution return that :
stat64("/home/files/3/4/0/340db92364af5c0616187f6e1db86ed7",
{st_mode=S_IFREG|0444, st_size=9888768, ...}) = 0
write(2, "PHP Warning: filesize(): stat f"..., 139PHP Warning:
filesize(): stat failed for
/home/files/3/4/0/340db92364af5c0616187f6e1db86ed7 in /root/test.php on
line 3
------------------------------------------------------------------------
[2009-04-28 13:23:26] offset at galvanet dot com
Description:
------------
is_file and filesize not working on a NFS mount.
These files are readable and writable for user (Using PHP CLI).
is_file and filesize working for local files. Not for NFS mounts.
By the way, file_exist is working.
The code is working under PHP 5.2.3 (cli). And not under PHP 5.2.9
(cli)
Reproduce code:
---------------
echo "Full path : $SourceFile\n";
if (!chmod($SourceFile, 0777)) {
echo "Unable to Chmod file\n";
}
clearstatcache();
if (!file_exists($SourceFile)) {
echo "Source file not found\n";
}
$FileSize = filesize($SourceFile);
if (!$FileSize) {
echo "Source file empty !\n";
}
Expected result:
----------------
Full path : /home/files/3/4/0/340db92364af5c0616187f6e1db86ed7
.. and continue the script
Actual result:
--------------
Full path : /home/files/3/4/0/340db92364af5c0616187f6e1db86ed7
Source file empty !
# ls -lah /home/files/3/4/0/340db92364af5c0616187f6e1db86ed7
-rwxrwxrwx 1 nobody nobody 9.5M Apr 26 12:00
/home/files/3/4/0/340db92364af5c0616187f6e1db86ed7
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=48099&edit=1