Depuis quelques jours j'ai un pépin avec un modèle pour afficher des photos avec une pagination. Pendant un certain temps (le temps du cache ?) les liens de pagination sont corrects, c.à.dire :
Une recalculation du cache (?var_mode=calcul) répare le lien. J'ai recalculé l'anglais et français il y a un moment, mais la page allemand montre encore l'erreur : http://www.taize.fr/en_article2785.html?lang=de
J'ai fait deux mises à jour récemment :
- le passage de SPIP 2.0.10 à SPIP 2.1
- l'installation de Cache Cool (et Job Queue)
J'ai vu qu'il y a eu des commits à propos de Job Queue cet après-midi, et j'ai fait une mise à jour pour tester.
Mais tout à l'heure je vois que les langues sur les pages d'accueil commence à se mélanger : sur la page anglais il y avait de l'anglais et du tchèque, sur la page français, du danois et non seulement du français.
Pour l'instant je désactive Job Queue et Cache Cool, en remettant le cache à vide, pour voir si le problème réapparaît.
En principe le commit de cet après midi ne peut pas avoir provoqué ce bug, mais peut être révèle-t-il plus rapidement un bug dans cache_cool qui existait déjà avant.
Bon ; je réactive Cache Cool pour voir si des ennuis reviennent. La difficulté avec un prob. sur le cache c'est que c'est difficile de faire des essais sur un site test.
10 mins. plus tard :
Eh bien ... ouch ! Sur une page article en anglais ou il y a des <:toto:> ils apparaissent maintenant en Tamoul (je ne suis pas connecté lors que je vois cela.)
Je me connecte, pour faire un ?var_mode=calcul et l'ordre revient -- au lieu de « தலைப்பு » j'ai maintenant « Title ».
Seulement, je ne sais toujours pas si cela est dû à Cache Cool ou non.
Il faut garder job_queue actif, mais pas cache_cool, et attendre de voir si le problème ne se reproduit pas.
Mais je suis a peu près certain que ça vient de cache_cool :
par principe le cache n'est pas calculé au moment ou le visiteur le demande, mais après, en tache cron.
Et si jamais aucune langue n'est passée au squelette, c'est la langue globale qui est utilisée, qui peut se trouver ne pas être la même au moment du cron qu'au moment de la visite.
Je pense qu'il faut que je sauvegarde certaines globales du contexte comme la langue ou le host (peut etre l'url de la page).
Après la nuit avec juste Job Queue actif (cache_cool désactivé), je ne trouve pas d'erreur sur le site. (En fait notre site est assez actif la nuit, car il reçoit pas mal de visites d'autres continents.)
Oui, ça devrait être beaucoup mieux.
Je sais pas si tu as pris toutes les dernières modif dessus, car j'ai du m'y reprendre à plusieurs fois pour traquer les bugs indirects. Si tu n'as pas la dernière version, met à jour.
Il me reste 2 points à vérifier :
- les sites mutli-domaines : jusqu'ici cache-cool ne tournait que sur le domaine principal, maintenant ça devrait être bon. C'est en test sur contrib qui sert aussi file.spip.org
- les sessions utilisateurs : jusqu'ici cache-cool ne tourne pas sur les cache sessionnés. Il semble qu'on peut améliorer cela, mais il faut que je teste. Et ce sera sans doute une option activable, car si un cache sessionné dépend fortement de l'utilisateur, ça n'a pas de sens de le mettre à jour après lui avoir affiché, car il est le seul à voir cette page.
Oui, ça devrait être beaucoup mieux. Je sais pas si tu as pris toutes les
dernières modif dessus,
Ah mais si -- r36902 : dès qu'il y a un commit sur la zone, il y a des cloches qui sonnent et lampent qui clignotent ici
Il me reste 2 points à vérifier : - les sites mutli-domaines : jusqu'ici
cache-cool ne tournait que sur le domaine principal, maintenant ça devrait
être bon. C'est en test sur contrib qui sert aussi file.spip.org
Hmm, est-il envisageable de mettre tout le dossier /IMG sur un autre domaine --par ex. en surchargeant define('_NOM_PERMANENTS_ACCESSIBLES', "IMG/") ?
J'ai un domaine qui utilise lighttpd -- ce serait peut-être bien de mettre les images là dessus ?
les sessions utilisateurs : jusqu'ici cache-cool ne tourne pas sur les cache
sessionnés. Il semble qu'on peut améliorer cela, mais il faut que je teste.
Faire marcher aussi pour les auteurs/admins connectés donc ? Cela serait en effet ... cool !
Oui, ça devrait être beaucoup mieux. Je sais pas si tu as pris toutes les
dernières modif dessus,
Ah mais si -- r36902 : dès qu'il y a un commit sur la zone, il y a des cloches qui sonnent et lampent qui clignotent ici
Il me reste 2 points à vérifier : - les sites mutli-domaines : jusqu'ici
cache-cool ne tournait que sur le domaine principal, maintenant ça devrait
être bon. C'est en test sur contrib qui sert aussi file.spip.org
Hmm, est-il envisageable de mettre tout le dossier /IMG sur un autre domaine --par ex. en surchargeant define('_NOM_PERMANENTS_ACCESSIBLES', "IMG/") ?
Ah ça c'est dans ma todo dans le chapitre performance, oui. Mais ce n'est pas si simple
- il faut en effet attribuer un domaine aux urls de doc, et les generer en absolu et non en relatif
- mais il faut eviter qu'un filtre image qui s'applique dessus ne fasse une requete http pour recuperer l'image au lieu d'une lecture fichier.
Je crois que fil avait suggére un simple str_replace('IMG/','http://autredomaine.org/') sur la page complète juste avant de la livrer.
Ca peut etre une option, en effet.
J'ai un domaine qui utilise lighttpd -- ce serait peut-être bien de mettre les images là dessus ?
oui, mais en dehors de cela, utiliser un domaine séparé pour les images est meilleur en terme de perf :
- cela permet potentiellemen au navigateur de lancer plus de hits en meme temps
- le navigateur n'envoie pas tous ses cookie sur le domaine des images, ce qui allège les allers retours
- cela permet d'utiliser un serveur léger et rapide type lighttpd en effet
Je crois que fil avait suggére un simple str_replace('IMG/','http://autredomaine.org/') sur la page complète juste avant de la livrer.
Ca peut etre une option, en effet.
Oui je pense que c'est le plus direct & efficace. Bon c'est un peu
plus compliqué que ce str_replace, il faut str_replace('<img
src="IMG/....) ; mais c'est l'idée
et sachant qu'il faudrait pouvoir faire idem sur local/..., et que ce n'est pas forcement des <img>
(flash swf dans un object, flv, mov, url() en style background ...)