metaclass: (Default)
[personal profile] metaclass
Решил я глянуть, почему валится с исключением жабокложурный сервис при остановке, подключился к нему windbg.
Так вот, у меня оный windbg начал сыпать такими Access Violation на каждое действие внутри jvm, что страшно смотреть, причем это во время работы, и извне оно никак не видно.
Такое ощущение, что там внутри сплошные повреждения памяти и разыменования нулевых указателей, но они все окружены обработкой исключений в любимом жабьем стиле и наружу не выходят.
Как-то это крайне неприятно.

Date: 2012-02-25 05:39 pm (UTC)
From: [identity profile] raydac.livejournal.com
jvm это такая штука вобщем... вобщем она для java

Date: 2012-02-25 05:49 pm (UTC)
From: [identity profile] craneop.livejournal.com
Что-то вы какой то анальной стоматологией занимаетесь, ребе.

Date: 2012-02-25 06:03 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Не, ну вот стандартная задача: сделать виндовс-сервис. Решалась во всех видах и формах на разных языках. Имеет решение для жабы, apache commons daemon. Работающее и после укола вытяжки ядовитой жабы в мозг - даже понятное. С исходниками нативных исполняемых файлов.
Но при остановке сервиса кидает исключение, чего я очевидно, никак не приемлю, например - при остановке виндов вылезшее хуй пойми куда окно отладчика не даст им закрыться некоторое время.
Надо ж разобраться, почему оно так. А там внутри червие.

Date: 2012-02-25 06:06 pm (UTC)
From: [identity profile] craneop.livejournal.com
А у вас кложура под commons daemon такой эффект дает или вообще для любого приложения? Я это к тому, что обычно если в жабе червие, то кто-то уже с этим сталкивался и знает, в чем дело.

Date: 2012-02-25 06:34 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Да, надо попробовать с другими приложениями, особенно тупо один jetty с хелло-ворлд внутри.

Date: 2012-02-25 10:13 pm (UTC)
From: [identity profile] metaclass.livejournal.com
C jetty, без clojure то же самое, валится при выходе.

Date: 2012-02-26 03:26 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Оно. Добавил в приложение system/exit 0, все стало завершаться гуманно.
Что-от там в jvm при некошерной остановке живым оставалось.

Date: 2012-02-25 09:43 pm (UTC)
From: [identity profile] nicka-startcev.livejournal.com
imho, тут не вытяжка жабы нужна, а специальный трех(а лучше четырех)компонентный коктейль, в который должны входить:
1. специфические производные спорыньи, желательно уже нанесенные на марку. В идеале, в подпороговом количестве
2. спиды. Чтоб работать бодро-бодро (и тупо-тупо)
3. эмпатогены (чтоб не проблеваться)
4. медленно действующее успокоительное, чтоб утром, на свежую голову (точнее, на фоне отходняка от эмпатогенов), не наложить на себя руки.

Date: 2012-02-25 05:50 pm (UTC)
From: [identity profile] j-sheridan.livejournal.com
Ребе, не суйтесь к жабам в их болото. Слушайте квакание издалека лучше...

Date: 2012-02-25 06:04 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Я уже глубоко в болоте, обмазываюсь ядовитыми галлюциногенами, которые выделяют жабы из пор на коже.

Date: 2012-02-25 06:48 pm (UTC)
From: [identity profile] j-sheridan.livejournal.com
Ребе, вы осторожнее с этими галлюциногенами. Судя по форумам - они вызывают мутацию головных мозгов и привыкание...

Date: 2012-02-25 06:40 pm (UTC)
From: [identity profile] volodymir-k.livejournal.com
Какие-то гаврики лет 10 назад писали багу, что мол под линуксом отлаживать трудно, постоянно валится с ошибками.
Багу закрыли, потому что именно так инженеры сделали что-то важное, типа исключения, и это ВПОЛНЕ ЗАКОННО. Работает, по перформансу отлично -- какие проблемы? Юзеру надо не отлаживать жвм кривыми дебаггерами, а чтобы работало. Оно работает.

Конкретно у вас могу посоветовать -- попробуйте на другой машине, на другой ОС, на другой JVM. Скорее всего у вас анальный ад с версиями msvcrt678901.dll в разных местах. Ещё вариант -- вы используете самописный jni и конечно не закрываете всё по всем правилам.

Date: 2012-02-25 07:41 pm (UTC)
From: [identity profile] metaclass.livejournal.com
jni там в apache commons daemon присутствует, и стиль в коде мне не очень нравится, так что вполне может быть.

Date: 2012-02-26 12:36 pm (UTC)
From: [identity profile] volodymir-k.livejournal.com
не-а, в демонсах там всё ок. у всех работает без проблем. я про ваши личные jni.

Date: 2012-02-26 12:43 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Я попробовал это дело на чистом jetty, без своего софта вообще - тот же эффект.
У меня такое подозрение, что только остановки jetty недостаточно для того, чтобы jvm можно было корректно закрываться.

Date: 2012-02-25 09:33 pm (UTC)
From: [identity profile] stdray.livejournal.com
Это динамика.

Date: 2012-02-25 10:07 pm (UTC)
From: [identity profile] baramin.livejournal.com
Один умный джигит решил, что переключать контексты через железные прерывания - это хорошо (производительно - как это обосновывалось).
Если быть кратким: для JVM это норма. Но взять биту порой хочется очень. Особливо, когда отлаживаешь AWT или FX какой.

Date: 2012-02-26 12:37 pm (UTC)
From: [identity profile] volodymir-k.livejournal.com
Кстати писали JVM по большей части в Питере. Особенно хотспот.

Рецепт, однако :)

Date: 2012-02-26 08:36 am (UTC)
From: [identity profile] pingback-bot.livejournal.com
User [livejournal.com profile] gineer referenced to your post from Рецепт, однако :) (http://gineer.livejournal.com/69082.html) saying: [...] не наложить на себя руки. http://metaclass.livejournal.com/668688.html?thread=11369744#t11369744 [...]

Date: 2012-02-26 05:35 pm (UTC)
From: [identity profile] fukanchik.livejournal.com
в линуксовой версии то же самое. я так думаю это они так комитят память (VirtualAlloc/MEM_COMMMIT).

В начале работы JVM выдяет одну область непрерывную памяти размером Xmx видимо с VirtualAlloc/MEM_RESERVE в потом видимо по мере необходимости делает коммит на каждый page fault.

Date: 2012-02-26 06:06 pm (UTC)
From: [identity profile] dmitry-vk.livejournal.com
AV, например, используются многими GC для реализации write barrier (например, чтобы отслеживать страницы памяти, в которых произошли изменения). Также, AV используется для safepoint'ов. В общем, не надо так резко на это реагировать.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 28th, 2025 08:10 am
Powered by Dreamwidth Studios