[openrtm-users 00882] OpenRTM 1.0.0-RC1の不具合について
Tomoya Sakaguchi
sakaguchi @ sec.co.jp
2009年 7月 30日 (木) 23:04:49 JST
OpenRTM-aist開発者各位
セックの坂口です。
お世話になっております。
OpenRTM 1.0.0-RC1において、以下の不具合が見受けられましたので、
ご報告いたします。
1.PortBase継承クラスの利用時にメモリリーク
2.ポートの切断時の不具合
以下、詳細です。
----
1.PortBase継承クラスの利用時にメモリリーク
メモリリークは、PortBaseを継承したクラス(CorbaPortなど)利用時に
発生します。具体的には、PortBaseを継承したクラスのオブジェクトを
宣言し、オブジェクトのスコープを抜けても、そのオブジェクトのメモリが
解放されていないようです。
2.ポートの切断時の不具合
本不具合は、2点あります。
(1)InPortのConnectorProfileが残る
InPortを持つRTCと、OutPortを持つRTCを起動し、RtSystemEditorにより
ポートの接続を行い、OutPortを持つRTCを不正終了させた後、再起動して
再度ポート接続を行います。不正終了とは、右上の×ボタンの押下です。
このとき、InPortのConnectorProfileは最初に接続したときの情報が
残ってしまいます。
(2)write()呼び出しにより例外が発生
上記2RTCのポート接続をRtSystemEditorではなく、他アプリで
行います。このとき、ConnectorProfileのportsにはInPort、OutPortの
順に情報を代入し、connect()を実行します。
そして、InPortを持つRTCを不正終了させ、OutPortのwrite()メソッドを
呼び出すとCORBA::Exceptionが返されます。
ポート切断処理は、ポートの情報がConnectorProfileのportsに登録された
順番で行われます。InPortを持つRTCが不正終了し、write()の呼び出しに
失敗したとき、disconnect()が呼ばれます。このとき、OutPortにおいて、
ConnectorProfileのportsにInPortの情報があった場合、CORBA通信が発生
し、参照できないために例外が発生するものと思われます。
以上です。ご確認お願いいたします。
--
//////////////////////////////////////////////////////////////////////
株式会社セック 開発本部 第四開発部(宇宙先端システム)
〒150-0031 東京都渋谷区桜丘町 22-14 NESビル
TEL: 03-5458-7743 FAX: 03-5458-7726
URL: http://www.sec.co.jp
坂口 智哉 (Tomoya SAKAGUCHI)
E-mail: sakaguchi @ sec.co.jp
//////////////////////////////////////////////////////////////////////
======================================================================
この電子メールの内容および添付されている情報は、機密情報であると同時に、
宛先として意図した特定の受信者のみに送信いたしております。当方の誤送信
等により、心当たりのない方が受信された場合は、大変お手数ですが、受信さ
れましたメール内容は削除していただきますようお願いいたします。
======================================================================
openrtm-users メーリングリストの案内