#48099 [NEW]: stat failed on a readable / writable file

2009-04-28 Thread offset at galvanet dot com
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

2009-04-28 Thread offset at galvanet dot com
 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

2009-04-28 Thread offset at galvanet dot com
 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