abrtがプロセスの問題に関する情報を収集するのに役立ちますか?

abrtがプロセスの問題に関する情報を収集するのに役立ちますか?

私たちには、Javaプロセス(xalanまたはfop変換)が中断されることがあるシステム(Red Hat Enterprise Linux Serverバージョン6.6)があります。

これらのプロセスはそのままで完了しません。

/var/log/messages で次のエントリが見つかりました。

abrt[33580]: Saved core dump of pid 48556 (/usr/bin/jdk1.6.0_06/bin/java) to /var/spool/abrt/ccpp-2017-06-01-08:52:40-48556 (341344256 bytes)
abrtd: Directory 'ccpp-2017-06-01-08:52:40-48556' creation detected
abrtd: Executable '/usr/bin/jdk1.6.0_06/bin/java' doesn't belong to any package and ProcessUnpackaged is set to 'no'
abrtd: 'post-create' on '/var/spool/abrt/ccpp-2017-06-01-08:52:40-48556' exited with 1
abrtd: Deleting problem directory '/var/spool/abrt/ccpp-2017-06-01-08:52:40-48556'
  • abrtを使用して問題に関する追加情報を収集できますか?
  • ProcessUnpackagedをyesに変更すると役に立ちますか?

答え1

プロセスがaborted1 つであるか、coredumpメモリに存在しなくなります。そのため、プロセスが停止したと思われる場合は、pidプロセス情報を取得し、次のコマンドを実行します。

strace -fp <pid> -o strace.out- プロセスが中断される可能性がある場所を示すシステムコールに役立ちます(出力ファイルstrace.outを参照)。

pstree -aAp <pid>- 現在のプログラム実行行を表示します。

/usr/bin/gdb -q -p <pid> -- to see the current state of the process.

利用可能なものがあれば、coredumpそれを使用してgdb分析できます。

/usr/bin/gdb <java_binary_path> <coredump_path>

gdbコンソールでは以下を使用します。

(gdb) bt

(gdb) thread apply all bt

関連情報