• How to avoid trying to load the dynamic lib TAO_IORTable.so

    From MartinB@21:1/5 to All on Wed Nov 21 04:48:28 2018
    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)
    ...

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From MartinB@21:1/5 to All on Mon Dec 17 13:33:24 2018
    Am Mittwoch, 21. November 2018 13:48:31 UTC+1 schrieb MartinB:
    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).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Johnny Willemsen@21:1/5 to MartinB on Thu Dec 20 23:37:06 2018
    On Monday, December 17, 2018 at 10:33:27 PM UTC+1, MartinB wrote:
    Am Mittwoch, 21. November 2018 13:48:31 UTC+1 schrieb MartinB:
    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
    Hi,

    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).

    Good to hear that it works, would recommend you to upgrade to TAO 2.5.3 which is the latest micro release, it has much more enhancements and bug fixes.

    best regards,

    Johnny Willemsen
    Remedy IT

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)