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

Java Discussion :

Détecter un deadlock


Sujet :

Java

  1. #1
    Membre éclairé Avatar de Julien Bodin
    Homme Profil pro
    Devops
    Inscrit en
    Février 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Devops
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 474
    Points : 843
    Points
    843
    Par défaut Détecter un deadlock
    Bonjour à tous !

    Les utilisateurs de mon application me rapporte parfois des blocages de l'application. Certains d'entre eux sont relatifs à une saturation du processeur par le GC à cause de certains memory leaks, et d'autres sont liés à des deadlocks avec l'EDT.

    Ce sont deux choses assez difficiles à détecter (même si pour les memory leaks il existe de bons profilers) d'autant que pour le cas des deadlocks il est très difficile de reproduire le cas. Ca se produit des fois, pas tout le temps (voire pas souvent).

    Est-ce que d'après vous il serait possible de coder un petit quelque chose qui, pendant le runtime, serait capable de détecter un deadlock et d'enregistrer dans un fichier des informations relatifs à celui-ci tels qu'une stacktrace de tous les threads en cours ou ce genre de chose ?

    Merci d'avance pour vos réponses

  2. #2
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Lorsqu'un deadlock se produit, tu dois inspecter les stacktraces des threads existants.

    Tu peux le faire, par exemple, en lançant en mode debug sur ton EDI préféré ou bien la demander à la JVM via un kill -3 de ton process si tu es sous linux.

  3. #3
    Membre éclairé Avatar de Julien Bodin
    Homme Profil pro
    Devops
    Inscrit en
    Février 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Devops
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 474
    Points : 843
    Points
    843
    Par défaut
    Citation Envoyé par Deaf Voir le message
    Lorsqu'un deadlock se produit, tu dois inspecter les stacktraces des threads existants.

    Tu peux le faire, par exemple, en lançant en mode debug sur ton EDI préféré ou bien la demander à la JVM via un kill -3 de ton process si tu es sous linux.
    En fait je souhaite que l'application elle-même soit capable d'en détecter et d'enregistrer les stacktraces dans un fichier car l'application est installée sur le poste des utilisateurs et je n'ai pas forcément de débuggueur/profiler sur chacun des postes, et je ne suis pas toujours présent lorsque celà se produit.

    Avec des fichiers ce serait plus facile je n'aurais qu'à les récupérer tous et les analyser en temps voulu.

  4. #4
    Membre éprouvé
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Points : 1 078
    Points
    1 078
    Par défaut
    Le kill -3 t'envoie les infos sur la sortie standard du process, tu n'as qu'à la rediriger vers un fichier et l'analyser.

    C'est comme cela que l'on fait avec nos clients. En général, ils sont capables de lancer cette commande et d'envoyer le résultat.

    A ma connaissance, ce n'est pas évident de détecter un Deadlock dynamiquement...

Discussions similaires

  1. Détecter Windows 2000 Professionnel
    Par FW-S dans le forum Delphi
    Réponses: 9
    Dernier message: 03/11/2006, 23h02
  2. Détecter la validité d'un handle
    Par ovh dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/08/2003, 12h57
  3. Détecter l'appui sur la touche de fonction F2
    Par titiyo dans le forum Composants VCL
    Réponses: 6
    Dernier message: 18/06/2003, 11h07
  4. Détecter l'arrêt du système ?
    Par Jéremy A dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 24/03/2003, 19h06
  5. Réponses: 2
    Dernier message: 12/02/2003, 15h26

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