Неверный доступ к красной зоне стека из Java VM - PullRequest
14 голосов
/ 01 октября 2009

Я пытаюсь выяснить, что может вызвать эту ошибку в Java:

Invalid access of stack red zone 0x115ee0ed0 rip=0x114973900

Кто-нибудь когда-нибудь сталкивался с этим сообщением об ошибке? Это буквально убивает JVM, и все на этом останавливается.

В настоящее время я использую эту версию Java: (в OS X 10.6)

java version "1.6.0_15"
Java(TM) SE Runtime Environment (build 1.6.0_15-b03-219)
Java HotSpot(TM) 64-Bit Server VM (build 14.1-b02-90, mixed mode)

Все, что я ищу, - это какое-то объяснение и советы о том, как избежать повторного удара.

Заранее спасибо!

Ответы [ 4 ]

7 голосов
/ 20 ноября 2010

Я нашел такую ​​же ошибку на OSX сегодня. Отследил это до того, что составило stackOverlfow в entitybean

5 голосов
/ 01 октября 2009

Не глядя на ваш код, трудно сказать, что является причиной ошибки, но здесь есть объяснение красной зоны, а также несколько ссылок, в которых обсуждается проблема.

Каждый блок памяти выделен Приложение поставляется с ведущими и замыкающая "красная зона", которая является особой подпись в памяти незадолго до и сразу после памяти, выделенной для приложение. Если бы приложение было перезаписать за пределами этого региона, подпись красной зоны будет перезаписаны. Потом приложение падает, и вы получите это завершить, когда память вернется, и ОС может проверять красные зоны.

Эта проблема была обнаружена в Mac OSX, так что это может быть связано с проблемами загрузчика классов, когда класс не найден, но в Mac OSX он был зарегистрирован как доступ к красной зоне. Так что попробуйте с JDK 1.5 и посмотрите, сможете ли вы воспроизвести проблему.

http://osdir.com/ml/java.objectweb.asm/2007-07/msg00004.html

http://wiki.geneontology.org/index.php/OEWG_20090505

http://forums.oracle.com/forums/thread.jspa?threadID=429325

2 голосов
/ 08 июня 2012

В случае, если это полезно для кого-либо еще. Я столкнулся с этой ошибкой, потому что, если плохая строка передана в JSONArray.fromObject (jsonString);

Я бегу: Java-версия "1.6.0_29" Java (TM) SE Runtime Environment (сборка 1.6.0_29-b11-402-10M3527) Java HotSpot (TM) 64-разрядная серверная виртуальная машина (сборка 20.4-b02-402, смешанный режим) OSX 10.6.8

В самом начале у jsonString было нулевое значение, и ошибка была:

Неверный доступ к красной зоне стека 0x10d446ba0 rip = 0x10c384b87

Ошибка шины

Это полностью убило JVM.

Как только я понял, что это плохая строка json, исправить это было легко.

Надеюсь, это кому-нибудь поможет.

2 голосов
/ 06 сентября 2011

Как уже упоминалось, это похоже на переполнение стелс-стека. Увеличьте размер JVM вашего стека (-Xss). В моем случае переход от -Xss128k к -Xss1024k добился цели.

...