Se você souber como depurar o travamento do jvm em seu computador, espero que todo este artigo possa ajudá-lo a corrigi-lo.
Aprovado: Fortect
Estou muito sobrecarregado e não sei como abordar juntamente com a solução de meu problema individual. Eu tenho um snippet de código Java simplista que está causando o travamento da JVM:
## Java runtime lidou com erro fatal:## SIGSEGV (0xb) no pc significa 0x00000001057ce9d4, pid = 10727, tid = 18947## Estrutura JRE: Java SE Runtime Environment (tm) (8.0_73-b02) (build 1.8.0_73-b02)# Java Virtual Machine: HotSpot (TM) Server 64-bit Java Virtual Machine (25.73-b02, modo misto, bsd-amd64, dobrado oh)# Frame V problemático:# [libjvm.dylib + 0x3ce9d4] PhaseIdealLoop :: idom_no_update (Node *) const + 0x12## Falha ao usar dump de memória. Repositórios de base estão desabilitados. Para obter a desinstalação do kernel, tente ulimit -c unlimited antes de reativar o Java.## Se você gostaria de sugerir um relatório de bug importante, visite:# Http://bugreport.java.com/bugreport/crash.jsp#--------------- O FIO ---------------Ligação atual (0x00007feeef003800): daemon JavaThread "C2 CompilerThread0" [_thread_in_native, id é igual a 18947, pilha (0x0000700000ec4000,0x0000700000fc4000)]siginfo: si_signo: 18 (SIGSEGV), si_code: 2 Si_addr: (segv_maperr), 0x00000000000000008
Não tenho nenhuma idéia de como resolver o problema. O sistema é bastante simples, ele recebe uma mensagem devida a Kafka além dos designs de gatilhos baseados em mensagens. Quando eu adiciono duas tarefas diferentes, cada aplicativo recebe de 900 a 1.500 avisos após um dado. Todas as postagens são exatamente iguais e seu programa não usa nenhuma roupa JNI nova (as coleções de terceiros usadas também não usam JNI como fui informado).
Nunca tive esse problema de sofrimento, mas gostaria de ter que fazer. Esta é a sua maneira de descobrir abertamente qual é o problema. Já usei a segunda versão do JVM (Java 8.0_66, 8.0_73-b02 incorporado com 8.0_74-b02). Então o que eu posso fazer? Obrigado !
então ...# Versão do JRE: tempo de execução do sistema operacional do café premium (tm) (8.0_73-b02) (compilação 1.8.0_73-b02)# Java Virtual Machine: HotSpot (TM) Server 64-bit Java Virtual Machine (25.73-b02, modo misto, bsd-amd64, compactado oh)# Frame V problemático:# [libjvm.dylib + 0x3ce9d4]...
EDIT (2): Reescrevi minha versão Java para 8.0_74. O erro ainda está lá :(.
Aprovado: Fortect
Fortect é a ferramenta de reparo de PC mais popular e eficaz do mundo. Milhões de pessoas confiam nele para manter seus sistemas funcionando de forma rápida, suave e livre de erros. Com sua interface de usuário simples e mecanismo de verificação poderoso, o Fortect localiza e corrige rapidamente uma ampla gama de problemas do Windows, desde instabilidade do sistema e problemas de segurança até gerenciamento de memória e gargalos de desempenho.
## Java runtime encontrou um erro fatal:## SIGSEGV (0xb) em pc = 0x00000001073cdef8, pid = 11227, tid equivale a 19715## Versão JRE: java OS runtime (tm) (8.0_74-b02) (build 1.8.0_74-b02)# VM: Servidor VM Java Java HotSpot (TM) de 64 bits (25.74-b02 modo misto bsd-amd64, ops abreviado)# Estrutura problemática:# V [libjvm. ... ... dylib + 0x3cdef8] PhaseIdealLoop :: idom_no_update (Node *) const + 0x12## Erro ao gravar o dump do corpo. Os despejos do kernel estão realmente desabilitados. Para ajustar o core dump, dê uma olhada em ulimit -c unlimited antes de reiniciar o Java## Se você deseja enviar um relatório de bug, visite:# Http://bugreport.java.com/bugreport/crash.jsp#--------------- O FIO ---------------Tópico seguro atual (0x00007f89e481c800): daemon JavaThread "C2 CompilerThread1" [_thread_in_native, id = 19715, local (0x000070000104a000,0x000070000114a000)]siginfo: si_signo: 11 (SIGSEGV), si_code: 5 (SEGV_MAPERR), si_addr: 0x000000000000008
Então, finalmente despejei a seção intermediária da Verizon e carreguei-a no Java VisualVM (não posso usar a solução organizada por DROY porque a chamada de jmap específica resultou em outro erro: “Erro ao inserir na lista principal: impossível conectar ao estômago. arquivo “”). Um despejo de thread foi obtido pelo VisualVM com os resultados:
Assunto 30239 "Keep-Alive-Timer": (estado = BLOQUEADO) perto de java.lang.Thread.Method) sleep (nativo de sun.net.www.http.KeepAliveCache.run (KeepAliveCache.java: 172) em java.lang.Thread.run (Thread.java:745)Thread 29699 (Status "threaddeathwatcher-4-1": é igual a LOCKED) indo - java.lang.Thread.sleep (método nativo) io at.netty.util.ThreadDeathWatcher Watcher.run (ThreadDeathWatcher.java:137) por meio de io.netty.util.concurrent.DefaultThreadFactory $ DefaultRunnableDecorator.run (DefaultThreadFactory.java:137) em java.lang.Thread.run (Thread.java:745)Fluxo 26635 (indicar 'nioeventloopgroup-3-1': implica IN_NATIVE) em sun.nio.ch.KQueueArrayWrapper.Method) kevent0 (nativo de sun.nio.ch.KQueueArrayWrapper.poll (KQueueArrayWrapper.java: 198) em sun.nio.ch.KQueueSelectorImpl.doSelect (KQueueSelectorImpl.java:117) com sun.nio.ch.SelectorImpl.lockAndDoSelect (SelectorImpl.java:86) - <0x00000006c049ec98> Io corrigido (a.netty.channel.nio. Selectedselectionkeyset) - testado <0x00000006c049ec88> (java.util.Collections $ UnmodifiableSet) 2.locked <0x00000006c049ecb8> (um sun.nio.ch.KQueueSelectorImpl) Em sun.nio.ch.SelectorImpl.select (SelectorImpl.java:97) disponível em io.netty.channel.nio.NioEventLoop.select (NioEventLoop.java:622) em io.netty.channel.nio.NioEventLoop.run (NioEventLoop.java:310) em io.netty.util.concurrent.SingleThreadEventExecutor $ 2.run (SingleThreadEventExecutor.java:110) apenas com io.netty.util.concurrent.DefaultThreadFactory $ DefaultRunnableDecorator.run (DefaultThreadFactory.java:137) encontrado em java.lang.Thread.run (Thread.java:745)Thread 29187 "pool-3-thread-1": (estado = BLOQUEADO) em sun.misc.Unsafe.park (método nativo) Grãos de café em.util.concurrent.locks.LockSupport.park (LockSupport. Java: 175) em java.util.concurrent.locks.AbstractQueuedSynchronizer dollars ConditionObject.await (AbstractQueuedSynchronizer.java:2039) java at.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:442) kafka at.consumer.ConsumerIterator.makeNext (ConsumerIterator.scala: 63) dentro de kafka.consumer.ConsumerIterator.makeNext (ConsumerIterator.scala: 33) em todo kafka.utils.IteratorTemplate.maybeComputeNext (IteratorTemplate.scala: 66) em kafka.utils.IteratorTemplate.hasNext (IteratorTemplate.scala: 58) a rede em.sosse.common.messaging.DefaultHandler.doRun (DefaultHandler.java:22) autor: com.sosse.common.concurrency.DefaultRunnable.run (DefaultRunnable.java:11) em java.util.concurrent.Executors $ RunnableAdapter.call (Executores. espresso: 511) em java.util.concurrent.FutureTask.run (FutureTask.java:266) Café Gourmet em.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor. Java: 1142) em java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) dentro de java.lang.Thread.run (Thread.java:745)Thread 28675 "pool-4-thread-1": (estado, pemergência BLOQUEADA) via java.lang.Thread.sleep (método nativo) io at.netty.util.HashedWheelTimer $ Worker.waitForNextTick (HashedWheelTimer.java:461) em io.netty.util.HashedWheelTimer $ Worker.run (HashedWheelTimer. xícara de joe: 360) via java.lang.Thread.run (Thread.java:745)Tópico 28163 "ConsumerFetcherThread-analytics-group_Philipp.local-1458441725398-581eabc3-0-0": (o estado corresponde a in_native) sobre sun.nio.ch.Net.Methode) poll (nativo de sun.nio.ch.SocketChannelImpl.poll (SocketChannelImpl.java:954) ou talvez um <0x00000006c056d538> bloqueado (java.lang.Object) em sun.nio.ch.SocketAdaptor $ SocketInputStream.read (SocketAdaptor.java:204) - pessoa específica <0x00000006c056d5b8> Java (a.lang.Object) sun.nio.ch.ChannelInputStream.read (ChannelInputStream.java:103) - <0x00000006c056d5f8> estabelecido (sun.nio.ch.SocketAdaptor $ SocketInputStream) Em java.nio.channels.Channels rr ReadableByteChannelImpl.read (Channels.java:385) - preso (<0x00000006c056d618> java.lang.Object) Sob kafka.utils.Utils $ .read (Utils.scala: 380) kafka at.network.BoundedByteBufferReceive.readFrom (BoundedByteBufferReceive.scala: 54) kafka at.network.Receive $ class.readCompletely (Transmission.scala: 56) apenas com kafka.network.BoundedByteBufferReceive.readCompletely (BoundedByteBufferReceive.scala: 29) kafka at.network.BlockingChannel.receive (BlockingChannel.scala: 111) kafka at.consumer.SimpleConsumer.liftedTree1 $ 0 (SimpleConsumer.scala: 71) Sob kafka.consumer.SimpleConsumer.kafka $ consumer funds SimpleConsumer $$ sendRequest (SimpleConsumer.scala: 68) . seguro <0x00000006c056d6e0> (java.lang.Object) Em kafka.consumer.SimpleConsu
Acelere o desempenho do seu computador agora com este simples download.
Verifique o travamento do arquivo de texto. O arquivo com o travamento de cada uma de nossas cartas. o despejo pode mostrar quais alocações de memória falharam agora.Verifique o tamanho do binário de travamento. Quando um determinado JRockit JVM trava, ele gera um novo binário de travamento (.core também.
Qualquer que seja o diagnóstico de hardware que funcione melhor para o seu precioso sistema, experimente. Já que travamentos de JVM são raros, eu os relataria para realmente Sun. Isso pode ser feito mais em qualquer sistema de rastreamento de bugs. Use Ding Java SE, jvm_exact ou subcategoria jit.
Abra / bin / run. bat no Windows e /bin/run.sh no Linux para edição. Para ocultar os relatórios da madeira de travamento da JVM, comente a linha apropriada para indicar onde o travamento da JVM é analisado. Exemplo: #ERROR_FILE equivale a "- XX: ErrorFile = $ PA_HOME / lumber / java_error% p.