О странностях jvm
Feb. 25th, 2012 08:31 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Решил я глянуть, почему валится с исключением жабокложурный сервис при остановке, подключился к нему windbg.
Так вот, у меня оный windbg начал сыпать такими Access Violation на каждое действие внутри jvm, что страшно смотреть, причем это во время работы, и извне оно никак не видно.
Такое ощущение, что там внутри сплошные повреждения памяти и разыменования нулевых указателей, но они все окружены обработкой исключений в любимом жабьем стиле и наружу не выходят.
Как-то это крайне неприятно.
Так вот, у меня оный windbg начал сыпать такими Access Violation на каждое действие внутри jvm, что страшно смотреть, причем это во время работы, и извне оно никак не видно.
Такое ощущение, что там внутри сплошные повреждения памяти и разыменования нулевых указателей, но они все окружены обработкой исключений в любимом жабьем стиле и наружу не выходят.
Как-то это крайне неприятно.
no subject
Date: 2012-02-25 05:39 pm (UTC)no subject
Date: 2012-02-25 05:49 pm (UTC)no subject
Date: 2012-02-25 06:03 pm (UTC)Но при остановке сервиса кидает исключение, чего я очевидно, никак не приемлю, например - при остановке виндов вылезшее хуй пойми куда окно отладчика не даст им закрыться некоторое время.
Надо ж разобраться, почему оно так. А там внутри червие.
no subject
Date: 2012-02-25 06:06 pm (UTC)no subject
Date: 2012-02-25 06:34 pm (UTC)no subject
Date: 2012-02-25 06:47 pm (UTC)no subject
Date: 2012-02-25 10:13 pm (UTC)no subject
Date: 2012-02-26 08:59 am (UTC)no subject
Date: 2012-02-26 03:26 pm (UTC)Что-от там в jvm при некошерной остановке живым оставалось.
no subject
Date: 2012-02-25 09:43 pm (UTC)1. специфические производные спорыньи, желательно уже нанесенные на марку. В идеале, в подпороговом количестве
2. спиды. Чтоб работать бодро-бодро (и тупо-тупо)
3. эмпатогены (чтоб не проблеваться)
4. медленно действующее успокоительное, чтоб утром, на свежую голову (точнее, на фоне отходняка от эмпатогенов), не наложить на себя руки.
no subject
Date: 2012-02-25 05:50 pm (UTC)no subject
Date: 2012-02-25 06:04 pm (UTC)no subject
Date: 2012-02-25 06:48 pm (UTC)no subject
Date: 2012-02-25 06:40 pm (UTC)Багу закрыли, потому что именно так инженеры сделали что-то важное, типа исключения, и это ВПОЛНЕ ЗАКОННО. Работает, по перформансу отлично -- какие проблемы? Юзеру надо не отлаживать жвм кривыми дебаггерами, а чтобы работало. Оно работает.
Конкретно у вас могу посоветовать -- попробуйте на другой машине, на другой ОС, на другой JVM. Скорее всего у вас анальный ад с версиями msvcrt678901.dll в разных местах. Ещё вариант -- вы используете самописный jni и конечно не закрываете всё по всем правилам.
no subject
Date: 2012-02-25 07:41 pm (UTC)no subject
Date: 2012-02-26 12:36 pm (UTC)no subject
Date: 2012-02-26 12:43 pm (UTC)У меня такое подозрение, что только остановки jetty недостаточно для того, чтобы jvm можно было корректно закрываться.
no subject
Date: 2012-02-25 09:33 pm (UTC)no subject
Date: 2012-02-25 10:07 pm (UTC)Если быть кратким: для JVM это норма. Но взять биту порой хочется очень. Особливо, когда отлаживаешь AWT или FX какой.
no subject
Date: 2012-02-26 12:37 pm (UTC)Рецепт, однако :)
Date: 2012-02-26 08:36 am (UTC)no subject
Date: 2012-02-26 05:35 pm (UTC)В начале работы JVM выдяет одну область непрерывную памяти размером Xmx видимо с VirtualAlloc/MEM_RESERVE в потом видимо по мере необходимости делает коммит на каждый page fault.
no subject
Date: 2012-02-26 06:06 pm (UTC)