[openrtm-users 00905] ver 0.4.2におけるnon-blocking modeの不具合(?)

2 個の投稿 / 0 new
最終投稿
root
オフライン
Last seen: 7時間 37分 前
登録日: 2009-06-23 14:31
[openrtm-users 00905] ver 0.4.2におけるnon-blocking modeの不具合(?)

産総研の松坂です。

現在、OpenRTM-aist ver 0.4.2を使ってnon-blocking modeでマネージャを動作させる
スタンドアロンコンポーネントを作っているのですが、コンポーネント終了時にCORBA
エラーが出力されたり、connectorが掃除されずにpublisher側にエラーが出る問題に遭遇
しています。

コンポーネントを終了させた後にログを見てみると、
Aug 04 14:30:45 manager Manager::shutdownORB()
という行が複数出力されており、おかしいなと思い原因を探ったところ、Manager.hで
定義されるクラスOrbRunnerのメンバ関数svcで
m_pORB->run();
Manager::instance().shutdown();
となっている記述を見つけました。

non-blocking modeでマネージャを動作させるとOrbRunnerがスレッドとして動作すると
思うのですが、それをシャットダウンするときに、まず親プロセスのマネージャから
関数shutdownComponents内のm_pORB->exit()が呼び出されます。するとm_pORBが終了する
ことで上記の関数svcに記述された2行目のシャットダウンプロセスがOrbRunnerのスレッド上でも
始まってしまい、複数のシャットダウンプロセスが並進することで、不具合が発生しているのでは
ないかと思います。

推測違い or 既知の問題でしたらすいません。

ver 1.0.0で発生しない問題であれば影響は少ないですが、ver 0.4.2もまだかなり現役だと思います
ので対処方法を教えてください。

未定義
root
オフライン
Last seen: 7時間 37分 前
登録日: 2009-06-23 14:31
[openrtm-users 00907] ver 0.4.2におけるnon-blocking modeの不具合(?)

松坂様

お世話になっております。
産総研 栗原です。

ver 0.4.2におけるnon-blocking modeの不具合に関してご報告を頂き、
有難うございます。

ご指摘の通り、non-blocking modeの場合、Manager::shutdown()が複数
回呼ばれてしまう問題がございました。

ver 1.0.0では、OrbRunnerでのManager::shutdown()呼び出しは行われ
ないようになっておりますので、ver 0.4.2でも、OrbRunnerでの
Manager::shutdown()呼び出しを行わないように修正して頂けますでしょ
うか。

お手数をお掛けしまして申し訳ございません。
宜しくお願い致します。

On Tue, 4 Aug 2009 15:35:13 +0900
Yosuke Matsusaka wrote:

> 産総研の松坂です。
>
> 現在、OpenRTM-aist ver 0.4.2を使ってnon-blocking modeでマネージャを動作させる
> スタンドアロンコンポーネントを作っているのですが、コンポーネント終了時にCORBA
> エラーが出力されたり、connectorが掃除されずにpublisher側にエラーが出る問題に遭遇
> しています。
>
> コンポーネントを終了させた後にログを見てみると、
> Aug 04 14:30:45 manager Manager::shutdownORB()
> という行が複数出力されており、おかしいなと思い原因を探ったところ、Manager.hで
> 定義されるクラスOrbRunnerのメンバ関数svcで
> m_pORB->run();
> Manager::instance().shutdown();
> となっている記述を見つけました。
>
> non-blocking modeでマネージャを動作させるとOrbRunnerがスレッドとして動作すると
> 思うのですが、それをシャットダウンするときに、まず親プロセスのマネージャから
> 関数shutdownComponents内のm_pORB->exit()が呼び出されます。するとm_pORBが終了する
> ことで上記の関数svcに記述された2行目のシャットダウンプロセスがOrbRunnerのスレッド上でも
> 始まってしまい、複数のシャットダウンプロセスが並進することで、不具合が発生しているのでは
> ないかと思います。
>
> 推測違い or 既知の問題でしたらすいません。
>
> ver 1.0.0で発生しない問題であれば影響は少ないですが、ver 0.4.2もまだかなり現役だと思います
> ので対処方法を教えてください。
>

コメントを投稿するにはログインまたはユーザー登録を行ってください

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2160
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

モーションエディタ/シミュレータ

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク