Essayer de diagnostiquer certaines erreurs de Tomcat 6 et/ou JVM bizarres sur une machine Linux 64 bits:processus Tomcat écrase soudainement
OS VERSION: Red Hat Enterprise Linux Server Version 6.3 (Santiago)
SERVEUR Modèle : VMWARE VIRTUAL PLATFORM()
Je suis en train d'exécuter des tests d'application sur des machines virtuelles et de faire face à un problème étrange. Le problème survient sur certaines machines virtuelles où exactement 2 processus sont en cours d'exécution: processus serveur Tomcat Application (processus Java) et un processus de surveillance, à un point aléatoire, après quelques heures d'exécution aléatoires le message suivant peut être trouvé sur catalina.out log) de la machine virtuelle qui échoue (le problème se produit ne marche pas toujours sur la même machine):
org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1 on http-50100
INFO: Stopping service Catalina
org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8080
Après ce moment le processus Tomcat est shutted vers le bas et l'exécution échoue. Aucune sélection n'est visible sur la mémoire ou l'utilisation du processeur. Aucun message système ne peut être vu sous/var/logs.
À première étape nous soupçonnions qu'un signal externe est en train de tuer notre processus Tomcat et nous avons essayé d'utiliser le drapeau
-Xrs
pour les arguments JVM du processus, mais problème se produisait encore.Le drapeau java (
-xrs
) devrait empêcher les signaux d'exception manipulation environnement d'exécution Java telsSIGSEGV
etSIGABRT
pas aiderAvant d'ajouter
xrs
drapeau, nous avons vu une erreurINFO: Pausing Coyote HTTP/1.1 on http-50100
qui est arrivé parce que le signal de résultatAprès avoir ajouté `xrs flag the kettle/tomcat se comporte de la même manière et écrase sans aucune erreur dans les fichiers journaux.
Exécution commande starce sur le processus concerné nous donne le résultat suivant:
processus 12917 attaché - interruption de quitter futex (0x7f6b9e8ab9d0, FUTEX_WAIT, 12918, NULLPANIC: attaché pid 12917 terminé avec 143
Nous ne pouvons pas exécuter
starce -f
pour inclure tous les threads, car cela provoque le blocage de notre application Cependant, le processus de destruction du fils avec la commandekill
se comporte de la même façon - nous voyons que le parent JVM sort avec le code d'erreur 143 et nous voyons aussi le signal envoyé au processus fils.Nous sommes également en cours d'exécution avec java
-XX:+HeapDumpOnOutOfMemoryError
pour créer un vidage de tas pour jvm crash en raison d'une erreur de mémoire insuffisante, mais aucune vidage de mémoire ou vidage de tas n'est crété en raison de l'écrasement.
Des idées?
Je ne suis pas sûr qu'ils ont trouvé une solution - mais ce fil a un problème similaire - http://comments.gmane.org/gmane.comp.jakarta.tomcat.user/206745 –
Tomcat reçoit-il des requêtes lors d'un plantage? Est-ce qu'il plante sans applications déployées? – fglez
J'ai exécuté mon processus maintenant avec strace sur les signaux et ai obtenu la sortie suivante: 1 Processus 24631 joint - interruption pour quitter 2 --- SIGRT_2 (signal en temps réel 0) @ 0 (0) --- 3 rt_sigreturn (0x7fe4d8b39850) = 202 4 PANIC: pid 24631 attaché quitté avec 143 En ce qui concerne la demande je ne suis pas sûr, en fait dans le journal du serveur, nous pouvons voir une plaie de demande d'arrêt. –