- PR -

スタックオーバーフローについて

1
投稿者投稿内容
まこ
会議室デビュー日: 2005/12/21
投稿数: 3
投稿日時: 2005-12-21 10:06
Javaプログラムのバッチを起動したところ以下のようなメッセージが出力されました。

-------------------------------------------------------
An irrecoverable stack overflow has occurred.

Unexpected Signal : 10 occurred at PC=0xE7F5B408
Function name=__vc__4DictCFPCv
Compiler thread crashed while compiling a method!

 :
 :

Local Time = Mon Dec 19 15:18:03 2005
Elapsed Time = 6
#
# HotSpot Virtual Machine Error : 10
# Please report this error to HP customer support.
#
# Java VM: Java HotSpot(TM) Server VM (1.3.1 1.3.1.16-_14_apr_2005_22_29 PA2.0 mixed mode)
#
# An error report file has been saved as hs_err_pid26788.log.
# Please refer to the file for further information.
#
-------------------------------------------------------

ログの内容からスタック不足と読み取れますが、どのような場合に
スタック不足となるのでしょうか?
単なるメモリ不足によるものなのか判断出来ずにいます。

環境は下記の通りです。
・HP-UX11.0
・JDK 1.3.1


unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2005-12-21 10:29
引用:

未記入さんの書き込み (2005-12-21 10:06) より:
ログの内容からスタック不足と読み取れますが、どのような場合に
スタック不足となるのでしょうか?
単なるメモリ不足によるものなのか判断出来ずにいます。


Java のプログラム上のスタックオーバーフローなら Java の例外としての StackOverflowException が発生するのですが、今回の場合はこれではなく、Java の実行環境の中の、Java のプログラマーが関知できない部分でのスタックオーバーフローなので、基本的にはプログラム上では対処できません。
HP の JDK のバグになるので、これのパッチやバージョンアップを検討すべきでしょう。

引用:

未記入さんの書き込み (2005-12-21 10:06) より:
An irrecoverable stack overflow has occurred.

Unexpected Signal : 10 occurred at PC=0xE7F5B408
Function name=__vc__4DictCFPCv
Compiler thread crashed while compiling a method!


ただ、このエラーメッセージを見ると、「Compiler thread crashed while compiling a method!」とあるので、もしかしたらコードを多少手直しすると、このエラーを回避できる可能性もあります。正しいのだけれど、奇天烈・奇想天外なコードを書いていると、JDK のバグに遭遇してしまうのかもしれません。クラスの中で、フィールドをたくさん使っていたり、巨大なメソッドがあったら分割するなどしてみてはどうでしょうか。

#以下、あとで追加。
根本的な解決ではないかもしれませんが、
http://docs.hp.com/ja/5323/JavaSDK-Release-Notes-1_3_1_13-jp.htm
あたりのオプションをいじってみることでしょうか。

[ メッセージ編集済み 編集者: unibon 編集日時 2005-12-21 10:34 ]
1

スキルアップ/キャリアアップ(JOB@IT)