[openrtm-users 01178] cleanupComponentで落ちる

Tasuku Owada oowada @ sec.co.jp
2010年 3月 24日 (水) 13:10:48 JST


産総研 安藤様

株式会社セックの大和田です。
お世話になっております。

cleanupComponent()時にコンポーネントが強制終了してしまう
場合がありますので、ご報告させていただきます。
以下、詳細になります。

[現象]
cleanupComponent()でセグメントエラーで強制終了する。

[再現方法]
1. オプションを以下に設定する
  "logger.enable"            : YES
 "logger.log_level"         : TRACE
  "manager.naming_formats"   : "test.mgr"
  "manager.is_master"        : YES
  "manager.shutdown_auto"    : NO
  "manager.shutdowwn_onrtcs" : NO
  "timer.enable"             : YES
2. createComponent()でコンポーネントを生成
3. finalize()でコンポーネントを削除する

[原因]
RTObject_impl::shutdown()が呼ばれると、
m_finalized(Mutexとvector<RTObject_impl*>の構造体)というリストに、
削除対象のインスタンスのポインタがpush_backで登録される。
cleanupComponent()が呼ばれたタイミングでインスタンスを削除するが、
その後、登録したポインタが pop も delete もされていない。

ご確認お願い致します。

以上、宜しくお願い致します

-- 
大和田資(Owada Tasuku)
株式会社セック(SEC Co.,LTD) 開発本部 第四開発部
E-mail:oowada @ sec.co.jp

〒150-0031 渋谷区桜丘町22-14 NESビル
Tel:03-5458-7743  Fax:03-5458-7726

======================================================================
この電子メールの内容および添付されている情報は、機密情報であると同時に、
宛先として意図した特定の受信者のみに送信いたしております。当方の誤送信
等により、心当たりのない方が受信された場合は、大変お手数ですが、受信さ
れましたメール内容は削除していただきますようお願いいたします。
======================================================================



openrtm-users メーリングリストの案内