- PR -

java.exeが落ちてしまいます

1
投稿者投稿内容
なんぺい
常連さん
会議室デビュー日: 2003/09/26
投稿数: 26
投稿日時: 2004-03-12 18:15
以下の環境で、あるVMが途中で止まってしまいます(exeptionもcoreもなく、
java.exeが終了する)。

WindowsXP SP1
j2sdk1.4.2_02
oracle9i

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

以下、その時のスレッドダンプです。
---------------------------------
Full thread dump Java HotSpot(TM) Server VM (1.4.2_02-b03 mixed mode):

"IdleTT9470766" daemon prio=5 tid=0x07417b10 nid=0xd44 in Object.wait() [852f000..852fdb4]
at java.lang.Object.wait(Native Method)
- waiting on <0x1771be28> (a java.lang.Object)
at java.lang.Object.wait(Object.java:429)
at jp.buildsystem.aladdin.server.transaction.TzTransactionThread.run(TzTransactionThread.java:165)
- locked <0x1771be28> (a java.lang.Object)

"IdleTT24964246" daemon prio=5 tid=0x07474418 nid=0xb48 in Object.wait() [84ef000..84efdb4]
at java.lang.Object.wait(Native Method)
- waiting on <0x1771be30> (a java.lang.Object)
at java.lang.Object.wait(Object.java:429)
at jp.buildsystem.aladdin.server.transaction.TzTransactionThread.run(TzTransactionThread.java:165)
- locked <0x1771be30> (a java.lang.Object)

"IdleTT27826089" daemon prio=5 tid=0x074742b8 nid=0xd60 in Object.wait() [84af000..84afdb4]
at java.lang.Object.wait(Native Method)
- waiting on <0x1771be38> (a java.lang.Object)
at java.lang.Object.wait(Object.java:429)
at jp.buildsystem.aladdin.server.transaction.TzTransactionThread.run(TzTransactionThread.java:165)
- locked <0x1771be38> (a java.lang.Object)

"IdleTT24244617" daemon prio=5 tid=0x07652e08 nid=0xd90 in Object.wait() [846f000..846fdb4]
at java.lang.Object.wait(Native Method)
- waiting on <0x1771be40> (a java.lang.Object)
at java.lang.Object.wait(Object.java:429)
at jp.buildsystem.aladdin.server.transaction.TzTransactionThread.run(TzTransactionThread.java:165)
- locked <0x1771be40> (a java.lang.Object)

"IdleTT13986615" daemon prio=5 tid=0x07b2de70 nid=0xd88 in Object.wait() [842f000..842fdb4]
at java.lang.Object.wait(Native Method)
- waiting on <0x1771be48> (a java.lang.Object)
at java.lang.Object.wait(Object.java:429)
at jp.buildsystem.aladdin.server.transaction.TzTransactionThread.run(TzTransactionThread.java:165)
- locked <0x1771be48> (a java.lang.Object)

"RMI TCP Connection(2)-10.0.3.20" daemon prio=5 tid=0x0790c850 nid=0xd70 runnable [83ef000..83efdb4]
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
- locked <0x15074348> (a java.io.BufferedInputStream)
at java.io.FilterInputStream.read(FilterInputStream.java:66)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:442)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:534)

"RMI ConnectionExpiration-[localhost:1099]" daemon prio=5 tid=0x07ae1b70 nid=0xc8c waiting on condition [83af000..83afdb4]
at java.lang.Thread.sleep(Native Method)
at sun.rmi.transport.tcp.TCPChannel$Reaper.run(TCPChannel.java:447)
at java.lang.Thread.run(Thread.java:534)

"RMI LeaseChecker" daemon prio=5 tid=0x079e9d10 nid=0xd6c waiting on condition [836f000..836fdb4]
at java.lang.Thread.sleep(Native Method)
at sun.rmi.transport.DGCImpl$LeaseChecker.run(DGCImpl.java:307)
at java.lang.Thread.run(Thread.java:534)

"RMI TCP Connection(1)-10.0.3.21" daemon prio=5 tid=0x07b34688 nid=0xd68 runnable [832f000..832fdb4]
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:183)
at java.io.BufferedInputStream.read(BufferedInputStream.java:201)
- locked <0x15074c90> (a java.io.BufferedInputStream)
at java.io.FilterInputStream.read(FilterInputStream.java:66)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:442)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:534)

"Thread-5" prio=5 tid=0x07653228 nid=0xc78 in Object.wait() [82ef000..82efdb4]
at java.lang.Object.wait(Native Method)
- waiting on <0x14ebb250> (a java.lang.Object)
at java.lang.Object.wait(Object.java:429)
at jp.buildsystem.aladdin.server.transaction.TzRemoteTransactionProviderImpl$MainLoop.run(TzRemoteTransactionProviderImpl.java:237)
- locked <0x14ebb250> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:534)

