最近、jvisualvmとjstackを使用して Java 8u20 tomcat コア ダンプを分析しました。ほとんどのスレッドでは、完全なスタック トレースを確認できます。
Thread 21234: (state = BLOCKED)
- sun.misc.Unsafe.park(boolean, long) ...
しかし、現在のスレッド (コア ダンプの原因となっているスレッド) にはスタック トレースはなく、表示されるのは次のとおりです。
Thread 28888: (state = IN_JAVA)
の次の説明を見つけましたIN_JAVA。
NEW:起動中、つまり初期化中です。IN_NATIVE: ネイティブ コードで実行しています。IN_NATIVE_TRANS: 対応する遷移状態。IN_VM: VM で実行中。IN_VM_TRANS: 対応する遷移状態。IN_JAVA: Java またはスタブ コードで実行します。BLOCKED: vm でブロックされました。BLOCKED_TRANS: 対応する遷移状態。
ログには、VM ネイティブ コードを呼び出している Javaのhe_errメソッドが示されていますが、残りの Java サイド スタックに関心があります。
これがなぜなのかについてのアイデアは大歓迎です!