4 votes

Pourquoi Apache se plaint-il que CGI.pm a paniqué à la ligne 4001 à cause d'un retour de mémoire ?

D'après les journaux, cette erreur est causée par un script Perl vieux de 5 ans qui se contente de saisir les données de MySQL via une simple sélection SQL et de les afficher.

Il fonctionne sur ma machine de développement, qui est un MBP avec 8 Go de RAM et qui utilise l'Apache standard.

De temps en temps, une ou deux fois par mois, je reçois l'erreur suivante sans raison apparente :

panique : memory wrap at /System/Library/Perl/5.10.0/CGI.pm line 4001.

Apache refuse d'exécuter à nouveau le script et seul un redémarrage du système d'exploitation pourrait faire céder Apache. Le système d'exploitation indique qu'il y a plus de 3 Go de mémoire libre lorsque cela se produit, il ne s'agit donc pas d'un problème de faible mémoire. Heureusement, cela ne se produit pas sur le serveur Debian 5 de production.

Qu'est-ce qu'un emballage mémoire ? Et qu'est-ce qui le provoque ?

2voto

Mark Aufflick Points 814

J'ai également rencontré ce problème dans des circonstances légèrement différentes. PerlMonks, comme toujours, vient de me sauver probablement des jours de travail :

http://www.perlmonks.org/?node_id=823389

le problème réside dans la façon dont osx lie d'autres ressources. Un simple sommeil donnera à l'OS le temps de se fermer et de s'ouvrir. de s'ouvrir. Le redémarrage ou le redémarrage en douceur seront en conflit.

apachectl stop
sleep 2
apachectl start

1voto

Wsanders Points 11

C'est tardif mais le perl distribué par MacPorts n'a pas ce problème, si c'est une option.

0voto

GeneQ Points 2885

La réponse de mu is too short, qui a malheureusement été postée en tant que commentaire :

perldiag dit que "panic : memory wrap" signifie "Quelque chose a essayé d'allouer plus de mémoire que possible". Un peu de recherche sur Google suggère que ce n'est pas un problème de CGI.pm mais un problème occasionnel avec Perl 5.10 et OSX.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X