LINUX.ORG.RU

JVM периодически падает с Program terminated with signal 6, Aborted

 , , , ,


1

1

Переодически падает JVM по непонятным для меня причинам. hs_err файл не пишет. Собрали core файл. Вот что говорит gdb:

Program terminated with signal 6, Aborted.
#0  0x00007fab80d260d5 in sigandset (dest=0x26c3, left=0x26d3, right=0x6) at sigandset.c:37
37	sigandset.c: No such file or directory.
(gdb) where
#0  0x00007fab80d260d5 in sigandset (dest=0x26c3, left=0x26d3, right=0x6) at sigandset.c:37
#1  0x00007fab80d2983b in qsort_r (b=0x26c3, n=9939, s=6, cmp=0xffffffffffffffff, arg=0xa) at msort.c:167
#2  0x00007fab806569c8 in WatcherThread::run (this=0x7fab78168000) at /build/buildd/openjdk-6-6b24-1.11.1/build/openjdk/hotspot/src/share/vm/runtime/thread.cpp:1184
#3  0x00007fab8055ccb2 in java_start (thread=0x7fab78168000) at /build/buildd/openjdk-6-6b24-1.11.1/build/openjdk/hotspot/src/os/linux/vm/os_linux.cpp:856
#4  0x00007fab814bee9a in start_thread (arg=0x7fab7c6c1700) at pthread_create.c:308
#5  0x00007fab80de338d in unshare () at ../sysdeps/unix/syscall-template.S:84
#6  0x0000000000000000 in ?? ()
(gdb) 

В чем может быть проблема?

java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.1) (6b24-1.11.1-4ubuntu2)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
cat /etc/issue
Ubuntu 12.04.5 LTS \n \l
dpkg -s libc6 | grep Version:
Version: 2.15-0ubuntu10.11
★★

Последнее исправление: Ian (всего исправлений: 1)

JVM

падает

Ещё удивляется...

anonymous
()

bt full

Более подробно:

(gdb) bt full
#0  0x00007fab80d260d5 in sigandset (dest=0x26c3, left=0x26d3, right=0x6) at sigandset.c:37
        __cnt = 12
#1  0x00007fab80d2983b in qsort_r (b=0x26c3, n=9939, s=6, cmp=0xffffffffffffffff, arg=0xa) at msort.c:167
        size = 0
        tmp = 0x0
        p = {s = 0, var = 0, cmp = 0, arg = 0x0, t = 0x0}
#2  0x00007fab806569c8 in WatcherThread::run (this=0x7fab78168000) at /build/buildd/openjdk-6-6b24-1.11.1/build/openjdk/hotspot/src/share/vm/runtime/thread.cpp:1184
        err = {<outputStream> = {<ResourceObj> = {<No data fields>}, _vptr.outputStream = 0x7fab80a84f70, _indentation = 0, _width = 80, _position = 0, _newlines = 1, 
            _precount = 30, _stamp = {_counter = 0}}, _fd = 1, _need_close = false}
        time_to_wait = <optimized out>
#3  0x00007fab8055ccb2 in java_start (thread=0x7fab78168000) at /build/buildd/openjdk-6-6b24-1.11.1/build/openjdk/hotspot/src/os/linux/vm/os_linux.cpp:856
        counter = 43348
        pid = <optimized out>
        osthread = 0x7fab78168f90
        sync = 0x7fab78169070
#4  0x00007fab814bee9a in start_thread (arg=0x7fab7c6c1700) at pthread_create.c:308
        __res = <optimized out>
        pd = 0x7fab7c6c1700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, -5057929828844747674, 140374589729664, 140374503594432, 0, 3, 5086929331494274150, 5087269919160747110}, 
              mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = 0
        pagesize_m1 = <optimized out>
        sp = <optimized out>
        freesize = <optimized out>
        __PRETTY_FUNCTION__ = "start_thread"
