Dépassement de mémoire
Camille Sauvage <[email protected]>
| Newsgroups | gmane.comp.web.spip.devel |
|---|---|
| Message-ID | <[email protected]> |
Bonjour, on s'est tapé une galère d'une journée parce que l'on
n'arrivait pas à entrer dans l'Espace Privé d'un site SPIP (mutualisé).
L'accès à la page était impossible, mais ça échouait silencieusement
avec une erreur 500. Rien dans error_log ni dans spip.log.
L'erreur ne sortait pas dans SPIP car la fonction est appelée avec un
opérateur @. En fait, c'est l'affichage d'un logo qui faisait tout
planter. L'image source du logo était beaucoup trop grosse.
Le test à la main sur l'image donne ça :
$ php -r "imagecreatefromjpeg('/tmp/arton347.jpg');"
PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to
allocate 2491 bytes) in Command line code on line 1
Le morceau de code inctiminé dans
ecrire/inc/filtres_images_lib.php est:
$srcImage = @$fonction_imagecreatefrom($image);
if (!$srcImage) {
spip_log("echec gd1/gd2");
return;
}
L'erreur ici est qu'en cas d'épuisement de la mémoire, on arrive
même pas au spip_log(), car PHP fait une erreur 500 après son échec dans
imagecreatefromjpeg().
C'est piégeux. Ne serait-il pas utile que l'erreur soit plus facile à
tracer ?
Ah oui, détail, c'est un SPIP 3.0.17
Merci d'avance pour vos réponses.
--
Camille