[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 メーリングリストの案内