SIGTERMの後にこのプロセスが終了しないのはなぜですか?

SIGTERMの後にこのプロセスが終了しないのはなぜですか?

中断されたようなプロセスがあります。

プロセスを再起動しようとすると、タイムアウトが発生します。

service logstash_server stop
timeout: run: logstash_server: (pid 11797) 839061s, want down, got TERM

tail -fログで実行しようとしましたが、残念ながら何も表示されません。kill -15そのプロセスも試しましたが、まだ中断されます。トップはゾンビプロセスとして表示しません。

先月、このようなことが3番目に発生したため、このプロセスがこの状態の「なぜ」なのかを把握しようとしています。

ファイル記述子とシステムログを確認しましたが、注目すべき内容はありませんでした。

ファイル記述子=>http://pastebin.com/90rDHhT4
システムログ出力 => http://pastebin.com/xBaMaL9Z

lsof | grep logstash=> の出力http://pastebin.com/gsSdPyg5

プロセスでstraceを実行すると、FUTEX_WAITのみが表示されます。

strace -p 11797
Process 11797 attached
futex(0x7f6d95d8e9d0, FUTEX_WAIT, 11811, NULL

送信する前に私ができる他の措置がありますかkill -9

修正する

開発者に請求書を送信します。問題は週に1回続きます。

https://github.com/elastic/logstash/issues/2992

ベストアンサー1

これらの問題を診断するためのツールは次のとおりです。

  1. lsof。開いたファイルが一覧表示され、ファイルが保留中のネットワーク共有にあることを確認できます。またはTCP接続を待ってください。など。
  2. strace。どのシステムコールがかかっているか、実際に何かをしていることを確認してください。
  3. デーモンのデバッグログオプション。通常、競合が発生する前に(通常起動時に)これらのオプションをオンにする必要があります。
  4. Rahulが述べたソフトウェアデバッグツール(Thread Dumpgdbまたはjdb他の関連ツール)。今ソフトウェアをデバッグしていますが、最終的に原因を特定する必要があるかもしれません。

lsofデフォルトでは、straceシステム/構成に問題がないか再確認してください。それに加えて、ソフトウェア開発者の助けが本当に必要です。

編集:更新によってはバグを報告したり、作成者に助けを求める必要があるかもしれません。周りに開発者がいない場合は見てください。

おすすめ記事