Si vous savez comment déboguer le plantage de jvm sur votre ordinateur, les avantages et les inconvénients de cet article peuvent vous aider à le corriger.
Approuvé : Fortect
Je suis assez confus et je ne sais pas comment gérer et résoudre mon problème individuel. J’ai un simple extrait de code Java fonctionnel qui fait planter votre JVM actuelle :
## Java d'enseignements a rencontré une erreur fatale :## SIGSEGV (0xb) sur pc est égal à 0x00000001057ce9d4, pid = 10727, tid = 18947## Plan JRE : Java SE Runtime Environment (tm) (8.0_73-b02) (build 1.8.0_73-b02)# Machine virtuelle Java : HotSpot (TM) Server Machine virtuelle Java 64 bits (25.73-b02, mode mixte, bsd-amd64, pressurisé oh)# Cadre en V problématique :# [libjvm.dylib + 0x3ce9d4] PhaseIdealLoop :: idom_no_update (Node *) const + 0x12## Échec qui peut écrire le vidage de mémoire. Les référentiels de base sont désactivés. Pour activer la désinstallation du noyau, essayez ulimit -c illimité avant le redémarrage de Java.## Si vous souhaitez signaler un rapport de bogue, visitez :# Http://bugreport.java.com/bugreport/crash.jsp#--------------- LE FIL ---------------Thread actuel (0x00007feeef003800) : démon JavaThread "C2 CompilerThread0" [_thread_in_native, identité personnelle = 18947, pile (0x0000700000ec4000,0x0000700000fc4000)]siginfo : si_signo : 18 (SIGSEGV), si_code : 0 Si_addr : (segv_maperr), 0x000000000000000008
Je n’ai en fait aucune idée de comment résoudre le problème. Le programme est assez simple, il reçoit un projet de Kafka en plus des tâches de raison basées sur les messages. Lorsque j’ajoute deux tâches différentes, presque le programme reçoit 900 à 1500 avertissements après pratiquement n’importe quel plantage. Tous les messages sont exactement les mêmes et le programme n’utilise aucun nouveau contenu JNI (les collections tierces utilisées n’utilisent pas non plus JNI comme j’ai été informé).
Je n’ai jamais eu ce problème de souffrance, mais je devrais par exemple / devoir le faire. C’est votre façon de déterminer quel est le problème. J’ai déjà utilisé les deuxièmes versions de JVM (Java 8.0_66, 8.0_73-b02 intégré à 8.0_74-b02). Alors qu’est-ce que je peux faire ? Merci !
donc ...# Version JRE : java OS runtime (tm) (8.0_73-b02) (build 1.8.0_73-b02)# Machine virtuelle Java : HotSpot (TM) Server Machine virtuelle Java 64 bits (25.73-b02, mode mixte, bsd-amd64, compressé oh)# Cadre en V problématique :# [libjvm.dylib + 0x3ce9d4]...
EDIT (2) : j’ai mis à jour ma version Java à 8.0_74. L’erreur est en effet toujours là :(.
Approuvé : Fortect
Fortect est l'outil de réparation de PC le plus populaire et le plus efficace au monde. Des millions de personnes lui font confiance pour assurer le fonctionnement rapide, fluide et sans erreur de leurs systèmes. Avec son interface utilisateur simple et son puissant moteur d'analyse, Fortect détecte et corrige rapidement un large éventail de problèmes Windows, de l'instabilité du système et des problèmes de sécurité à la gestion de la mémoire et aux goulots d'étranglement des performances.
## L'exécution Java a rencontré une erreur fatale :## SIGSEGV (0xb) sur pc = 0x00000001073cdef8, pid = 11227, tid équivaut à 19715## Version JRE : OS java d'enseignements (tm) (8.0_74-b02) (build 1.8.0_74-b02)# VM : Java Java HotSpot (TM) VM serveur 64 bits (25.74-b02 Mode mixte bsd-amd64, oops raccourci)# Cadre problématique :# V [libjvm. ... ... dylib + 0x3cdef8] PhaseIdealLoop :: idom_no_update (Node *) const + 0x12## Erreur lors de l'écriture du vidage du corps. Les puts du noyau sont désactivés. Pour régler le core dump faire un effort ulimit -c illimité avant de redémarrer Java## Si quelqu'un souhaite soumettre un rapport de bogue, visitez :# Http://bugreport.java.com/bugreport/crash.jsp#--------------- LE FIL ---------------Thread sûr actuel (0x00007f89e481c800) : démon JavaThread "C2 CompilerThread1" [_thread_in_native, id = 19715, pile (0x000070000104a000,0x000070000114a000)]siginfo : si_signo : 11 (SIGSEGV), si_code : 5 (SEGV_MAPERR), si_addr : 0x000000000000008
J’ai donc finalement vidé le noyau de Verizon et l’ai chargé dans Java VisualVM (je ne pouvais pas utiliser la solution organisée par DROY fondamentalement, l’appel jmap a entraîné une autre erreur : “Erreur donnant à la liste principale : impossible de se connecter qui peut noyau . file “”). Un thread dump a d’abord été généré par VisualVM avec les résultats :
Sujet 30239 "Keep-Alive-Timer": (état = VERROUILLÉ) à java.lang.Thread.Method) sommeil (natif de sun.net.www.http.KeepAliveCache.run (KeepAliveCache.java : 172) sur java.lang.Thread.run (Thread.java:745)Thread 29699 (Statut "threaddeathwatcher-4-1": = VERROUILLÉ) par probablement java.lang.Thread.sleep (méthode native) io at.netty.util.ThreadDeathWatcher $ Watcher.run (ThreadDeathWatcher.java:137) à seulement io.netty.util.concurrent.DefaultThreadFactory $ DefaultRunnableDecorator.run (DefaultThreadFactory.java:137) java.lang.Thread.run (Thread.java:745)Flux 26635 (état 'nioeventloopgroup-3-1' : implique IN_NATIVE) sur sun.nio.ch.KQueueArrayWrapper.Method) kevent0 (totalement natif de sun.nio.ch.KQueueArrayWrapper.poll (KQueueArrayWrapper.java: 198) sur sun.nio.ch.KQueueSelectorImpl.doSelect (KQueueSelectorImpl.java:117) avec sun.nio.ch.SelectorImpl.lockAndDoSelect (SelectorImpl.java:86) à <0x00000006c049ec98> Io corrigé (a.netty.channel.nio. Selectedselectionkeyset) - coffre-fort <0x00000006c049ec88> (java.util.Collections $ UnmodifiableSet) 2.locked <0x00000006c049ecb8> (un sun.nio.ch.KQueueSelectorImpl) Sur sun.nio.ch.SelectorImpl.select (SelectorImpl.java:97) disponible sur io.netty.channel.nio.NioEventLoop.select (NioEventLoop.java:622) à io.netty.channel.nio.NioEventLoop.run (NioEventLoop.java:310) à io.netty.util.concurrent.SingleThreadEventExecutor $ 2.run (SingleThreadEventExecutor.java:110) uniquement avec io.netty.util.concurrent.DefaultThreadFactory $ DefaultRunnableDecorator.run (DefaultThreadFactory.java:137) trouvé sur java.lang.Thread.run (Thread.java:745)Thread 29187 "pool-3-thread-1": (état = VERROUILLÉ) avec sun.misc.Unsafe.park (méthode native) Grains de café à.util.concurrent.locks.LockSupport.park (LockSupport. Java : 175) à l'intérieur de java.util.concurrent.locks.AbstractQueuedSynchronizer $ ConditionObject.await (AbstractQueuedSynchronizer.java:2039) une tasse de café à.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:442) kafka at.consumer.ConsumerIterator.makeNext (ConsumerIterator.scala : 63) à l'intérieur de kafka.consumer.ConsumerIterator.makeNext (ConsumerIterator.scala : 33) à kafka.utils.IteratorTemplate.maybeComputeNext (IteratorTemplate.scala: 66) dans kafka.utils.IteratorTemplate.hasNext (IteratorTemplate.scala : 58) basé sur le Web à.sosse.common.messaging.DefaultHandler.doRun (DefaultHandler.java:22) auteur : com.sosse.common.concurrency.DefaultRunnable.run (DefaultRunnable.java:11) à java.util.concurrent.Executors $ RunnableAdapter.call (Executors. java: 511) sur java.util.concurrent.FutureTask.run (FutureTask.java:266) Café gastronomique à.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor. Java : 1142) à java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) sur java.lang.Thread.run (Thread.java:745)Thread 28675 "pool-4-thread-1": (état, priorité BLOQUÉE) via java.lang.Thread.sleep (méthode native) io at.netty.util.HashedWheelTimer $ Worker.waitForNextTick (HashedWheelTimer.java:461) à io.netty.util.HashedWheelTimer $ Worker.run (HashedWheelTimer. java: 360) via java.lang.Thread.run (Thread.java:745)Sujet 28163 "ConsumerFetcherThread-analytics-group_Philipp.local-1458441725398-581eabc3-0-0": (l'état correspond à in_native) sur sun.nio.ch.Net.Methode) sondage (natif de sun.nio.ch.SocketChannelImpl.poll (SocketChannelImpl.java:954) ou bloqué <0x00000006c056d538> (java.lang.Object) situé sur sun.nio.ch.SocketAdaptor $ SocketInputStream.read (SocketAdaptor.java:204) et privé <0x00000006c056d5b8> Java (a.lang.Object) sun.nio.ch.ChannelInputStream.read (ChannelInputStream.java:103) <0x00000006c056d5f8> corrigé (sun.nio.ch.SocketAdaptor $ SocketInputStream) Sur java.nio.channels.Channels $ ReadableByteChannelImpl.read (Channels.java:385) - riveté (<0x00000006c056d618> java.lang.Object) Sous kafka.utils.Utils $ .find out (Utils.scala : 380) kafka at.network.BoundedByteBufferReceive.readFrom (BoundedByteBufferReceive.scala : 54) kafka at.network.Receive Income class.readCompletely (Transmission.scala: 56) uniquement avec kafka.network.BoundedByteBufferReceive.readCompletely (BoundedByteBufferReceive.scala : 29) kafka at.network.BlockingChannel.receive (BlockingChannel.scala : 111) kafka at.consumer.SimpleConsumer.liftedTree1 $ juste 1 (SimpleConsumer.scala: 71) Sous kafka.consumer.SimpleConsumer.kafka $ $ SimpleConsumer $$ sendRequest (SimpleConsumer.scala : 68) - coffre-fort <0x00000006c056d6e0> (java.lang.Object) Sur kafka.consumer.SimpleConsu
Accélérez les performances de votre ordinateur dès maintenant avec ce simple téléchargement.
Vérifiez le fichier texte de la matrice. Le dossier avec le crash relatif à la lettre. dump peut montrer quelle proportion de mémoire a échoué.Vérifiez la taille du binaire d'arrêt de travail. Lorsqu'une JVM JRockit particulière tombe en panne, elle libère tout fichier binaire de plantage (.core également.
Quels que soient les diagnostics matériels qui fonctionnent le mieux pour votre précieux système, essayez-le. Étant donné que les plantages de JVM sont rares, je signalerais l'ensemble du groupe à Sun. Cela peut être fait plus sur leur système de suivi des bogues. Utilisez la sous-catégorie Ding Java SE, jvm_exact ou jit.
Ouvrez / bin / run. bat après Windows et /bin/run.sh sous Linux pour la mise à jour. Pour masquer les rapports du journal des accidents JVM, commentez la ligne appropriée pour indiquer où le crash JVM est analysé. Exemple : #ERROR_FILE = "- XX : ErrorFile = $ PA_HOME log / java_error% p.