Jump to content
Sign in to follow this  
Adrien

Comportement bizarre de file_exists() en php

Recommended Posts

Bonjour,

Avez-vous déjà rencontré des soucis relatifs à la fonction file_exists() de php ?  J'ai remarqué que j'ai souvent des alertes E_WARNING suite à l'accès à un fichier qui n'existe pas. Pourtant, un test est effectué juste avant l'opération comme ici par exemple :

if(file_exists($this->chemin)){
       unlink( $this->chemin ) ;
 }

Et je me retrouve avec  : WARNING unlink, no such file or directory... Comme si file_exists() ne disait pas la vérité à l'instant t. Bon, on pourrait aussi très bien imaginer que la présence du fichier change entre les 2 appels de fonction mais ça le fait beaucoup trop fréquemment pour être le cas.

 

 

Share this post


Link to post
Share on other sites

Bonjour, 

a quelle fréquence vous effectuez ceci sur des fichiers qui ont quelle durée de vie?
Si c'est quelque chose de rapide, il est possible que le NFS joue un rôle important dans ce problème. 
Si vous créez un fichier A et que vous essayez de le supprimé dans la seconde qui suit , depuis un autre serveur WEB il est possible que fichier ne soit pas encore présent. 
Ou bien , le fichier est supprimé sur le serveur 1 et sur le serveur 9 vous faites la vérification si le fichier existe (il existe) et juste avant de le supprimer il n'est plus présent. 
Le délai est cependant très court normalement. 

Share this post


Link to post
Share on other sites

En l’occurrence là, le problème se produit sur mon système de cache. Lorsque quelqu'un fait quelque chose, il y a suppression du fichier en cache. Ensuite, lorsqu'une autre personne consulte la ressource, je regarde si le fichier correspondant existe, si c'est le cas, je n'ai qu'à le lire, autrement, je fais mes requêtes et je stocke le résultat dans un fichier. Effectivement, ça peut venir du nfs, j'avais pas pensé à ça.

  • Like 1

Share this post


Link to post
Share on other sites

Bonjour,

Il y a peut-être une latence liée à la réplication ?

Y'a peut-être moyen de faire un : file exist avant ?

Cdlt

Bruno

Share this post


Link to post
Share on other sites

Il faut que je continue à investiguer. Le problème ne se pose (d'après mes logs) que sur 2 données particulières mises en cache, il y a donc peut-être un souci de mon côté. En attendant, j'ai caché les warning sur le site.

Share this post


Link to post
Share on other sites

Bonjour Aurélien,

Il n'y a pas un système de cache ? "réplication" n'est s'en doute pas le bon terme ! pour "alléger" l'infra ? qui pourrait causé ce comportement étrange ?

Cordialement,

Bruno

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×