Accéder au contenu.
Menu Sympa

fr - Re: [sympa-fr] wwsympa et Perl 5.14.2 : « segmentation fault »

Objet : Pour les administrateurs de serveurs de listes utilisant le logiciel Sympa

Archives de la liste

Chronologique Discussions  
  • From: Eric Duval <adresse@cachée>
  • To: adresse@cachée, Emmanuel Bouthenot <adresse@cachée>
  • Subject: Re: [sympa-fr] wwsympa et Perl 5.14.2 : « segmentation fault »
  • Date: Fri, 04 May 2012 09:57:56 +0200

Effectivement ça a l'air d'être un problème
lié à la version de Perl.
Tu as raison le fait d'ajouter du code modifie la pile
et de fait déplace le problème.

Je suis en cours de migration sur :

Debian Squeeze
sympa 6.1.7
(perl --version)
This is perl, v5.10.1 (*) built for x86_64-linux-
gnu-thread-multi (with 56 registered patches, see perl
-V for more detail)
Apache/2.2.16 (Debian)
mod_fcgid/2.3.6
mod_perl/2.0.4
Perl/v5.10.1

Avec cette version de perl pour le moment en phase de tests
aucun problème.

as tu la possibilité de faire un test avec cette version de perl ?

Sur quel distribution tu travailles ?
J'ai un PC de dispo, je pourrai essayer de faire un test
si rien n'y fait de ton coté.

Vers la fin de ton courrier tu parles de wwsympa.cgi, j'imagine
que tu voulais écrire wwsympa.fcgi. (c'est un détail ...)


Le 04/05/2012 01:11, Emmanuel Bouthenot a écrit :
Bonsoir,

On Thu, May 03, 2012 at 04:46:35PM +0200, Eric Duval wrote:
[...]

Quelques pistes que je testerai si j'étais dans
ta situation :

1/ Désactivation de FastCGI et tests
2/ Si 1 concluant remplacer FastCGI par FCGID et tests
3/ Si 1 non concluant augmenter le niveau
de traces de FastCGI et/ou wwsympa-wrapper.cgi ou
trouver un moyen de récupérer le coredump pour
analyse ...

Éventuellement scruter les traces de ton serveur pour voir
si le plantage ne viendrait pas d'un dysfonctionnement ailleurs
sur ton serveur (RAM, disques, ...)

J'ai investigué quelques heures sur le problème et c'est loin d'être
simple :

Mes tests se sont fait sur la page de 'mot de passe oublié' : /renewpasswd/

Quelques faits:

- ça ne plante pas si on invoque le script CGI en ligne de commande en
l'invoquant avec les variables d'environnement qui vont bien pour
simuler le : /renewpasswd/

- le pb se produit aussi bien avec FastCGI que FCGID

- le pb ne se produit pas avec modperl2 + apache-mpm-itk/sympa (mais c'est
pas une solution très satisfaisante sachant que apache-mpm-itk va
disparaître avec apache 2.4)

- En installant ou compilant les symboles de debug des paquets
concernés (perl, fastcgi, etc) et en attrapant le process dans gdb,
impossible d'avoir une backtrace concluante qui reste coincée dans le
OS_accept() de FastCGI

- la stack trace du plantage ressemble à:
- /usr/share/sympa/lib/mail.pm: reformat_message(),
$parser->parse_data($message) (MIME::Parser)
- /usr/share/perl5/MIME/Parser.pm parse_data(),
$io = IO::File->new(\$data, '<:');
- ...
- /usr/share/perl/5.14/PerlIO.pm
le code de ce module fait quelques lignes mais en ajoutant un 'use
strict' bien placé dans ce fichier, ça ne plante plus ...


En attendant, j'ai fait des essais divers et j'ai trouvé un
contournement *très* *très* moche mais qui à l'air de fonctionner et qui
consiste à ajouter ces lignes dans wwsympa.cgi


--8<----------------------------------------------
use Mail::Header;
use Mail::Address;

+## ugly workaround to fix crash while sending emails ##
+use MIME::Parser;
+my $weird_bugfix_parser = new MIME::Parser;
+$weird_bugfix_parser->output_to_core(1);
+$weird_bugfix_parser->parse_data("");
+####

my $crypt_openssl_x509_ok;
---------------------------------------------->8--


J'ai l'impression après toutes ces investigations que la stack de perl
est corrompue pour je ne sais quelle raison et ce hack remet un peu les
choses en place temporairement mais les internals de perl c'est vraiment
imbuvable :)

Voilà où j'en suis mais suis étonné qu'il n'y ai pas plus de personnes
qui soient touchés par ce bug qui semble lié à perl 5.14 ? David ?

Si certains d'entres vous font tourner sympa>= 6.1.7 avec perl 5.14
sans aucun crash de wwsympa de ce type, je serais très intéressé du
résultat de la commande : perl -V


Merci de vos réponses.

M.


--
Eric Duval
AFUL CGT Service informatique



Archives gérées par MHonArc 2.6.19+.

Haut de le page