ID:               39063
 Updated by:       [EMAIL PROTECTED]
 Reported By:      nherdananto at gmail dot com
-Status:           Open
+Status:           Feedback
 Bug Type:         Filesystem function related
 Operating System: FreeBSD 5.5
 PHP Version:      4.4.4
 New Comment:

Please try using this CVS snapshot:

  http://snaps.php.net/php5.2-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5.2-win32-latest.zip

(Yes. We know you reported this against 4.4, but we want 
to know if you can reproduce this under 5.2)

Running 5.2.0RC6-dev on Apache/2.0.59 worker as 
apache2handler.

[EMAIL PROTECTED] test$ uname -rs
FreeBSD 6.1-STABLE
[EMAIL PROTECTED] test$ cat test.php
<?php
$tid = isset( $_GET['tid'] ) ? $_GET['tid'] : "";

if(!file_exists($tid)) {
      echo "WRONG";
}
[EMAIL PROTECTED] test$ COUNT=1; until [ $COUNT -gt 30000 ]; 
do touch $COUNT.txt; let COUNT+=1; done
[EMAIL PROTECTED] test$ COUNT=1; until [ $COUNT -gt 344000 ]; 
do file=`/bin/ls | random -f - | head -n1`; fetch -q -o - 
http://localhost/test/test.php?tid=$file; let COUNT+=1; 
done

After ca 6hours and over 100000 requests (~5req/sec) I 
haven't been able to reproduce this...


Previous Comments:
------------------------------------------------------------------------

[2006-10-06 14:58:45] nherdananto at gmail dot com

im running apache 2.0.59
and yes, threaded, limited to 256 thread.

------------------------------------------------------------------------

[2006-10-06 14:40:19] [EMAIL PROTECTED]

What kind of server API are you using and is it threaded or not?

------------------------------------------------------------------------

[2006-10-06 14:20:36] nherdananto at gmail dot com

sorry, wrong code. here's the code

$tid = isset( $_GET['tid'] ) ? $_GET['tid'] : "";

$file = "/data/".$tid.".txt";
if(file_exists($file)) {
      echo "1";
} else {
      echo "0";
}

------------------------------------------------------------------------

[2006-10-06 14:18:50] nherdananto at gmail dot com

Description:
------------
is_file() or file_exists() returning false on existing file.
the script is executed about 8x per second and checking a file in a
directory filled with 5000 to 30000 files.
for 344000 execution, it fails about 2000 times.
no change on php.ini

Reproduce code:
---------------
$tid = isset( $_GET['tid'] ) ? $_GET['tid'] : "";

$file = "/data/".$tid.".txt";
if(file_exists()) {
      echo "1";
} else {
      echo "0";
}

Expected result:
----------------
for 344000 execution, it should producing 1 for 344000 times.

Actual result:
--------------
less than 344000 times of 1 echoed.


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=39063&edit=1

Reply via email to