[openrtm-users 02772] deleteComponentで致命的なエラー
服部静子
s.hattori @ aist.go.jp
2013年 3月 28日 (木) 11:39:10 JST
産総研の服部です。
RTC::Managerで、createComponentしたコンポーネントをdeleteComponetすると、
Windowsの致命的なエラーが発生してしまいます。
具体的には、
Windows7環境で、OpenRTM-aist-1.1.0-RELEASE-win32.zipをダウンロードしてVC++10でビルドしました。
ConsoleOutComp.cppのコードを
int main (int argc, char** argv)
{
...................
// run the manager in blocking mode
// runManager(false) is the default.
//manager->runManager();
// If you want to run the manager in non-blocking mode, do like this
manager->runManager(true);
manager->deleteComponent("ConsoleOut0");
return 0;
}
のように変更して、実行するとエラーが起きます。
DebugモードにしてdeleteComponentを追いかけてみたところ、Componentを削除した後、managerのshutdownが呼ばれ、
shutdownNaming()が実行されたときに、
omniORB: ERROR -- A servant has been deleted that is still activated.
id: root<0> (active)
omniORB: Assertion failed. This indicates a bug in the application
using omniORB, or maybe in omniORB itself.
file: omniServant.cc
line: 223
info: activation_found
というエラーが表示されます。その後、再度shutdownNaming()が実行され、そこで致命的なエラーを起こします。
コンポーネントを削除する手順が間違っているのでしょうか?アドバイスをお願いします。
More information about the openrtm-users
mailing list