#5  0x00007fab80de338d in unshare () at ../sysdeps/unix/syscall-template.S:84
No locals.
#6  0x0000000000000000 in ?? ()
No symbol table info available.
(gdb) 
Ian ★★
() автор топика

А чего-нибудь свежее ископаемого 1.6.0_24 нету? Да, в 1.6.0_24 было полно подобных багов.

asaw ★★★★★
()
Ответ на: комментарий от EXL

написанную на нормальном языке программирования (Java), а не на C++.
Она падать не будет.

Ты про аббревиатуру NPE слышал чего-нибудь?

asaw ★★★★★
()
Ответ на: комментарий от asaw

Мне сказали, что они заморозили версию Java, но никто уже не помнит почему. Буду разбираться, возможно 45 можно накатить.

Ian ★★
() автор топика
Ответ на: комментарий от asaw

аббревиатуру NPE

Первая ссылка в гугле — Norton Power Eraser.

И только косвенно, по картинкам в статье на хабре, можно предположить, что это NullPointerException. Мне даже интересно, это то самое значение, которое ты имел в виду?

i-rinat ★★★★★
()
Ответ на: комментарий от BattleCoder

Там крутится liferay в tomcat'е.

Ian ★★
() автор топика
Ответ на: комментарий от i-rinat

Первая ссылка в гугле — Norton Power Eraser.

Потому что нужно было искать вместе с Java.

asaw ★★★★★
()
Ответ на: комментарий от asaw

клоуны слышат только звонок для выхода на арену

anonymous
()
Ответ на: комментарий от Ian

Стоит попробовать обновить. Возможно, всплывут другие баги (из-за которых и заморозили) - но может, их решить будет проще? Всё-таки JVM падает не каждый день.

BattleCoder ★★★★★
()
Ответ на: комментарий от BattleCoder

К падению такого рода не может приводить нехватка ресурсов (памяти/потоков/whateverelse)?

Ian ★★
() автор топика

В чем может быть проблема?

в этом:

java version "1.6.0_24"

и в этом(возможно):

OpenJDK Runtime Environment
f1u77y ★★★★
()
Ответ на: комментарий от BattleCoder

Мельком глянул исходники глибца, странная штука: в дампе

qsort_r (b=0x26c3, n=9939, s=6, cmp=0xffffffffffffffff, arg=0xa)
size = 0

size_t size = n*s = 9939*6 = 0?

После установки size, tmp и p дальше там идут аллокации, может на них и валится, sigabrt как раз malloc любит кидать, если не ошибаюсь. Дальше искать сложно, очень много макроподстановок.

Хотя у меня было один раз, что стектрейс показывает на место, к реальной ошибке мало оносящееся, просто такой афтерэффект.

Midael ★★★★★
()
Ответ на: комментарий от Legioner

6u24 это даже не некрофилия, это палеонтология. Советую взять восьмёрку, или последний билд шестёрки.

GblGbl ★★★★★
()
Ответ на: комментарий от Den_Zurin

Черт возьми! Я думаю ты просто гений!

anonymous
()
Ответ на: комментарий от Den_Zurin

Было бы здорово, если бы тому существовало какое-либо доказательство. Bug в багзилле openjdk или libc вполне подошел бы. Я пока ничего похожего найти не смог. Возможно, плохо искал.

Ian ★★
() автор топика

Ты не выхлоп gdb кидай нам, а содержимое файла hs_err_pid*.log, в котором причина смерти JVM более-менее подробнее описана быть должна.

cherry-pick
()
Ответ на: комментарий от cherry-pick

Там как минимум стектрейс кода, который JVM в момент смерти выполняло (а не стектрейс самой JVM, который тебе не сильно поможет) плюс список тредов, которые JVM выполняла в момент контузии.

cherry-pick
()
Ответ на: комментарий от cherry-pick

Нету hs_err_pid файла. JVM его по каким-то причинам не пишет. Такое бывает.

Ian ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.