"GC Daemon" daemon prio=2 tid=0x078a5598 nid=0xd5c in Object.wait() [7fef000..7fefdb4]
at java.lang.Object.wait(Native Method)
- waiting on <0x14eba558> (a sun.misc.GC$LatencyLock)
at sun.misc.GC$Daemon.run(GC.java:100)
- locked <0x14eba558> (a sun.misc.GC$LatencyLock)

"RMI Reaper" prio=5 tid=0x078a5348 nid=0xd58 in Object.wait() [7faf000..7fafdb4]
at java.lang.Object.wait(Native Method)
- waiting on <0x14eb99c8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
- locked <0x14eb99c8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:330)
at java.lang.Thread.run(Thread.java:534)

"Thread-4" daemon prio=5 tid=0x071048f8 nid=0xcc4 in Object.wait() [7f6f000..7f6fdb4]
at java.lang.Object.wait(Native Method)
- waiting on <0x14eb9d50> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop(Timer.java:429)
- locked <0x14eb9d50> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:382)

"RMI TCP Accept-0" daemon prio=5 tid=0x075fac40 nid=0xce0 runnable [7f2f000..7f2fdb4]
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
- locked <0x14eb9a98> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:334)
at java.lang.Thread.run(Thread.java:534)

"Thread-3" daemon prio=5 tid=0x0710bd38 nid=0xd20 in Object.wait() [7eef000..7eefdb4]
at java.lang.Object.wait(Native Method)
- waiting on <0x14ea3510> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop(Timer.java:429)
- locked <0x14ea3510> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:382)

"Thread-1" daemon prio=5 tid=0x07040d10 nid=0x6d0 in Object.wait() [726f000..726fdb4]
at java.lang.Object.wait(Native Method)
- waiting on <0x14de4ff8> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop(Timer.java:429)
- locked <0x14de4ff8> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:382)

"Signal Dispatcher" daemon prio=10 tid=0x00a55a80 nid=0xc30 waiting on condition [0..0]

"JDWP Event Helper Thread" daemon prio=5 tid=0x00a6e820 nid=0xd14 runnable [0..0]

"JDWP Transport Listener: dt_socket" daemon prio=5 tid=0x00a6dde0 nid=0xd10 runnable [0..0]

"Finalizer" daemon prio=9 tid=0x00a53918 nid=0xc88 in Object.wait() [2e1f000..2e1fdb4]
at java.lang.Object.wait(Native Method)
- waiting on <0x14dd0378> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
- locked <0x14dd0378> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0x009f27a0 nid=0xd04 in Object.wait() [2ddf000..2ddfdb4]
at java.lang.Object.wait(Native Method)
- waiting on <0x14dd02a0> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:429)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
- locked <0x14dd02a0> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=0x00035818 nid=0xcfc runnable [7f000..7fc00]
at sun.io.ByteToCharDoubleByte.convert(ByteToCharDoubleByte.java:133)
at sun.nio.cs.StreamDecoder$ConverterSD.convertInto(StreamDecoder.java:247)
at sun.nio.cs.StreamDecoder$ConverterSD.implRead(StreamDecoder.java:297)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:182)
- locked <0x166d9668> (a java.io.InputStreamReader)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
- locked <0x166d9668> (a java.io.InputStreamReader)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at com.takazono.sl4j.r2.searcher.onmem.loader.csv.TzSl4jCsvLoaderBase.load(TzSl4jCsvLoaderBase.java:79)
at com.takazono.sl4j.r2.searcher.onmem.TzSl4jOnmemSearcherBase.init(TzSl4jOnmemSearcherBase.java:61)
- locked <0x1651e108> (a com.takazono.sl4j.r2.searcher.onmem.TzSl4jKwdIdxL1OnmemSearcher)
at com.takazono.sl4j.r2.core.TzSl4jCore.initSearchers(TzSl4jCore.java:226)
- locked <0x3c216de0> (a java.lang.Class)
at com.takazono.sl4j.r2.core.TzSl4jCore.<init>(TzSl4jCore.java:185)
at com.takazono.sl4j.r2.TzSl4j.<init>(TzSl4j.java:76)
at jp.buildsystem.sakura.common.tpr.SkSl4jServer.startService(SkSl4jServer.java:123)
at jp.buildsystem.aladdin.common.service.TzServiceManager.startServices(TzServiceManager.java:181)
at jp.buildsystem.aladdin.server.common.TzServerMain.serverMain(TzServerMain.java:99)
- locked <0x14de29d8> (a jp.buildsystem.aladdin.server.common.TzServerMain)
at jp.buildsystem.aladdin.server.common.TzServerMain.main(TzServerMain.java:183)

