Если вы знаете, как отлаживать фатальные сбои jvm на вашем компьютере, надеюсь, эта статья может помочь вам исправить это.
Одобрено: Fortect
Я очень сбит с толку и не могу знать, как подойти и решить мою любимую индивидуальную проблему. У меня есть простой фрагмент кода Java, который приводит к сбою JVM:
## Среда выполнения Java обнаружила серьезную ошибку:## SIGSEGV (0xb) на pc = 0x00000001057ce9d4, pid равно 10727, tid = 18947## План JRE: Java SE Runtime Environment (tm) (8.0_73-b02) (build 1.8.0_73-b02)# Виртуальная машина Java: сервер HotSpot (TM) 64-разрядная виртуальная машина Java (25.73-b02, смешанный режим, bsd-amd64, сжатый ой)# Проблемный V-образный кадр:# [libjvm.dylib + 0x3ce9d4] PhaseIdealLoop :: idom_no_update (Node *) const + 0x12## Не удалось записать выброс ядра. Базовые репозитории отключены. Чтобы включить удаление ядра, выполните ulimit -c unlimited перед перезапуском Java.## Если вы хотите предложить электронную книгу об ошибках, посетите:# Http://bugreport.java.com/bugreport/crash.jsp#--------------- ПРОВОД ---------------Текущий поток (0x00007feeef003800): демон JavaThread "C2 CompilerThread0" [_thread_in_native, id = 18947, вся нагрузка (0x0000700000ec4000,0x0000700000fc4000)]siginfo: si_signo: 18 (SIGSEGV), si_code: 1 Si_addr: (segv_maperr), 0x00000000000000008
Я не знаю, как именно решить проблему. Программа действительно простая, она получает сообщение от Kafka в дополнение к задачам триггера на основе сообщений. Когда я добавляю две разные задачи, каждая программа получает от семисот до 1500 предупреждений после сбоя. Все статьи или сообщения в блогах точно такие же, и программа не использует никаких новых материалов JNI (используемые коллекции трех сторон также не используют JNI, как мне сообщили).
У меня никогда не было таких проблем, но я хотел бы / удержать Это ваш способ выяснить, в чем проблема. Я уже использовал также версии JVM (Java 8.0_66, 8.0_73-b02 вместе с 8.0_74-b02). Так что я могу сделать? Спасибо ;
итак ...# Версия JRE: java OS учений (tm) (8.0_73-b02) (build 1.8.0_73-b02)# Виртуальная машина Java: сервер HotSpot (TM) 64-разрядная виртуальная машина Java (25.73-b02, режим тщательного смешивания, bsd-amd64, сжатый ой)# Проблемный V-образный кадр:# [libjvm.dylib + 0x3ce9d4]...
РЕДАКТИРОВАТЬ (2): я обновил свою версию Java до 8.0_74. Ошибка действительно есть :(.
Одобрено: Fortect
Fortect — самый популярный и эффективный в мире инструмент для ремонта ПК. Миллионы людей доверяют ему обеспечение быстрой, бесперебойной и безошибочной работы своих систем. Благодаря простому пользовательскому интерфейсу и мощному механизму сканирования Fortect быстро находит и устраняет широкий спектр проблем Windows — от нестабильности системы и проблем с безопасностью до проблем с управлением памятью и производительностью.
а>
## При воспроизведении Java произошла фатальная ошибка:## SIGSEGV (0xb) на ПК равно 0x00000001073cdef8, pid = 11227, tid = 19715## Версия JRE: среда выполнения java OS (tm) (8.0_74-b02) (сборка 1.8.0_74-b02)# VM: Java Java HotSpot (TM) 64-разрядная серверная виртуальная машина (25.74-b02 Mixed Mode bsd-amd64, сокращенно oops)# Проблемный фреймворк:# V [libjvm. ... ... dylib + 0x3cdef8] PhaseIdealLoop :: idom_no_update (Node *) const + 0x12## Ошибка перезаписи дампа тела. Дампы ядра отключены. Чтобы настроить дамп ядра, попробуйте ulimit -c overwhelming перед перезапуском Java.## Если вы хотите, чтобы вы могли отправить отчет об ошибке, посетите:# Http://bugreport.java.com/bugreport/crash.jsp#--------------- ПРОВОД ---------------Текущий безопасный поток (0x00007f89e481c800): демон JavaThread «C2 CompilerThread1» [_thread_in_native, id = 19715, stack (0x000070000104a000,0x000070000114a000)]siginfo: si_signo: 18 (SIGSEGV), si_code: 5 (SEGV_MAPERR), si_addr: 0x000000000000008
Итак, я, наконец, сбросил ядро Verizon и связал его с Java VisualVM (я не мог использовать конкретное решение, организованное DROY, потому что jmap вызывал вызов, что привело к другой ошибке: «Ошибка добавления в другой список: невозможно подключиться к core. information “”). VisualVM сгенерировал дамп потока с результатами:
Тема 30239 «Keep-Alive-Timer»: (состояние = ЗАБЛОКИРОВАНО) через java.lang.Thread.Method) сон (родной для sun.net.www.http.KeepAliveCache.run (KeepAliveCache.java: 172) внутри java.lang.Thread.run (Thread.java:745)Тема 29699 (Статус «threaddeathwatcher-4-1»: = ЗАБЛОКИРОВАНО) перейдя к java.lang.Thread.sleep (собственный метод) io at.netty.util.ThreadDeathWatcher $ Watcher.run (ThreadDeathWatcher.java:137) в io.netty.util.concurrent.DefaultThreadFactory $ DefaultRunnableDecorator.run (DefaultThreadFactory.java:137) в java.lang.Thread.run (Thread.java:745)Поток 26635 (состояние 'nioeventloopgroup-3-1': подразумевает IN_NATIVE) возможно на sun.nio.ch.KQueueArrayWrapper.Method) kevent0 (родной из sun.nio.ch.KQueueArrayWrapper.poll (KQueueArrayWrapper.java: 198) в sun.nio.ch.KQueueSelectorImpl.doSelect (KQueueSelectorImpl.java:117) у кого есть sun.nio.ch.SelectorImpl.lockAndDoSelect (SelectorImpl.java:86) - <0x00000006c049ec98> Io исправлено (a.netty.channel.nio. Selectedselectionkeyset) - низкий риск <0x00000006c049ec88> (java.util.Collections $ UnmodifiableSet) 2.locked <0x00000006c049ecb8> (a sun.nio.ch.KQueueSelectorImpl) На sun.nio.ch.SelectorImpl.select (SelectorImpl.java:97) доступно на 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) но с io.netty.util.concurrent.DefaultThreadFactory $ DefaultRunnableDecorator.run (DefaultThreadFactory.java:137) наткнулся на java.lang.Thread.run (Thread.java:745)Поток 29187 «пул-3-поток-1»: (состояние равно ЗАБЛОКИРОВАНО) в sun.misc.Unsafe.park (собственный метод) Кофе в зернах at.util.concurrent.locks.LockSupport.park (LockSupport. Java: 175) в java.util.concurrent.locks.AbstractQueuedSynchronizer $ ConditionObject.await (AbstractQueuedSynchronizer.java:2039) java at.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:442) kafka at.consumer.ConsumerIterator.makeNext (ConsumerIterator.scala: 63) внутренне kafka.consumer.ConsumerIterator.makeNext (ConsumerIterator.scala: 33) в сторону kafka.utils.IteratorTemplate.maybeComputeNext (IteratorTemplate.scala: 66) в kafka.utils.IteratorTemplate.hasNext (IteratorTemplate.scala: 58) онлайн на.sosse.common.messaging.DefaultHandler.doRun (DefaultHandler.java:22) автор: com.sosse.common.concurrency.DefaultRunnable.run (DefaultRunnable.java:11) во время java.util.concurrent.Executors $ RunnableAdapter.call (Executors. java: 511) в java.util.concurrent.FutureTask.run (FutureTask.java:266) Кафе для гурманов at.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor. Java: 1142) из java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) через java.lang.Thread.run (Thread.java:745)Поток 28675 «пул-4-поток-1»: (состояние, необходимость ЗАБЛОКИРОВАНА) через java.lang.Thread.sleep (собственный метод) io at.netty.util.HashedWheelTimer $ Worker.waitForNextTick (HashedWheelTimer.java:461) только в io.netty.util.HashedWheelTimer $ Worker.run (HashedWheelTimer. java: 360) через java.lang.Thread.run (Thread.java:745)Тема 28163 «ConsumerFetcherThread-analytics-group_Philipp.local-1458441725398-581eabc3-0-0»: (состояние соответствует in_native) на sun.nio.ch.Net.Methode) бюллетень (родной для sun.nio.ch.SocketChannelImpl.poll (SocketChannelImpl.java:954) или подключен <0x00000006c056d538> (java.lang.Object) в sun.nio.ch.SocketAdaptor долларов SocketInputStream.read (SocketAdaptor.java:204) - профессиональная <0x00000006c056d5b8> Java (a.lang.Object) sun.nio.ch.ChannelInputStream.read (ChannelInputStream.java:103) - <0x00000006c056d5f8> исправлено (sun.nio.ch.SocketAdaptor доллар SocketInputStream) В java.nio.channels.Channels $ ReadableByteChannelImpl.read (Channels.java:385) - исправлено (<0x00000006c056d618> java.lang.Object) Под kafka.utils.Utils $ .read (Utils.scala: 380) kafka at.network.BoundedByteBufferReceive.readFrom (BoundedByteBufferReceive.scala: 54) kafka at.network.Receive $ class.readCompletely (Transmission.scala: 56) только с kafka.network.BoundedByteBufferReceive.readCompletely (BoundedByteBufferReceive.scala: 29) kafka at.network.BlockingChannel.receive (BlockingChannel.scala: 111) kafka at.consumer.SimpleConsumer.liftedTree1 $ 1 (SimpleConsumer.scala: 71) В разделе kafka.consumer.SimpleConsumer.kafka $ consumer $ SimpleConsumer $$ sendRequest (SimpleConsumer.scala: 68) - доброкачественный <0x00000006c056d6e0> (java.lang.Object) На сайте kafka.consumer.SimpleConsu
Повысьте производительность вашего компьютера с помощью этой простой загрузки. г.
Проверьте текстовый файл сбоя. Файл с крахом письма. свалка может показать, какие выделения памяти вышли из строя.Проверьте один конкретный размер аварийного двоичного файла. Когда JVM JRockit аварийно завершает работу, она генерирует любой двоичный файл столкновения (также .core.
Попробуйте какие-либо аксессуары для диагностики, которые лучше всего подходят для вашего драгоценного человеческого тела. Поскольку сбои JVM случаются редко, я бы сообщил о них Sun. Это можно сделать больше в их системе отслеживания ошибок. Используйте подкатегорию Ding Java SE, jvm_exact и / или, возможно, jit.
Откройте для каждого бункера / прогона. bat в Windows, затем /bin/run.sh в Linux для редактирования. Чтобы скрыть этот отчет для журнала сбоев JVM, закомментируйте соответствующую строку, чтобы указать, где анализируется сбой JVM. Пример: #ERROR_FILE = "- XX: ErrorFile = $ PA_HOME / log и java_error% p.