[openrtm-users 01179] Re: cleanupComponentで落ちる

kurihara shinji shinji.kurihara @ aist.go.jp
2010年 3月 24日 (水) 14:41:46 JST


株式会社セック 大和田様

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

> [原因]
> RTObject_impl::shutdown()が呼ばれると、
> m_finalized(Mutexとvector<RTObject_impl*>の構造体)というリストに、
> 削除対象のインスタンスのポインタがpush_backで登録される。
> cleanupComponent()が呼ばれたタイミングでインスタンスを削除するが、
> その後、登録したポインタが pop も delete もされていない。
詳細な調査をして頂き、有難うございます。
この問題に関しましては、早稲田大学の菅様よりご報告頂きましたManager
関連のバグ(メーリングリストの"[openrtm-users 01148])の修正の際に合わせ
て修正させて頂いております。
修正点としましては、Manager::cleanupComponent()の最後に
m_finalized.comps.clear()を追加しました。
なお、登録したポインタのdeleteは、Manager::deleteComponent()内から
呼び出しております、factory->destroy(comp);にて行っております。

Managerクラスにつきましては、他にもいくつか修正箇所がございまして、
メーリングリスト[openrtm-users 01149]で添付されていたパッチにて修正
済みです。
メーリングリスト01149にて添付されていたパッチと同じものを添付させて
頂いております。

お手数ですが、添付のパッチを当てるか、以下から最新のソースをチェック
アウトして頂けますでしょうか。

 http://openrtp.jp/openrtm/svn/OpenRTM-aist/branches/RELENG_1_0/OpenRTM-aist


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



On Wed, 24 Mar 2010 13:10:48 +0900
Tasuku Owada <oowada @ sec.co.jp> wrote:

> 産総研 安藤様
> 
> 株式会社セックの大和田です。
> お世話になっております。
> 
> 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
> 
> ======================================================================
> この電子メールの内容および添付されている情報は、機密情報であると同時に、
> 宛先として意図した特定の受信者のみに送信いたしております。当方の誤送信
> 等により、心当たりのない方が受信された場合は、大変お手数ですが、受信さ
> れましたメール内容は削除していただきますようお願いいたします。
> ======================================================================
> 


-- 
----------
栗原 眞二 <shinji.kurihara @ aist.go.jp>

独立行政法人産業技術総合研究所
  知能システム研究部門 統合知能研究グループ
  〒305-8568
  茨城県つくば市梅園1-1-1 中央第2

  TEL: 029-861-5956
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: Manager.cpp.diff
型:         text/x-diff
サイズ:     2288 バイト
説明:       無し
URL:        <http://www.openrtm.org/pipermail/openrtm-users/attachments/20100324/acd1bb53/attachment-0001.diff>


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