"VM Thread" prio=5 tid=0x009f1d88 nid=0xd00 runnable

"VM Periodic Task Thread" prio=10 tid=0x00a5a190 nid=0xf80 waiting on condition
"Suspend Checker Thread" prio=10 tid=0x00a55000 nid=0xc98 runnable
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-03-12 19:16
VM が落ちたらスレッドダンプはとれないです。落ちたタイミングで何かメッセージがでていないですか?

それとも落ちたのではなくハングでしょうか?

特に固まっている様子はありませんね。スレッドダンプの見方は以下のページがよくかかれています。
http://www1.jpn.hp.com/products/software/development/java/tips/tune/p23.html

複数回取得して動きを確認すると良いでしょう。

↓手前味噌ですがスレッドダンプ解析ツールです。
http://yusuke.homeip.net/myportal/ThreadAnalyzer.jnlp
アクセスすると JavaWebStart で自動的にインストール/起動できます。標準出力をリダイレクトしてファイルに落としたらドラッグ&ドロップで解析できます。
なんぺい
常連さん
会議室デビュー日: 2003/09/26
投稿数: 26
投稿日時: 2004-03-15 10:48
インギさん、早速のレスありがとうございました。
何分、よく分からない状態で質問を投稿しました。

>VM が落ちたらスレッドダンプはとれないです。落ちたタイミングで何かメッセージが
>でていないですか?
ログを採取しているのですが、若干怪しげな情報がありましたのでそこから追ってみようかと思います。

>それとも落ちたのではなくハングでしょうか?
ハングではなく、VM自体が終了しています。

>特に固まっている様子はありませんね。スレッドダンプの見方は以下のページがよくか
>かれています。
ありがとうございます。参考にさせて頂きます。

>↓手前味噌ですがスレッドダンプ解析ツールです。
是非、使用させて頂きたいと思っています。

またよろしくお願いします。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2004-03-17 13:17
unibon です。こんにちわ。
#遅い回答ですが。

引用:

なんぺいさんの書き込み (2004-03-15 10:48) より:
>VM が落ちたらスレッドダンプはとれないです。落ちたタイミングで何かメッセージが
>でていないですか?
ログを採取しているのですが、若干怪しげな情報がありましたのでそこから追ってみようかと思います。

>それとも落ちたのではなくハングでしょうか?
ハングではなく、VM自体が終了しています。


(ちなみに、メモリ例外などではカレントスレッドだけ(メモリ例外を起こしたそのひとつのスレッドだけ)ならば、スタックトレースが出たかもしれません。しかし、この場合でも、すべてのスレッドの分はダンプされなかったような気がします。)

本当に終了しているのでしょうか。無限ループになっているのではないでしょうか。
こう思うのも、

引用:

なんぺいさんの書き込み (2004-03-12 18:15) より:
以下の環境で、あるVMが途中で止まってしまいます(exeptionもcoreもなく、
java.exeが終了する)。

WindowsXP SP1
j2sdk1.4.2_02
oracle9i

"main" prio=5 tid=0x00035818 nid=0xcfc runnable [7f000..7fc00]
at sun.io.ByteToCharDoubleByte.convert(ByteToCharDoubleByte.java:133)
at sun.nio.cs.StreamDecoder$ConverterSD.convertInto(StreamDecoder.java:247)
at sun.nio.cs.StreamDecoder$ConverterSD.implRead(StreamDecoder.java:297)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:182)


を拝見すると、
http://java.sun.com/j2se/1.4.2/ja/ReleaseNotes.html
の中の
4879522 退行: ISO2022_JP$Decoder.decodeArrayLoop() で無限ループ
http://developer.java.sun.com/developer/bugParade/bugs/4879522.html
に似ているようだからです。
ただ、クラス名やメソッド名が違いますね。
なんぺい
常連さん
会議室デビュー日: 2003/09/26
投稿数: 26
投稿日時: 2004-03-19 17:41
unibonさん こんにちは。
色々な可能性のご指摘ありがとうございました。
ちなみに、無限ループではありませんでした。

怪しげなExceptionが何度か発生していたのでこれを修正した所、事象が
でなくなりました。(何の因果関係があるのかは分かりませんが)
Exceptionが発生すると必ずではなかったし、VM自身が落ちない事もあった
ため、現状においても根本的な原因はよく分かっていません。

以上
1

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