IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Crash script perl


Sujet :

Langage Perl

  1. #1
    Membre habitué Avatar de crochepatte
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2005
    Messages : 206
    Points : 145
    Points
    145
    Par défaut Crash script perl
    Bonjour,

    Voila, j'ai un gros probleme: j'ai un script perl plutot long (8-24h) qui s'execute se crash parfois. Pour une meme execution, avec les memes parametres, il plante parfois...Le probleme c'est que je ne vois vraiment pas l'erreur. A priori, une erreur du code n'est pas possible puisque ce script fonctionne parfois...

    Quelques infos qui peuvent etre utiles...
    Je suis sous MAC OS X. Ce script est lancé via un CGI...et tourne indepedemment de tout navigateur et serveur web...

    J'ai inspecter tout d'abord le fichier log des erreurs system du terminal

    Apr 23 19:27:57 BioInfo-Server crashdump[13490]: perl crashed
    Apr 23 19:27:57 BioInfo-Server crashdump[13490]: crash report written to: /Library/Logs/CrashReporter/perl.crash.log
    Voila donc le fichier log des "crash" de perl...
    Je n'y comprend pas grand chose...

    Quelqu'un parle t'il le log???

    **********

    Host Name: BioInfo-Server
    Date/Time: 2007-04-23 19:27:56.364 +0200
    OS Version: 10.4.8 (Build 8L2127)
    Report Version: 4

    Command: perl
    Path: /usr/bin/perl
    Parent: launchd [1]

    Version: ??? (???)

    PID: 12504
    Thread: 0

    Exception: EXC_BAD_ACCESS (0x0001)
    Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x00000000

    Thread 0 Crashed:
    0 libperl.dylib 0x967734cc Perl_Gv_AMupdate + 379
    1 libperl.dylib 0x967e5b0c Perl_sv_bless + 256
    2 libperl.dylib 0x96800e5e Perl_pp_bless + 218
    3 libperl.dylib 0x967d9277 Perl_runops_standard + 19
    4 libperl.dylib 0x9676c5d8 perl_run + 724
    5 perl 0x000020d2 0x1000 + 4306
    6 perl 0x00001f92 0x1000 + 3986
    7 perl 0x00001eb9 0x1000 + 3769

    Thread 0 crashed with X86 Thread State (32-bit):
    eax: 0x00000000 ebx: 0x96773362 ecx: 0xffffffff edx: 0x00000000
    edi: 0x00000000 esi: 0x00000000 ebp: 0xbffff2e8 esp: 0xbffff110
    ss: 0x0000001f efl: 0x00010246 eip: 0x967734cc cs: 0x00000017
    ds: 0x0000001f es: 0x0000001f fs: 0x00000000 gs: 0x00000037

    Thread 0 Crashed:
    0 libperl.dylib 0x967734cc Perl_Gv_AMupdate + 379
    1 libperl.dylib 0x967e5b0c Perl_sv_bless + 256
    2 libperl.dylib 0x96800e5e Perl_pp_bless + 218
    3 libperl.dylib 0x967d9277 Perl_runops_standard + 19
    4 libperl.dylib 0x9676c5d8 perl_run + 724
    5 perl 0x000020d2 0x1000 + 4306
    6 perl 0x00001f92 0x1000 + 3986
    7 perl 0x00001eb9 0x1000 + 3769

    Thread 0 crashed with X86 Thread State (32-bit):
    eax: 0x00000000 ebx: 0x96773362 ecx: 0xffffffff edx: 0x00000000
    edi: 0x00000000 esi: 0x00000000 ebp: 0xbffff2e8 esp: 0xbffff110
    ss: 0x0000001f efl: 0x00010246 eip: 0x967734cc cs: 0x00000017
    ds: 0x0000001f es: 0x0000001f fs: 0x00000000 gs: 0x00000037

    Binary Images Description:
    0x1000 - 0x2fff perl /usr/bin/perl
    0x11000 - 0x13fff IO.bundle /System/Library/Perl/5.8.6/darwin-thread-multi-2level/auto/IO/IO.bundle
    0x1e000 - 0x38fff POSIX.bundle /System/Library/Perl/5.8.6/darwin-thread-multi-2level/auto/POSIX/POSIX.bundle
    0x3e000 - 0x40fff Fcntl.bundle /System/Library/Perl/5.8.6/darwin-thread-multi-2level/auto/Fcntl/Fcntl.bundle
    0x4c000 - 0x4efff MD5.bundle /System/Library/Perl/5.8.6/darwin-thread-multi-2level/auto/Digest/MD5/MD5.bundle
    0x52000 - 0x55fff Opcode.bundle /System/Library/Perl/5.8.6/darwin-thread-multi-2level/auto/Opcode/Opcode.bundle
    0x59000 - 0x5efff Dumper.bundle /System/Library/Perl/5.8.6/darwin-thread-multi-2level/auto/Data/Dumper/Dumper.bundle
    0x8fe00000 - 0x8fe49fff dyld 46.9 /usr/lib/dyld
    0x90000000 - 0x9016ffff libSystem.B.dylib /usr/lib/libSystem.B.dylib
    0x901bf000 - 0x901c1fff libmathCommon.A.dylib /usr/lib/system/libmathCommon.A.dylib
    0x90bce000 - 0x90bd5fff libgcc_s.1.dylib /usr/lib/libgcc_s.1.dylib
    0x96765000 - 0x96879fff libperl.dylib /System/Library/Perl/5.8.6/darwin-thread-multi-2level/CORE/libperl.dylib
    Merci pour votre aide...

  2. #2
    Membre éprouvé Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    Est-ce que l'erreur ne viendrait pas du fait que ton script atteint les limites des ressources mémoire dispo (RAM + SWAP) pendant une longue période ?

    Essaie de libérer chaque variable inutilisée au fur et à mesure (avec des undef pour les variables scalaires, et des delete pour les clés des hashmaps), ca pourra peut-être aider à éviter les prochains crash.

    Le problème est qu'il est difficile de tester si cela améliorera les choses, vu que tu dis que le script tourne sur plusieurs heures et qu'il plante aléatoirement.

    Question : pourquoi le script est-il si long ? N'y a-t-il pas moyen de découper l'execution en plusieurs parties, ne serait-ce que pour éviter de perdre toutes les données des 24 dernières heures en cas de plantage ?

    Je ne répond à aucune question technique par MP.

    Si votre problème est réglé, n'oubliez pas Dans tous les cas

  3. #3
    Membre habitué Avatar de crochepatte
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2005
    Messages : 206
    Points : 145
    Points
    145
    Par défaut
    En fait, ce script est un logiciel de bioinformatique...Il est long parce que ce que le logiciel fait est tres long (pour information, beaucoup de blasts).
    Pour ce qui est de decouper l'execution en plusieurs parties, c'est une bonne idée, mais j'aimerais mieux avoir une execution qui fonctionne,

    Ce qui me parait bizarre, c'est que l'echec de l'execution n'est pas quelque chose de reproductible... Avec les memes parametres, l'execution peut ou ne peut pas fonctionner...
    De plus l'erreur ne semble pas etre aléatoire dans le deroulement du programme, il semble qu'elle se situe à un endroit particulier de l'execution (à la jonction entre la fin des blasts et le debut de l'analyse des blasts)...

    J'ai trouvé pas mal de forum sur le net ou il parlait du meme probleme, mais aucune solution n'a été apporté...

  4. #4
    Membre éprouvé Avatar de MarneusCalgarXP
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 911
    Points : 1 118
    Points
    1 118
    Par défaut
    Disposes-tu d'une machine UNIX non Mac ? ce qui serait interressant, ce serait de tester le programme en parallèle sur 2 machines pour voir si les 2 plantent au même endroit ou pas (bien que ce ne soit pas très reproductible comme tu dis), de sorte à voir s'il s'agit d'un bug dans le code de perl ou uniquement dans le binaire qui a du mal à tourner sur mac (même si c'est un x86)

    Je ne répond à aucune question technique par MP.

    Si votre problème est réglé, n'oubliez pas Dans tous les cas

  5. #5
    Membre habitué Avatar de crochepatte
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    206
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2005
    Messages : 206
    Points : 145
    Points
    145
    Par défaut
    Non, je ne dispose pas d'autre machine aussi performante que mon MAC...
    En tout cas merci pour ton aide...je pense pas que je puisse resoudre ce probleme... A priori, il arrive pas si souvent que cela...Donc je ferai avec....

Discussions similaires

  1. Réponses: 7
    Dernier message: 08/07/2004, 14h47
  2. [langage] Script Perl Aide
    Par julfra dans le forum Langage
    Réponses: 7
    Dernier message: 17/05/2004, 09h55
  3. [langage] script perl cmd system
    Par kacedda dans le forum Langage
    Réponses: 4
    Dernier message: 02/05/2003, 09h45
  4. [langage] awk et sed dans script perl
    Par scoti dans le forum Langage
    Réponses: 3
    Dernier message: 07/04/2003, 18h26
  5. Réponses: 2
    Dernier message: 11/07/2002, 08h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo