none
APPCRASH clr.dll Code de l’exception: c0000005 RRS feed

  • Question

  • Bonjour,

    J'ai une application cliente en .NET tournant sur un serveur TSE Windows 2008 R2 qui plante 3 fois par jour sur certains profils utilisateurs.

    Quand l'application plante j'ai un message Windows "Prima1Supervision a cessé de fonctionner Windows peut rechercher une solution au problème en ligne....."

    Détail du problème :

    Signature du problème :

      Nom d’événement de problème:         APPCRASH

      Nom de l’application:  Prima1Supervision.exe

      Version de l’application:            5.4.0.90

      Horodatage de l’application:    51de6084

      Nom du module par défaut:    clr.dll

      Version du module par défaut:              4.0.30319.2012

      Horodateur du module par défaut:      517a1d2f

      Code de l’exception:   c0000005

      Décalage de l’exception:           00000000001fe997

      Version du système:   6.1.7601.2.1.0.16.7

      Identificateur de paramètres régionaux:           1036

      Information supplémentaire n° 1:         d9fc

      Information supplémentaire n° 2:         d9fcb0c93c114d897618bcba9e0db784

      Information supplémentaire n° 3:         f0e3

      Information supplémentaire n° 4:         f0e3aea4d00929e8ec1a8dcd891df0f6

    Dans le journal des évènements j'ai deux évènements :

    • .Net Runtime ID 1023

    Application : Prima1Supervision.exe

    Version du Framework : v4.0.30319

    Description : le processus a été arrêté en raison d'une erreur interne dans le runtime .NET à l'adresse IP 000007FEF4BAE997 (000007FEF49B0000) avec le code de sortie 80131506.

    • Application Error

    Nom de l’application défaillante Prima1Supervision.exe, version : 5.4.0.90, horodatage : 0x51de6084

    Nom du module défaillant : clr.dll, version : 4.0.30319.2012, horodatage : 0x517a1d2f

    Code d’exception : 0xc0000005

    Décalage d’erreur : 0x00000000001fe997

    ID du processus défaillant : 0x11bc

    Heure de début de l’application défaillante : 0x01cea2ffc9b18b18

    Chemin d’accès de l’application défaillante : C:\Users\prima77\AppData\Local\Apps\2.0\5HH8NPTQ.KCY\BR6342K4.96V\prim..tion_9f355e496e038364_0005.0004_06e37e780ae30e1a\Prima1Supervision.exe

    Chemin d’accès du module défaillant: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll

    ID de rapport : 9b09336b-0ef6-11e3-812e-00505682369e

    Sur la machine la clr.dll est en version 4.0.30319.2012. J'ai trouvé les KB suivants :

    • KB2640103 mais celui-ci met à jour la clr.dll en version 4.0.30319.526
    • KB982638 mais celui-ci met à jour la clr.dll en version 4.0.30319.315
    • KB2533523 sans information sur les versions des dll

    Ci-dessous la liste des mises à jour installées sur le Framework de la machine :

    Les KB que je trouve sont soit déjà installés soit font référence à une version clr.dll antérieur à celle déjà présente.

    Merci de votre aide...

    • Type modifié Aurel Bera lundi 2 septembre 2013 07:21 Discussion
    • Type modifié Atmeitsatme jeudi 12 septembre 2013 06:40 Réponse trouvée
    mardi 27 août 2013 13:37

Réponses

  • Finalement j'ai trouvé le rapport d'erreur Windows correspondant au plantage avec le fichier hdmp lié :

    Résumé du dump

    --------------

    Fichier dump: WERB875.tmp.hdmp : \\camino\C$\Users\prima77\AppData\Local\Microsoft\Windows\WER\ReportQueue\AppCrash_Prima1Supervisio_51c24ec1878e29873eb5eb56eb6163281cdb1c59_cab_d5f609ef\WERB875.tmp.hdmp

    Dernier temps d'écriture: 27/08/2013 11:05:05

    Nom du processus: Prima1Supervision.exe : C:\Users\prima77\AppData\Local\Apps\2.0\5HH8NPTQ.KCY\BR6342K4.96V\prim..tion_9f355e496e038364_0005.0004_06e37e780ae30e1a\Prima1Supervision.exe

    Architecture du processus: x64

    Code d'exception: 0xC0000005

    Informations sur l'exception: Le thread a tenté de lire à partir d'une adresse virtuelle ou d'écrire vers une adresse virtuelle pour laquelle il ne dispose pas d'un accès appropriés.

    Informations sur le tas: Présent

    En exécutant le débogage à partir du dump j'ai retrouvé dans la pile des appels, la méthode dans clr.dll qui provoque l'erreur :

    > clr.dll!WKS::gc_heap::mark_through_cards_for_segments()  + 0x237 octets

    Et l'exception : "Une exception non gérée du type 'System.ExecutionEngineException' s'est produite dans mscorlib.dll"

    J'ai trouvé l'explication de cette erreur dans le KB2679415, dans lequel il préconise de désactiver l'option "Concurrent Garbage Collection".

    Je vais essayer cette solution...

    Bonjour à tous,

    La solution du KB2679415 était la bonne, pour désactiver le "Concurrent Garbage Collection" il faut ajouter l'élément <gcConcurrent> dans le fichier de configuration :

    <configuration>
       <runtime>
           <gcConcurrent enabled="false"/>
       </runtime>
    </configuration>

    Cordialement,

    • Marqué comme réponse Atmeitsatme jeudi 12 septembre 2013 06:40
    jeudi 12 septembre 2013 06:39

Toutes les réponses

  • Bonjour,

    Difficile de trouver l'origine de ce problème...
    J'ai déjà eu plusieurs fois ce genre de problème chez diverses clients et après analyse ces problèmes étaient le suivant :

    • Mauvaise gestion des exceptions (catch d'une exception qui provoque la levée d'un autre exception).
    • Appel à une DLL native (ce problème apparait surtout lorsque l'on migre une application du 32 au 64-bit).
    • Plantage d'un thread

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    mardi 27 août 2013 23:22
    Modérateur
  • Bonjour Gilles,

    L'application en question est compilée en Any CPU et est utilisée principalement sur des serveurs TSE Windows 2003 en x32 et Windows 2008 en x64.

    La gestion des exceptions est relativement complète avec un système de traces, pourtant aucune trace d'erreur lors des plantages. Le bug est difficilement reproductible en test mais sur 2 profils en prod il survient 2 ou 3 fois par jour.

    Existe-t-il un moyen d'obtenir plus d'information lors d'un plantage de ce genre ?

    Cordialement,

    mercredi 28 août 2013 06:33
  • Finalement j'ai trouvé le rapport d'erreur Windows correspondant au plantage avec le fichier hdmp lié :

    Résumé du dump

    --------------

    Fichier dump: WERB875.tmp.hdmp : \\camino\C$\Users\prima77\AppData\Local\Microsoft\Windows\WER\ReportQueue\AppCrash_Prima1Supervisio_51c24ec1878e29873eb5eb56eb6163281cdb1c59_cab_d5f609ef\WERB875.tmp.hdmp

    Dernier temps d'écriture: 27/08/2013 11:05:05

    Nom du processus: Prima1Supervision.exe : C:\Users\prima77\AppData\Local\Apps\2.0\5HH8NPTQ.KCY\BR6342K4.96V\prim..tion_9f355e496e038364_0005.0004_06e37e780ae30e1a\Prima1Supervision.exe

    Architecture du processus: x64

    Code d'exception: 0xC0000005

    Informations sur l'exception: Le thread a tenté de lire à partir d'une adresse virtuelle ou d'écrire vers une adresse virtuelle pour laquelle il ne dispose pas d'un accès appropriés.

    Informations sur le tas: Présent

    En exécutant le débogage à partir du dump j'ai retrouvé dans la pile des appels, la méthode dans clr.dll qui provoque l'erreur :

    > clr.dll!WKS::gc_heap::mark_through_cards_for_segments()  + 0x237 octets

    Et l'exception : "Une exception non gérée du type 'System.ExecutionEngineException' s'est produite dans mscorlib.dll"

    J'ai trouvé l'explication de cette erreur dans le KB2679415, dans lequel il préconise de désactiver l'option "Concurrent Garbage Collection".

    Je vais essayer cette solution...

    mercredi 28 août 2013 13:18
  • Bonjour

    Avez-vous des nouvelles pour nous?

    Merci!

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 29 août 2013 09:16
  • Bonjour,

    J'ai mis une nouvelle version en production ce matin, pour l'instant ras, mais comme le plantage survient aléatoirement je vais attendre quelque jour avant de tirer des conclusions.

    Cordialement,

    jeudi 29 août 2013 09:30
  • Finalement j'ai trouvé le rapport d'erreur Windows correspondant au plantage avec le fichier hdmp lié :

    Résumé du dump

    --------------

    Fichier dump: WERB875.tmp.hdmp : \\camino\C$\Users\prima77\AppData\Local\Microsoft\Windows\WER\ReportQueue\AppCrash_Prima1Supervisio_51c24ec1878e29873eb5eb56eb6163281cdb1c59_cab_d5f609ef\WERB875.tmp.hdmp

    Dernier temps d'écriture: 27/08/2013 11:05:05

    Nom du processus: Prima1Supervision.exe : C:\Users\prima77\AppData\Local\Apps\2.0\5HH8NPTQ.KCY\BR6342K4.96V\prim..tion_9f355e496e038364_0005.0004_06e37e780ae30e1a\Prima1Supervision.exe

    Architecture du processus: x64

    Code d'exception: 0xC0000005

    Informations sur l'exception: Le thread a tenté de lire à partir d'une adresse virtuelle ou d'écrire vers une adresse virtuelle pour laquelle il ne dispose pas d'un accès appropriés.

    Informations sur le tas: Présent

    En exécutant le débogage à partir du dump j'ai retrouvé dans la pile des appels, la méthode dans clr.dll qui provoque l'erreur :

    > clr.dll!WKS::gc_heap::mark_through_cards_for_segments()  + 0x237 octets

    Et l'exception : "Une exception non gérée du type 'System.ExecutionEngineException' s'est produite dans mscorlib.dll"

    J'ai trouvé l'explication de cette erreur dans le KB2679415, dans lequel il préconise de désactiver l'option "Concurrent Garbage Collection".

    Je vais essayer cette solution...

    Bonjour à tous,

    La solution du KB2679415 était la bonne, pour désactiver le "Concurrent Garbage Collection" il faut ajouter l'élément <gcConcurrent> dans le fichier de configuration :

    <configuration>
       <runtime>
           <gcConcurrent enabled="false"/>
       </runtime>
    </configuration>

    Cordialement,

    • Marqué comme réponse Atmeitsatme jeudi 12 septembre 2013 06:40
    jeudi 12 septembre 2013 06:39
  • Merci de votre retour.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.

    jeudi 12 septembre 2013 06:54