著者: Jean-Marc Coursimault 日付: To: guilde 題目: Fichier immortel
Hello folks,
Je me suis pris la tête des heures hier soir sur le pb suivant :
J'utilise un fichier php inclus dans un autre. Le tout est géré par Spip,
gestionnaire de sites Web, qui possède un gestionnaire de cache : il
calcule les pages à afficher et les conserve dans son cache.
Donc, je modifie mon fichier inclus, je vide le cache de SPIP, je lui
demande de recalculer la page... et j'ai l'ancienne version. Quel que soit
le navigateur ou l'endroit (distant ou local) où je la demande.
Je cherche sur tout le disque où peut bien être l'ancienne version (avec
find, grep...) : que dalle. Elle n'est simplement plus là.
Au bout de deux heures (la durée standard du cache de SPIP) j'ai la
nouvelle version.
Je suppose donc que le fichier initial est conservé par un processus qui
tourne : si j'ai bien compris, si un process Unix a ouvert un fichier, et
que qqn le modifie, le pgm continue de voir l'ancienne version. Ou qqchose
comme ça.
Comment voir quel +@$*^ù de process a ouvert mon fichier ?
Je ne vois rien avec lsof .
Si au passage qqn sait comment assassiner ce cache bidon (il est bidon par
d'autres côtés encore), je suis preneur.
(j'ai essayé de diminuer sa durée à 1 seconde : pas l'air de marcher).