#48099 [NEW]: stat failed on a readable / writable file
From: offset at galvanet dot com Operating system: Linux PHP version: 5.2.9 PHP Bug Type: Filesystem function related Bug description: stat failed on a readable / writable file 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 bug report at http://bugs.php.net/?id=48099edit=1 -- Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=48099r=trysnapshot52 Try a CVS snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=48099r=trysnapshot53 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=48099r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=48099r=fixedcvs Fixed in CVS and need be documented: http://bugs.php.net/fix.php?id=48099r=needdocs Fixed in release: http://bugs.php.net/fix.php?id=48099r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=48099r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=48099r=needscript Try newer version: http://bugs.php.net/fix.php?id=48099r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=48099r=support Expected behavior: http://bugs.php.net/fix.php?id=48099r=notwrong Not enough info: http://bugs.php.net/fix.php?id=48099r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=48099r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=48099r=globals PHP 4 support discontinued: http://bugs.php.net/fix.php?id=48099r=php4 Daylight Savings:http://bugs.php.net/fix.php?id=48099r=dst IIS Stability: http://bugs.php.net/fix.php?id=48099r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=48099r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=48099r=float No Zend Extensions: http://bugs.php.net/fix.php?id=48099r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=48099r=mysqlcfg
#48099 [Opn]: stat failed on a readable / writable file
ID: 48099 User updated by: offset at galvanet dot com Reported By: offset at galvanet dot com Status: Open Bug Type: Filesystem function related Operating System: Linux PHP Version: 5.2.9 New Comment: 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 Previous Comments: [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=48099edit=1
#48099 [Com]: stat failed on a readable / writable file in NFS mount
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] j...@php.net 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] j...@php.net 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=48099edit=1