OpenRTM / OpenRTM-aist

OpenRTM-aist: RT-Middleware and OMG RTC implementation in C++ implemented by AIST
https://openrtm.org/
Other
19 stars 12 forks source link

モジュールのロードなどに時間がかかるとManagerがコンポーネント起動前に終了する #380

Closed Nobu19800 closed 3 years ago

Nobu19800 commented 5 years ago

Describe the bug manager.shutdown_autoを有効にした場合、Managerの初期化からコンポーネント起動までに時間がかかると勝手にManagerが終了しようとすることがある。

To Reproduce

  1. Init関数の実行に20秒程度かかるdllを用意する
  2. rtc.confで上記のdllをロードするように設定する。
  3. ConsoleInComp.exe等を実行する。
  4. 以下のように表示されRTCは起動しない。
omniORB: (0) 2019-04-19 11:12:38.122000: Error: the application attempted to invoke an operation on a nil pseudo-object reference.

Reproducibility 100%

Expected behavior

Screenshots or Logs

Environment

Additional context

n-ando commented 3 years ago

-o "manager.auto_shutdown_duration:30" のようにすれば変更できるので、ロードに時間がかかる場合はオプションで対処可能。そもそも、初期化に何十秒もかかるDLLは作り的によろしくない。

とりあえず、durationはデフォルトで10sだったが、WindowsなどではManagerの初期化、DLLのロードに時間がかかりがちなので、もう少し余裕をみて20sとした。