How to avoid trying to load the dynamic lib TAO_IORTable.so
We have a process with a statically linked TAO_IORTable.a library. Does anyone know how to prevent the loading of the TAO_IORTable.so, i.e. using the static resource of this table w/o checking upfront whether the resource can be loaded dynamically?
Debug output (see DLL_Handle::open ("libTAO_IORTable.so ...):
...
ACE (30564|139726548043840) DSB::instance, repo=0x3f00b00, name=TAO_IORTable type=0x3f187e0 => 0x3f187a0
ACE (30564|139726548043840) SG::process_directive, repo=0x3f00b00 - dynamic TAO_IORTable Service_Object * TAO_IORTable:_make_TAO_Table_Adapter_Factory() ""
ACE (30564|139726548043840) SG::process_directives_i, repo=0x3f00b00 - dynamic TAO_IORTable Service_Object * TAO_IORTable:_make_TAO_Table_Adapter_Factory() ""
ACE (30564|139726548043840) - SCG:<ctor=0x7ffe44ec7dd0> - config=0x3f076c0 repo=0x3f00b00 superceded by repo=0x3f00b00
ACE (30564|139726548043840) SG::initialize - repo=0x3f00b00, name=TAO_IORTable - looking up in the repo
ACE (30564|139726548043840) STDG::<ctor>, repo=0x3f00b00, name=TAO_IORTable - begining at [50]
ACE (30564|139726548043840) LN::open_dll - path=TAO_IORTable
ACE (30564|139726548043840) DLL_Handle::open ("libTAO_IORTable.so", 0x101) -> failed: libTAO_IORTable.so: cannot open shared object file: No such file or directory
ACE (30564|139726548043840) DLL_Handle::open ("TAO_IORTable.so", 0x101) -> failed: TAO_IORTable.so: cannot open shared object file: No such file or directory
ACE (30564|139726548043840) DLL_Handle::open ("TAO_IORTable", 0x101) -> failed: TAO_IORTable: cannot open shared object file: No such file or directory
ACE (30564|139726548043840) DLL_Handle::open ("TAO_IORTable"): Invalid handle error: no error
ACE (30564|139726548043840) DLL_Manager::open_dll: Could not open dll TAO_IORTable.
ACE (30564|139726548043840) DLL_Handle::close - TAO_IORTable (handle=0, refcount=0)
ACE (30564|139726548043840) LN::open_dll - Failed to open TAO_IORTable: no error reported
ACE (30564|139726548043840) Unable to create service object for TAO_IORTable ACE (30564|139726548043840) STDG::<dtor>, repo=0x3f00b00 [29], name=TAO_IORTable - updating dependents [50 - 50)
ACE (30564|139726548043840) STDG::<dtor>, repo=0x3f00b00 [29], name=TAO_IORTable - loaded (type=0x3f18840, impl=0x3f187e0, object=0x3f187a0, active=0)
ACE (30564|139726548043840) Dynamic_Node::apply - Did dynamic on TAO_IORTable (yyerrno=1)
ACE (30564|139726548043840) SCG:<dtor=0x7ffe44ec7dd0> - new repo=0x3f00b00 ACE (30564|139726548043840) DSB::instance, repo=0x3f00b00, name=TAO_IORTable type=0x3f187e0 => 0x3f187a0
ACE (30564|139726548043840) DSB::instance, repo=0x3f00b00, name=TAO_ORB_Core_Static_Resources type=0x3f17e00 => 0x3f17b80
ACE (30564|139726548043840) DSB::instance, repo=0x3f00b00, name=IORInterceptor_Adapter_Factory type=(nil) => (nil)
...
Am Mittwoch, 21. November 2018 13:48:31 UTC+1 schrieb MartinB:Hi,
How to avoid trying to load the dynamic lib TAO_IORTable.so
We have a process with a statically linked TAO_IORTable.a library. Does anyone know how to prevent the loading of the TAO_IORTable.so, i.e. using the static resource of this table w/o checking upfront whether the resource can be loaded dynamically?
Debug output (see DLL_Handle::open ("libTAO_IORTable.so ...):
...
ACE (30564|139726548043840) DSB::instance, repo=0x3f00b00, name=TAO_IORTable type=0x3f187e0 => 0x3f187a0
ACE (30564|139726548043840) SG::process_directive, repo=0x3f00b00 - dynamic TAO_IORTable Service_Object * TAO_IORTable:_make_TAO_Table_Adapter_Factory() ""
ACE (30564|139726548043840) SG::process_directives_i, repo=0x3f00b00 - dynamic TAO_IORTable Service_Object * TAO_IORTable:_make_TAO_Table_Adapter_Factory() ""
ACE (30564|139726548043840) - SCG:<ctor=0x7ffe44ec7dd0> - config=0x3f076c0 repo=0x3f00b00 superceded by repo=0x3f00b00
ACE (30564|139726548043840) SG::initialize - repo=0x3f00b00, name=TAO_IORTable - looking up in the repo
ACE (30564|139726548043840) STDG::<ctor>, repo=0x3f00b00, name=TAO_IORTable - begining at [50]
ACE (30564|139726548043840) LN::open_dll - path=TAO_IORTable
ACE (30564|139726548043840) DLL_Handle::open ("libTAO_IORTable.so", 0x101) -> failed: libTAO_IORTable.so: cannot open shared object file: No such file or directory
ACE (30564|139726548043840) DLL_Handle::open ("TAO_IORTable.so", 0x101) -> failed: TAO_IORTable.so: cannot open shared object file: No such file or directory
ACE (30564|139726548043840) DLL_Handle::open ("TAO_IORTable", 0x101) -> failed: TAO_IORTable: cannot open shared object file: No such file or directory
ACE (30564|139726548043840) DLL_Handle::open ("TAO_IORTable"): Invalid handle error: no error
ACE (30564|139726548043840) DLL_Manager::open_dll: Could not open dll TAO_IORTable.
ACE (30564|139726548043840) DLL_Handle::close - TAO_IORTable (handle=0, refcount=0)
ACE (30564|139726548043840) LN::open_dll - Failed to open TAO_IORTable: no error reported
ACE (30564|139726548043840) Unable to create service object for TAO_IORTable
ACE (30564|139726548043840) STDG::<dtor>, repo=0x3f00b00 [29], name=TAO_IORTable - updating dependents [50 - 50)
ACE (30564|139726548043840) STDG::<dtor>, repo=0x3f00b00 [29], name=TAO_IORTable - loaded (type=0x3f18840, impl=0x3f187e0, object=0x3f187a0, active=0)
ACE (30564|139726548043840) Dynamic_Node::apply - Did dynamic on TAO_IORTable (yyerrno=1)
ACE (30564|139726548043840) SCG:<dtor=0x7ffe44ec7dd0> - new repo=0x3f00b00 ACE (30564|139726548043840) DSB::instance, repo=0x3f00b00, name=TAO_IORTable type=0x3f187e0 => 0x3f187a0
ACE (30564|139726548043840) DSB::instance, repo=0x3f00b00, name=TAO_ORB_Core_Static_Resources type=0x3f17e00 => 0x3f17b80
ACE (30564|139726548043840) DSB::instance, repo=0x3f00b00, name=IORInterceptor_Adapter_Factory type=(nil) => (nil)
...
I found the root cause of the problem. It was a bug in TAO 2.2a that is fixed in TAO 2.3a (see https://github.com/DOCGroup/ACE_TAO/commit/9acd83fb4fbdf677f4ab402da4dd2e875ec4d14e#diff-0c533b45431860b302c0bfb4358c41a6 for details).
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 296 |
Nodes: | 16 (2 / 14) |
Uptime: | 48:06:31 |
Calls: | 6,648 |
Files: | 12,198 |
Messages: | 5,329,985 |