#34589 [Opn->Bgs]: Strange effects of file_exists() etc. caching

2005-09-21 Thread tony2001
 ID:   34589
 Updated by:   [EMAIL PROTECTED]
 Reported By:  pjf at asn dot pl
-Status:   Open
+Status:   Bogus
 Bug Type: *Directory/Filesystem functions
 Operating System: GNU
 PHP Version:  5.0.5
 New Comment:

No, I don't think so.
If you're trying to outsmart the cache jumping from/into different
directories and doing the stat() using *relative* path - this is not
PHP problem (and it can be easily solved with clearstatcache(), but
I've already told you that).


Previous Comments:


[2005-09-21 22:21:44] pjf at asn dot pl

Don't you think that the key that is used to access the 
cache should be the _full_, _absolute_ path instead of 
just the string passed to file_exists()? 
 
Current solution doesn't guarantee proper results - how do 
you know whether the code you call doesn't change into 
some other directory and stats() eg. "foo" won't interfere 
with the other piece code checking for "foo" existence in 
other directory? The only way to do such checks reliably 
is to call clearstatcache() _each_ _time_ what makes the 
cache useless. At least for me. I think it's a design 
error.



[2005-09-21 22:02:02] [EMAIL PROTECTED]

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

Use clearstatcache() to clear the cache.



[2005-09-21 21:55:45] pjf at asn dot pl

I made mistake in the code - here is the corrected  
version:  
  
touch("foobar"); 
echo file_exists("foobar") . "\n"; 
 
mkdir("foodir"); 
chdir("foodir"); 
echo file_exists("foobar") . "\n";



[2005-09-21 21:51:41] pjf at asn dot pl

Description:

I find caching of file_exists() and similar functions 
causing strange results - as presented by attached code, 
it might cause unexistent files to... "exist" :). 
 

Reproduce code:
---
[EMAIL PROTECTED] file_exists]$ ls
file_exists.php
[EMAIL PROTECTED] file_exists]$ cat file_exists.php



Expected result:

[EMAIL PROTECTED] file_exists]$ php file_exists.php 
1 
 
 

Actual result:
--
[EMAIL PROTECTED] file_exists]$ php file_exists.php 
1  
1  
  





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


#34589 [Opn->Bgs]: Strange effects of file_exists() etc. caching

2005-09-21 Thread tony2001
 ID:   34589
 Updated by:   [EMAIL PROTECTED]
 Reported By:  pjf at asn dot pl
-Status:   Open
+Status:   Bogus
 Bug Type: *Directory/Filesystem functions
 Operating System: GNU
 PHP Version:  5.0.5
 New Comment:

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

Use clearstatcache() to clear the cache.


Previous Comments:


[2005-09-21 21:55:45] pjf at asn dot pl

I made mistake in the code - here is the corrected  
version:  
  
touch("foobar"); 
echo file_exists("foobar") . "\n"; 
 
mkdir("foodir"); 
chdir("foodir"); 
echo file_exists("foobar") . "\n";



[2005-09-21 21:51:41] pjf at asn dot pl

Description:

I find caching of file_exists() and similar functions 
causing strange results - as presented by attached code, 
it might cause unexistent files to... "exist" :). 
 

Reproduce code:
---
[EMAIL PROTECTED] file_exists]$ ls
file_exists.php
[EMAIL PROTECTED] file_exists]$ cat file_exists.php



Expected result:

[EMAIL PROTECTED] file_exists]$ php file_exists.php 
1 
 
 

Actual result:
--
[EMAIL PROTECTED] file_exists]$ php file_exists.php 
1  
1  
  





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