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

Abnormal termination when RTM_ROOT does not exist. #327

Closed r-kurose closed 5 years ago

r-kurose commented 5 years ago

Describe the bug Windows で 環境変数 RTM_ROOT がからのとき、異常終了する。

To Reproduce Steps to reproduce the behavior:

  1. RTM をビルドする。
  2. RTM_ROOT をセットしない または set RTM_ROOT=
  3. 例えば ConsoleInComp を起動する

Reproducibility 100%

Expected behavior デフォルト設定のロードがされて、コンポーネントが動作すること。

Screenshots or Logs ログもなく終了する。

Environment

Additional context none

n-kawauchi commented 5 years ago

WindowsでのOpenRTM-aistに関するシステム環境変数は、インストーラmsiが設定します。 msiを使わずに環境を構築することは想定していないとの認識です。 cmakeでインストールした場合もシステム環境変数の設定が必要ということでしょうか?

r-kurose commented 5 years ago

本件は、本来の仕様であろう「rtc.confg がない場合はシステムのデフォルト設定で動く」ということが、 正しく実装されていないというバグです。

cmake での環境変数設定は不要です。 インストーラで設定されているのでこの現象を踏む人が少なかったということです。

Nobu19800 commented 5 years ago

解決済みのためissueをcloseします。

Nobu19800 commented 5 years ago

この問題は環境変数を取得するcoil::getenv関数がnullptrを返す場合にnullptrかどうかの判定をしていなかったことが問題のため、#331 で環境変数を取得できた場合はtrue、できなかった場合はfalseを返すように変更、該当箇所を修正した。このためissueを閉じました。