問題タブ [jstack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
33255 参照

java - サーバーでjstackが機能しない

サーバーで jstack を使用して、Java アプリがデッドロックしているかどうかを検出します。Linux サーバーの 1 つで動作していません。O/S のバージョンは次のとおりだと思います。

サーバーで実行されている Java バージョン:

私がしようとすると:

私は得る:

私がしようとすると:

私は得る:

誰がこれを引き起こしているのか知っていますか?

0 投票する
1 に答える
5691 参照

java - jstack を使用してブロッカー スレッドを見つける方法

jstack を使用して、実行中のスレッドのツリーを取得しました。

  1. 次の Thread.State の意味は何ですか:

    • 待っている
    • TIMED_WAITING
    • 実行可能
  2. tid と nid とはどういう意味ですか?

  3. スレッドのタイトルは

    「イベントバッチ処理 (Spring UAA/1.0.2)」デーモン prio=10 tid=0x0000000041e27800 nid=0x363b 条件 [0x00007f9a89267000] で待機中

    • 「waiting-on-condition」アドレスのソースコード行に移動するにはどうすればよいですか
0 投票する
11 に答える
49875 参照

java - jstack - 既知のファイルは安全ではありません

32 ビットの Oracle Java 1.6.0 を使用して、x86_64 CentOS 5.7 で tomcat 5.5 を実行しています。

Tomcat が使用する JVM プロセスの pid は 6421 です。Tomcat は正常に動作しています。

実行するjstackと、次のように失敗します。

妥当な出力を得るには、強制オプションを使用する必要があります。

質問は次のとおりです。

  1. 「well-known file is not secure」というエラー メッセージはどういう意味ですか?
  2. 「よく知られている」ファイルとは何ですか?
  3. jstack強制オプションなしでコマンドが機能しないのはなぜ/いつですか?

前もって感謝します。

0 投票する
1 に答える
3546 参照

java - Java で 100% の CPU

jboss で実行されているサーバー (.war) が 100% の CPU になることがあります。jstack でダンプを作成しましたが、何が 100% の CPU を使用しているのかを確認できません。jstack -F は成功しないので、フラグなしで実行しました。まだまだあるけど全部載せきれない…

考えはありますが、これが正しいかどうかはわかりません: 0x00002aaab58c0900 のすべてのロックが原因でしょうか?

次のような実行可能なものがいくつかあります

これがダンプの始まりです

0 投票する
2 に答える
1327 参照

java - Javaスレッドダンプのprio値は、Linuxの実際のスレッドの優先度と一致しませんか?

Java コード内でスレッドの優先順位を使用するつもりです。アプリケーションは、私の Linux システムで実行されます。

Web を読んだ後、次のコマンドでテスト アプリケーションを開始します。

test-application は、次の 2 つのクラスで構成されます。

プログラムに 1 分間カウントさせると (NUM_MILLIS_TO_COUNT_FOR=1 60 1000)、次の出力が得られます。

この出力によると、優先順位は予想どおりの影響を与えているようです! しかし、「jstack」または「kill -s QUIT」を使用してスレッド ダンプを生成すると、次の出力が得られます。これは、すべてのスレッドが同じ優先度 (prio=10) であることを意味します。

Windows マシンで同じことを行うと、ここで見つけた優先順位のマッピングによると、prio の値は正しい値になります。

それで、これは jstack のバグですか、それとも何か間違っていますか?

「top | grep java」を実行すると、次のようになります。

これは、メイン スレッドの優先度が 20 であることを意味しますが、"top -H | grep java" を実行すると、次の出力が得られます。

これは、Java スレッドの優先順位が実際に OS スレッドの優先順位に影響を与えることを示しています。

しかし、prio=10 で jstack の値が 10 になるのはどこからでしょうか? それは単なる任意の値ですか?

0 投票する
1 に答える
5417 参照

linux - プロセスのスレッド ダンプ ログを収集する UNIX スクリプト

HashMap.put 関数に関する問題を生成しようとしています。100 を超えるスレッドを実行するテスト コードを作成しました。jstack または kill を使用して、プロセスの特定のスレッドのスレッド ダンプを取得できます。 .問題は、スレッド ダンプをすぐにキャプチャできないことです。プロセスが終了するまで、すべてのスレッド ダンプをファイルに記録したいのですが、これを行うために書き込むことができる Linux コマンドまたはシェル スクリプトはありますか?

0 投票する
1 に答える
2157 参照

java - jstackスレッドダンプを作成できません-スレッド745:(状態=ブロック済み)スタックのウォーク中にエラーが発生しました)

Linuxで$JAVA_HOME/ bin/jstackを使用してJBoss4.2.3.GAのスレッドダンプを生成すると...次のエラーが発生します。

なぜこれが起こっているのか考えはありますか?誰かが同時にヒープダンプを実行しているのではないかと思いました。他のアイデアはありますか?

0 投票する
2 に答える
22506 参照

java - jstack -F は実行中の Java プロセスにどのように影響しますか?

使用している Java Web アプリケーション (Jenkins) が応答しなくなる問題を診断しようとしています。jstackフラグなしで実行-Fしても何も得られませんが、スレッド ダンプを強制するためにフラグを入れると、結果が得られるだけでなく、アプリケーションが応答を開始し、最終的には何も起こらなかったかのように続行します。再び応答を停止します。

jstack -F実行中の JVM に影響を与え、応答しないアプリケーションが再び応答を開始する原因となる flag の機能は何ですか?

0 投票する
1 に答える
3265 参照

java - jstack 出力 - Java Thread.getId の tid を取得

java-thread-id-and-stack-trace のようなスレッド ID の取得に関する既存の質問を確認しました。

しかし、私は単純に見えるものを理解することができません。Javaでスレッドを停止するJSPツールを作りたいです。

一般的には悪い考えであることはわかっていますが、JBoss のハード化を引き起こす環境で JConsole を使用できないため、これが必要です。

私の質問は、サンプルのjstack出力を取ることです:

  1. Event Batch Processing (Spring UAA/1.0.2)" daemon prio=10 tid=0x0000000041e27800 nid=0x363b waiting on condition [0x00007f9a89267000] これから、どの id が でthread.getId()定義されているようになりjava.lang.Threadますか? この行の最後のトークンは何[0x00007f9a89267000]ですか?
  2. を Java に変換するにはどうすればよいですか (Java コードは素晴らしいでしょうhex) long
  3. これがうまくいかなかった理由を教えてください ->tid=終わりのないループでハングしたスレッドの jstack から 16 進数を取得しました。次に、これを行いました:

    /li>

この出力は見つかりませんでした。入力パラメーターは tid でした。Windows 7 の calc、プログラマー モード (16 進数) に貼り付けてから、[12 月] をクリックしました。

アップデート:

私のテスト コードでは、無限にループする JSP を作成し、10000 回の反復ごとに 1 つの文字を出力し、jstack を実行して次の結果を得ました。

jstack を数回実行し、毎回このエントリを取得しました。

しかし、スレッドを使用して JSP を実行するとid = 000000000d4eb000、それが見つかりません。アプリ コンテナーがスレッドに一意の名前を付けているため、スレッドを見つけることができ、印刷すると次のようになります。

私は得る:

0x000000000d4eb000では、内部 JVM が として 認識しているように、どの jstack が明らかに識別しているの1389 hex :56dでしょうか? 最後に、名前で検索してスレッドを停止するように JSP を変更しました。幸いなことに、スレッド名はすべて異なります。しかし、これはバグですか? Windows、JBoss 4.2、Java 1.6 update 32 を実行していますか?