プロジェクト

全般

プロフィール

バグ #2065

完了

コンポーネント実行時のゾンビプロセスについて

kurihara さんが13年以上前に追加. 13年以上前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
-
開始日:
2011/04/22
期日:
進捗率:

100%

予定工数:

説明

静岡大 清水様からの報告

LinuxでRTCを動かし、psコマンドでプロセスの状態を眺めてい
て
気づいたのですが、コンソールからコンポーネントを起動する
と、
以下のようにゾンビプロセスができます。

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START
 TIME COMMAND
***  16971  0.2  0.3  42816  6148 pts/0    Sl+  17:54
 0:00 ./ConsoleOutComp
***  16976  0.0  0.0      0     0 pts/0    Z+   17:54
 0:00 [sh] <defunct>

kurihara さんが13年以上前に更新

  • ステータス新規 から 担当 に変更
  • 担当者kurihara にセット
  • 進捗率0 から 80 に変更
こちらで調査いたしましたところ、RTM側でpopen()に対するwait()もしくは、
waitpid()の処理が抜けていることが判明いたしました。

RTCでどのネットワークインターフェースを使用するかを判別するために、
”route”もしくは"ip"コマンドをpopen()を用いて実行してます。

OpenRTM-aist/src/lib/coil/posix/coil/Routing.cpp内のpclose(fp);
の後にwait(NULL);を入れる事で、こちらではゾンビプロセスは出なく
なりました。(暫定対応)
( #include <sys/wait.h> も必要です。)

wait()もしくは、waitpid()の処理を追加する必要があり。
どちらにするかは、要検討。

kurihara さんが13年以上前に更新

  • ステータス担当 から 解決 に変更
  • 進捗率80 から 100 に変更

r2071 にて修正。

n-ando さんが13年以上前に更新

  • ステータス解決 から 終了 に変更

確認しました。

他の形式にエクスポート: Atom PDF