[openrtm-users 02891] Re: OS X においてマネージャ初期化時に固まる症状

Shin'ichiro Nakaoka s.nakaoka @ aist.go.jp
2013年 8月 26日 (月) 22:12:07 JST


すみません、訂正です。

> 1.1.0-RELEASEのsrc/lib/coil/posix/coil/Routing.cppにおいて、
> 108行と107行にある
> 
> wait(NULL)

は、108行と167行でした。


(08/26/13 22:08), 中岡 慎一郎 wrote:
> 
> 産総研の中岡です。
> 
> 度々すみません、Mac OS X (Lion) においてマネージャ初期化時に固まるという
> 不可解な症状に遭遇しましたので、報告させてください。
> 
> 状況としては、Choreonoidにおいて起動時にRTC::Manager::init()を行なってお
> り、ある条件下でこの関数が固まります。
> 
> 固まる箇所をたどっていくと、
> 
> Manager::initNaming() -
> NamingManager::registerNameServer()-
> NamingManager::createNamingObj() -
> NamingOnCorba::NamingOnCorba() -
> coil::dest_to_endpoint()
> 
> ときて、ここから呼ばれる
> coil::find_dest_ifname() と
> coil::ifname_to_ipaddr() の関数です。
> 
> 1.1.0-RELEASEのsrc/lib/coil/posix/coil/Routing.cppにおいて、
> 108行と107行にある
> 
> wait(NULL)
> 
> でブロックしたまま帰ってきていません。
> 
> ある条件というのは、マネージャの初期化を行なっているプロセスから、
> マネージャ初期化の前にネームサーバのコマンドを(別プロセスとして)起動し
> ているということです。同じコマンドをあらかじめ他のプロセスから起動してあ
> る場合は、問題なく動くのですが…。また、この症状が出るのはOS Xだけで、
> WindowsやLinuxでは同じ事を行なっても問題なく動いています。
> 
> そして、OS Xでも上記の2つのwait(NULL)をどちらもコメントアウトすると、固
> まらなくなり、その後も特に問題なく動いているように見えます。
> 
> ちなみにネームサーバのコマンドはomniNamesを参考に自前で実装した
> Choreonoid付属のものです。WindowsやMacではネームサーバがデーモンとして自
> 動では起動しないのが普通だと思いますが、そのような場合でもChoreonoidを起
> 動するだけで簡単にシミュレーションを行えるように、この機能をつけています。
> 
> 以上のような症状なのですが、今後のリリースで上記のwait(NULL)を除去しても
> らうというのは問題ありますでしょうか?
> 


-- 
Shin'ichiro Nakaoka <s.nakaoka @ aist.go.jp>


More information about the openrtm-users mailing list