- PR -

VM停止でのスレッドダンプ情報

1
投稿者投稿内容
なんぺい
常連さん
会議室デビュー日: 2003/09/26
投稿数: 26
投稿日時: 2003-09-26 10:41
はじめて投稿します。
以下の環境で、あるVMが途中で止まってしまいます。
 OS:Linux 6.5
 java.vm.version:1.4.1_01-b01

スレッドダンプを採取したのですが、Propertiesロードの途中で止まっている
のは大筋分かるのですが、見方がよく分からないこともありなぜこのような
事象になるのかの想像もつかない状態です。
何でも結構ですのでご存じの方、ご教授ください。

以下、スレッドダンプ抜粋です。
Unexpected Signal : 11 occurred at PC=0x40218ADC
Function=__nw__5ChunkUiUi+0x6C
Library=/home2/jasmine/lib/j2sdk1.4.1_01/jre/lib/i386/client/libjvm.so

Current Java thread:
at java.io.BufferedReader.readLine(BufferedReader.java:288)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at java.util.Properties.load(Properties.java:192)
- locked <0x441fe370> (a java.util.Properties)
at com.XXXX.jasmine.common.service.TzServiceManager.startServices(TzServiceManager.java:165)
at com.XXXX.jasmine.server.common.TzServerMain.serverMain(TzServerMain.java:99)
- locked <0x446d5880> (a com.XXXX.jasmine.server.common.TzServerMain)
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2003-09-26 11:44
unibon です。こんにちわ。

引用:

なんぺいさんの書き込み (2003-09-26 10:41) より:
以下の環境で、あるVMが途中で止まってしまいます。
 OS:Linux 6.5
 java.vm.version:1.4.1_01-b01


1.4.1 の最新バージョンは 1.4.1_05 らしいので、
もし可能ならばバージョンアップされてはどうでしょうか。
ちなみに 1.4.2 は 1.4.2_01 が最新ですが。

引用:

なんぺいさんの書き込み (2003-09-26 10:41) より:
以下、スレッドダンプ抜粋です。
Unexpected Signal : 11 occurred at PC=0x40218ADC
Function=__nw__5ChunkUiUi+0x6C
Library=/home2/jasmine/lib/j2sdk1.4.1_01/jre/lib/i386/client/libjvm.so

Current Java thread:
at java.io.BufferedReader.readLine(BufferedReader.java:288)
at java.io.BufferedReader.readLine(BufferedReader.java:362)


これを見ると、native な部分で落ちているようなので、
疑わしそうなのは文字コード関係のような気もします。
とりあえず、切り分けのために、
特定の文字列を含んだプロパティファイルでのみ起きるのか、
たとえば英数字のみのプロパティファイルだと動くかどうか、
あたりを試されてはどうでしょうか。
というか、プロパティファイルはそもそも "8859_1" しか受け付けないらしいので、
"8859_1" 以外のコードが混じっていないかを確認されてはどうでしょうか
(native2ascii をかけないまま日本語とかが混じっていないかどうかなど)。
なんぺい
常連さん
会議室デビュー日: 2003/09/26
投稿数: 26
投稿日時: 2003-09-26 12:43
回答ありがとうございます。

> 1.4.1 の最新バージョンは 1.4.1_05 らしいので、
> もし可能ならばバージョンアップされてはどうでしょうか。
> ちなみに 1.4.2 は 1.4.2_01 が最新ですが。
最後の手段で考えてみます。

> これを見ると、native な部分で落ちているようなので、
> 疑わしそうなのは文字コード関係のような気もします。
> とりあえず、切り分けのために、
> 特定の文字列を含んだプロパティファイルでのみ起きるのか、
> たとえば英数字のみのプロパティファイルだと動くかどうか、
> あたりを試されてはどうでしょうか。
> というか、プロパティファイルはそもそも "8859_1" しか受け付けないらしいので、
> "8859_1" 以外のコードが混じっていないかを確認されてはどうでしょうか
> (native2ascii をかけないまま日本語とかが混じっていないかどうかなど)。
"8859_1" 以外のコードは混じっていません。
先ほど書き忘れましたが、この事象は発生したりしなかったりなのです。

何か他に思い当たらないでしょうか?

amnaky
ベテラン
会議室デビュー日: 2002/09/13
投稿数: 75
お住まい・勤務地: 東京
投稿日時: 2003-09-26 14:34
Bug Paradeに

Bug Id 4779653
Synopsis Linux j2sdk1.4.1_01 JVM crash Unexpected Signal : 11
Category hotspot:runtime_system
Reported Against 1.4.1
Release Fixed
State Closed, not reproducible
Submit Date Nov 15, 2002
Description

FULL PRODUCT VERSION :
java version "1.4.1_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01)
Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode)

というのが出てましたが似てますね。
未記入
大ベテラン
会議室デビュー日: 2003/06/28
投稿数: 219
投稿日時: 2003-09-26 15:15
環境が違う(j2sdk1.4)ので、あくまで参考ということで・・・。
Linuxカーネル2.4以前ですと稀にJVMがクラッシュすることがあるようです。
(j2sdk1.2〜j2sdk1.3では頻発していました。)
スタックサイズを2048にすることで回避できる場合があるようです。
ターミナルで以下のいずれかを実行します。
ulimit -s 2048
limit stacksize 2048

# 追記です。
# これで問題ないとすればunibon様のアドバイスの通りではないかと考えます。
# それから、8859_1でも例えば半角%が混じっているとダメとか、クラッシュする時に
# 共通する文字がないかどうか、がポイントかもしれません。

[ メッセージ編集済み 編集者: Ken-Lab 編集日時 2003-09-26 15:33 ]
なんぺい
常連さん
会議室デビュー日: 2003/09/26
投稿数: 26
投稿日時: 2003-09-26 15:36
amnakyさん こんにちは。
バグレポート見ました。
確かに似てますね。参考にします。
ありがとうございました。

引用:

amnakyさんの書き込み (2003-09-26 14:34) より:
Bug Paradeに

Bug Id 4779653
Synopsis Linux j2sdk1.4.1_01 JVM crash Unexpected Signal : 11
Category hotspot:runtime_system
Reported Against 1.4.1
Release Fixed
State Closed, not reproducible
Submit Date Nov 15, 2002
Description

FULL PRODUCT VERSION :
java version "1.4.1_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01)
Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode)

というのが出てましたが似てますね。

なんぺい
常連さん
会議室デビュー日: 2003/09/26
投稿数: 26
投稿日時: 2003-09-26 15:41
Ken-Labさん こんにちは。

Linuxカーネルのバージョンは2.2です。
ですが、スタックサイズは8192ですので、可能性があるのかなという所
でしょうか。
参考意見、ありがとうございまた。

引用:

Ken-Labさんの書き込み (2003-09-26 15:15) より:
環境が違う(j2sdk1.4)ので、あくまで参考ということで・・・。
Linuxカーネル2.4以前ですと稀にJVMがクラッシュすることがあるようです。
(j2sdk1.2〜j2sdk1.3では頻発していました。)
スタックサイズを2048にすることで回避できる場合があるようです。
ターミナルで以下のいずれかを実行します。
ulimit -s 2048
limit stacksize 2048

# 追記です。
# これで問題ないとすればunibon様のアドバイスの通りではないかと考えます。
# それから、8859_1でも例えば半角%が混じっているとダメとか、クラッシュする時に
# 共通する文字がないかどうか、がポイントかもしれません。

[ メッセージ編集済み 編集者: Ken-Lab 編集日時 2003-09-26 15:33 ]

1

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