[Ace-users] tao ssliop memory leaks

Venkat swara101 at yahoo.com
Fri Nov 30 13:05:32 CST 2007


Hello TAO team,

   TAO VERSION: 1.6.1
    ACE VERSION: 5.6.1

    HOST MACHINE and OPERATING SYSTEM:
         Solaris 10, i386

    TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
    COMPILER NAME AND VERSION (AND PATCHLEVEL):
             Solaris 10, i386

    THE $ACE_ROOT/ace/config.h FILE [if you use a link to a platform-
    specific file, simply state which one]:
             generation via autoconf

    THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE [if you
    use a link to a platform-specific file, simply state which one
    (unless this isn't used in this case, e.g., with Microsoft Visual
    C++)]:
          n/a

    CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/
default.features
    (used by MPC when you generate your own makefiles):
             ssl

    AREA/CLASS/EXAMPLE AFFECTED:

    DOES THE PROBLEM AFFECT:
        COMPILATION? no
        LINKING? no
        EXECUTION? Yes

    SYNOPSIS:
        Memory leaks in TAO::SSLIOP codebase

    DESCRIPTION:
        Client and Server on different nodes with SSLIOP enabled. As
Server is processing requests, memory is growing.

        I ran memory detector tool, and finding leaks as shown below.
Pls. let me know why those are shown as leaks, and what would be the
cause?

libumem.so.1`umem_cache_alloc_debug+0x12b
                 libumem.so.1`umem_cache_alloc+0xc8
                 libumem.so.1`umem_alloc+0xaf
                 libumem.so.1`malloc+0x2e
                 libCrun.so.1`void*operator new(unsigned long,const
std::nothrow_t&)+0x28
libTAO.so.
1.6.1`TAO_Wait_Strategy*TAO_Default_Client_Strategy_Factory::create_wait_strategy(TAO_Transport*)
+0x2c1
                 libTAO.so.1.6.1`TAO_Transport::TAO_Transport
#Nvariant 1(unsigned,TAO_ORB_Core*,unsigned long)+0x438
                 libTAO_SSLIOP.so.
1.6.1`TAO::SSLIOP::Transport::Transport #Nvariant
1(TAO::SSLIOP::Connection_Handler*,TAO_ORB_Core*)+0x4f
                 libTAO_SSLIOP.so.
1.6.1`TAO::SSLIOP::Connection_Handler::Connection_Handler #Nvariant
1(TAO_ORB_Core*)+0x1bb
                 libTAO_SSLIOP.so.1.6.1`int
TAO_Connect_Creation_Strategy<TAO::SSLIOP::Connection_Handler>::make_svc_handler(TAO::SSLIOP::Connection_Handler*&)
+0x9c
                 libTAO_SSLIOP.so.
1.6.1`TAO_Transport*TAO::SSLIOP::Connector::ssliop_connect(TAO_SSLIOP_Endpoint*,Security::QOP,const
Security::EstablishTrust&,TAO::Profile_Transport_Resolver*,TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x331
                 libTAO_SSLIOP.so.
1.6.1`TAO_Transport*TAO::SSLIOP::Connector::connect(TAO::Profile_Transport_Resolver*,TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x979

                 libTAO.so.1.6.1`bool
TAO::Profile_Transport_Resolver::try_connect_i(TAO_Transport_Descriptor_Interface*,ACE_Time_Value*,bool)
+0x278

                 libTAO.so.1.6.1`bool
TAO::Profile_Transport_Resolver::try_connect(TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x32

                 libTAO.so.1.6.1`void
TAO_Default_Endpoint_Selector::select_endpoint(TAO::Profile_Transport_Resolver*,ACE_Time_Value*)
+0x261


     libumem.so.1`umem_cache_alloc_debug+0x12b
                 libumem.so.1`umem_cache_alloc+0xc8
                 libumem.so.1`umem_alloc+0xaf
                 libumem.so.1`malloc+0x2e
                 libCrun.so.1`void*operator new(unsigned long,const
std::nothrow_t&)+0x28

                 libTAO_SSLIOP.so.
1.6.1`ACE_Task<ACE_NULL_SYNCH>::ACE_Task #Nvariant
1(ACE_Thread_Manager*,ACE_Message_Queue<ACE_NULL_SYNCH>*)+0x127

                 libTAO_SSLIOP.so.
1.6.1`ACE_Svc_Handler<ACE_SSL_SOCK_Stream,ACE_NULL_SYNCH>::ACE_Svc_Handler
#Nvariant
1(ACE_Thread_Manager*,ACE_Message_Queue<ACE_NULL_SYNCH>*,ACE_Reactor*)
+0x5b
                 libTAO_SSLIOP.so.
1.6.1`TAO::SSLIOP::Connection_Handler::Connection_Handler #Nvariant
1(TAO_ORB_Core*)+0xa2
libTAO_SSLIOP.so.1.6.1`int
TAO_Connect_Creation_Strategy<TAO::SSLIOP::Connection_Handler>::make_svc_handler(TAO::SSLIOP::Connection_Handler*&)
+0x9c

                 libTAO_SSLIOP.so.
1.6.1`TAO_Transport*TAO::SSLIOP::Connector::ssliop_connect(TAO_SSLIOP_Endpoint*,Security::QOP,const
Security::EstablishTrust&,TAO::Profile_Transport_Resolver*,TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x331

                 libTAO_SSLIOP.so.
1.6.1`TAO_Transport*TAO::SSLIOP::Connector::connect(TAO::Profile_Transport_Resolver*,TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x979

                 libTAO.so.1.6.1`bool
TAO::Profile_Transport_Resolver::try_connect_i(TAO_Transport_Descriptor_Interface*,ACE_Time_Value*,bool)
+0x278

                 libTAO.so.1.6.1`bool
TAO::Profile_Transport_Resolver::try_connect(TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x32

                 libTAO.so.1.6.1`void
TAO_Default_Endpoint_Selector::select_endpoint(TAO::Profile_Transport_Resolver*,ACE_Time_Value*)
+0x261
                 libTAO.so.1.6.1`void
TAO::Profile_Transport_Resolver::resolve(ACE_Time_Value*)+0xb3
 libumem.so.1`umem_cache_alloc_debug+0x12b
                 libumem.so.1`umem_cache_alloc+0xc8
                 libumem.so.1`umem_alloc+0xaf
                 libumem.so.1`malloc+0x2e
                 libCrun.so.1`void*operator new(unsigned long,const
std::nothrow_t&)+0x28
                 libTAO.so.
1.6.1`ACE_Lock*TAO_Default_Resource_Factory::create_cached_connection_lock()
+0x121
                 libTAO.so.1.6.1`TAO_Transport::TAO_Transport
#Nvariant 1(unsigned,TAO_ORB_Core*,unsigned long)+0x196
                 libTAO_SSLIOP.so.
1.6.1`TAO::SSLIOP::Transport::Transport #Nvariant
1(TAO::SSLIOP::Connection_Handler*,TAO_ORB_Core*)+0x4f
                 libTAO_SSLIOP.so.
1.6.1`TAO::SSLIOP::Connection_Handler::Connection_Handler #Nvariant
1(TAO_ORB_Core*)+0x1bb

                 libTAO_SSLIOP.so.1.6.1`int
TAO_Connect_Creation_Strategy<TAO::SSLIOP::Connection_Handler>::make_svc_handler(TAO::SSLIOP::Connection_Handler*&)
+0x9c

                 libTAO_SSLIOP.so.
1.6.1`TAO_Transport*TAO::SSLIOP::Connector::ssliop_connect(TAO_SSLIOP_Endpoint*,Security::QOP,const
Security::EstablishTrust&,TAO::Profile_Transport_Resolver*,TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x331

                 libTAO_SSLIOP.so.
1.6.1`TAO_Transport*TAO::SSLIOP::Connector::connect(TAO::Profile_Transport_Resolver*,TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x979

                 libTAO.so.1.6.1`bool
TAO::Profile_Transport_Resolver::try_connect_i(TAO_Transport_Descriptor_Interface*,ACE_Time_Value*,bool)
+0x278

                 libTAO.so.1.6.1`bool
TAO::Profile_Transport_Resolver::try_connect(TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x32

                 libTAO.so.1.6.1`void
TAO_Default_Endpoint_Selector::select_endpoint(TAO::Profile_Transport_Resolver*,ACE_Time_Value*)
+0x261


libumem.so.1`umem_cache_alloc_debug+0x12b
                 libumem.so.1`umem_cache_alloc+0xc8
                 libumem.so.1`umem_alloc+0xaf
                 libumem.so.1`malloc+0x2e
                 libCrun.so.1`void*operator new(unsigned long,const
std::nothrow_t&)+0x28
                 libTAO.so.1.6.1`TAO_Transport::TAO_Transport
#Nvariant 1(unsigned,TAO_ORB_Core*,unsigned long)+0x4af
                 libTAO_SSLIOP.so.
1.6.1`TAO::SSLIOP::Transport::Transport #Nvariant
1(TAO::SSLIOP::Connection_Handler*,TAO_ORB_Core*)+0x4f
                 libTAO_SSLIOP.so.
1.6.1`TAO::SSLIOP::Connection_Handler::Connection_Handler #Nvariant
1(TAO_ORB_Core*)+0x1bb

                 libTAO_SSLIOP.so.1.6.1`int
TAO_Connect_Creation_Strategy<TAO::SSLIOP::Connection_Handler>::make_svc_handler(TAO::SSLIOP::Connection_Handler*&)
+0x9c

                 libTAO_SSLIOP.so.
1.6.1`TAO_Transport*TAO::SSLIOP::Connector::ssliop_connect(TAO_SSLIOP_Endpoint*,Security::QOP,const
Security::EstablishTrust&,TAO::Profile_Transport_Resolver*,TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x331

                 libTAO_SSLIOP.so.
1.6.1`TAO_Transport*TAO::SSLIOP::Connector::connect(TAO::Profile_Transport_Resolver*,TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x979

                 libTAO.so.1.6.1`bool
TAO::Profile_Transport_Resolver::try_connect_i(TAO_Transport_Descriptor_Interface*,ACE_Time_Value*,bool)
+0x278

                 libTAO.so.1.6.1`bool
TAO::Profile_Transport_Resolver::try_connect(TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x32

                 libTAO.so.1.6.1`void
TAO_Default_Endpoint_Selector::select_endpoint(TAO::Profile_Transport_Resolver*,ACE_Time_Value*)
+0x261
                 libTAO.so.1.6.1`void
TAO::Profile_Transport_Resolver::resolve(ACE_Time_Value*)+0xb3


 libumem.so.1`umem_cache_alloc_debug+0x12b
                 libumem.so.1`umem_cache_alloc+0xc8
                 libumem.so.1`umem_alloc+0xaf
                 libumem.so.1`malloc+0x2e
                 libCrun.so.1`void*operator new(unsigned long,const
std::nothrow_t&)+0x28

                 libTAO.so.
1.6.1`TAO_Transport_Mux_Strategy*TAO_Default_Client_Strategy_Factory::create_transport_mux_strategy(TAO_Transport*)
+0x68
                 libTAO.so.1.6.1`TAO_Transport::TAO_Transport
#Nvariant 1(unsigned,TAO_ORB_Core*,unsigned long)+0x46a
                 libTAO_SSLIOP.so.
1.6.1`TAO::SSLIOP::Transport::Transport #Nvariant
1(TAO::SSLIOP::Connection_Handler*,TAO_ORB_Core*)+0x4f
                 libTAO_SSLIOP.so.
1.6.1`TAO::SSLIOP::Connection_Handler::Connection_Handler #Nvariant
1(TAO_ORB_Core*)+0x1bb

                 libTAO_SSLIOP.so.1.6.1`int
TAO_Connect_Creation_Strategy<TAO::SSLIOP::Connection_Handler>::make_svc_handler(TAO::SSLIOP::Connection_Handler*&)
+0x9c

                 libTAO_SSLIOP.so.
1.6.1`TAO_Transport*TAO::SSLIOP::Connector::ssliop_connect(TAO_SSLIOP_Endpoint*,Security::QOP,const
Security::EstablishTrust&,TAO::Profile_Transport_Resolver*,TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x331

                 libTAO_SSLIOP.so.
1.6.1`TAO_Transport*TAO::SSLIOP::Connector::connect(TAO::Profile_Transport_Resolver*,TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x979

                 libTAO.so.1.6.1`bool
TAO::Profile_Transport_Resolver::try_connect_i(TAO_Transport_Descriptor_Interface*,ACE_Time_Value*,bool)
+0x278

                 libTAO.so.1.6.1`bool
TAO::Profile_Transport_Resolver::try_connect(TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x32

                 libTAO.so.1.6.1`void
TAO_Default_Endpoint_Selector::select_endpoint(TAO::Profile_Transport_Resolver*,ACE_Time_Value*)
+0x261

                 libumem.so.1`umem_cache_alloc_debug+0x12b
                 libumem.so.1`umem_cache_alloc+0xc8
                 libumem.so.1`umem_alloc+0xaf
                 libumem.so.1`malloc+0x2e
                 libCrun.so.1`void*operator new(unsigned long,const
std::nothrow_t&)+0x28
                 libTAO_AnyTypeCode.so.
1.6.1`ACE_Lock_Adapter<ACE_Thread_Mutex>::ACE_Lock_Adapter #Nvariant
1()+0x90
                 libTAO.so.
1.6.1`ACE_Lock*TAO_Default_Resource_Factory::create_cached_connection_lock()
+0x151
                 libTAO.so.1.6.1`TAO_Transport::TAO_Transport
#Nvariant 1(unsigned,TAO_ORB_Core*,unsigned long)+0x196
                 libTAO_SSLIOP.so.
1.6.1`TAO::SSLIOP::Transport::Transport #Nvariant
1(TAO::SSLIOP::Connection_Handler*,TAO_ORB_Core*)+0x4f
                 libTAO_SSLIOP.so.
1.6.1`TAO::SSLIOP::Connection_Handler::Connection_Handler #Nvariant
1(TAO_ORB_Core*)+0x1bb

                 libTAO_SSLIOP.so.1.6.1`int
TAO_Connect_Creation_Strategy<TAO::SSLIOP::Connection_Handler>::make_svc_handler(TAO::SSLIOP::Connection_Handler*&)
+0x9c

                 libTAO_SSLIOP.so.
1.6.1`TAO_Transport*TAO::SSLIOP::Connector::ssliop_connect(TAO_SSLIOP_Endpoint*,Security::QOP,const
Security::EstablishTrust&,TAO::Profile_Transport_Resolver*,TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x331

                 libTAO_SSLIOP.so.
1.6.1`TAO_Transport*TAO::SSLIOP::Connector::connect(TAO::Profile_Transport_Resolver*,TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x979

                 libTAO.so.1.6.1`bool
TAO::Profile_Transport_Resolver::try_connect_i(TAO_Transport_Descriptor_Interface*,ACE_Time_Value*,bool)
+0x278

                 libTAO.so.1.6.1`bool
TAO::Profile_Transport_Resolver::try_connect(TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x32

                 libumem.so.1`umem_cache_alloc_debug+0x12b
                 libumem.so.1`umem_cache_alloc+0xc8
                 libumem.so.1`umem_alloc+0xaf
                 libumem.so.1`malloc+0x2e
                 libCrun.so.1`void*operator new(unsigned long,const
std::nothrow_t&)+0x28
                 libTAO_SSLIOP.so.
1.6.1`TAO::SSLIOP::Connection_Handler::Connection_Handler #Nvariant
1(TAO_ORB_Core*)+0x17b

                 libTAO_SSLIOP.so.1.6.1`int
TAO_Connect_Creation_Strategy<TAO::SSLIOP::Connection_Handler>::make_svc_handler(TAO::SSLIOP::Connection_Handler*&)
+0x9c

                 libTAO_SSLIOP.so.
1.6.1`TAO_Transport*TAO::SSLIOP::Connector::ssliop_connect(TAO_SSLIOP_Endpoint*,Security::QOP,const
Security::EstablishTrust&,TAO::Profile_Transport_Resolver*,TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x331

                 libTAO_SSLIOP.so.
1.6.1`TAO_Transport*TAO::SSLIOP::Connector::connect(TAO::Profile_Transport_Resolver*,TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x979

                 libTAO.so.1.6.1`bool
TAO::Profile_Transport_Resolver::try_connect_i(TAO_Transport_Descriptor_Interface*,ACE_Time_Value*,bool)
+0x278

                 libTAO.so.1.6.1`bool
TAO::Profile_Transport_Resolver::try_connect(TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x32

                 libTAO.so.1.6.1`void
TAO_Default_Endpoint_Selector::select_endpoint(TAO::Profile_Transport_Resolver*,ACE_Time_Value*)
+0x261
                 libTAO.so.1.6.1`void
TAO::Profile_Transport_Resolver::resolve(ACE_Time_Value*)+0xb3

                 libTAO.so.1.6.1`TAO::Invocation_Status
TAO::Invocation_Adapter::invoke_remote_i(TAO_Stub*,TAO_Operation_Details&,TAO_Pseudo_Var_T<CORBA::Object>&,ACE_Time_Value*&)
+0x109
                 libTAO.so.1.6.1`void
TAO::Invocation_Adapter::invoke_i(TAO_Stub*,TAO_Operation_Details&)
+0x1b2

                 libumem.so.1`umem_cache_alloc_debug+0x12b
                 libumem.so.1`umem_cache_alloc+0xc8
                 libumem.so.1`umem_alloc+0xaf
                 libumem.so.1`malloc+0x2e
                 libCrun.so.1`void*operator new(unsigned long,const
std::nothrow_t&)+0x28
                 libTAO_AnyTypeCode.so.
1.6.1`ACE_Lock_Adapter<ACE_Thread_Mutex>::ACE_Lock_Adapter #Nvariant
1()+0x90
                 libTAO.so.
1.6.1`ACE_Lock*TAO_Default_Resource_Factory::create_cached_connection_lock()
+0x151
                 libTAO.so.
1.6.1`TAO_Connection_Handler::TAO_Connection_Handler #Nvariant
1(TAO_ORB_Core*)+0xb3
                 libTAO_SSLIOP.so.
1.6.1`TAO::SSLIOP::Connection_Handler::Connection_Handler #Nvariant
1(TAO_ORB_Core*)+0xbb

                 libTAO_SSLIOP.so.1.6.1`int
TAO_Connect_Creation_Strategy<TAO::SSLIOP::Connection_Handler>::make_svc_handler(TAO::SSLIOP::Connection_Handler*&)
+0x9c

                 libTAO_SSLIOP.so.
1.6.1`TAO_Transport*TAO::SSLIOP::Connector::ssliop_connect(TAO_SSLIOP_Endpoint*,Security::QOP,const
Security::EstablishTrust&,TAO::Profile_Transport_Resolver*,TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x331

                 libTAO_SSLIOP.so.
1.6.1`TAO_Transport*TAO::SSLIOP::Connector::connect(TAO::Profile_Transport_Resolver*,TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x979

                 libTAO.so.1.6.1`bool
TAO::Profile_Transport_Resolver::try_connect_i(TAO_Transport_Descriptor_Interface*,ACE_Time_Value*,bool)
+0x278

                 libTAO.so.1.6.1`bool
TAO::Profile_Transport_Resolver::try_connect(TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x32

                 libTAO.so.1.6.1`void
TAO_Default_Endpoint_Selector::select_endpoint(TAO::Profile_Transport_Resolver*,ACE_Time_Value*)
+0x261

                 libumem.so.1`umem_cache_alloc_debug+0x12b
                 libumem.so.1`umem_cache_alloc+0xc8
                 libumem.so.1`umem_alloc+0xaf
                 libumem.so.1`malloc+0x2e
                 libCrun.so.1`void*operator new(unsigned long,const
std::nothrow_t&)+0x28
                 libTAO.so.
1.6.1`ACE_Lock*TAO_Default_Resource_Factory::create_cached_connection_lock()
+0x121
                 libTAO.so.
1.6.1`TAO_Connection_Handler::TAO_Connection_Handler #Nvariant
1(TAO_ORB_Core*)+0xb3
                 libTAO_SSLIOP.so.
1.6.1`TAO::SSLIOP::Connection_Handler::Connection_Handler #Nvariant
1(TAO_ORB_Core*)+0xbb

                 libTAO_SSLIOP.so.1.6.1`int
TAO_Connect_Creation_Strategy<TAO::SSLIOP::Connection_Handler>::make_svc_handler(TAO::SSLIOP::Connection_Handler*&)
+0x9c

                 libTAO_SSLIOP.so.
1.6.1`TAO_Transport*TAO::SSLIOP::Connector::ssliop_connect(TAO_SSLIOP_Endpoint*,Security::QOP,const
Security::EstablishTrust&,TAO::Profile_Transport_Resolver*,TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x331

                 libTAO_SSLIOP.so.
1.6.1`TAO_Transport*TAO::SSLIOP::Connector::connect(TAO::Profile_Transport_Resolver*,TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x979

                 libTAO.so.1.6.1`bool
TAO::Profile_Transport_Resolver::try_connect_i(TAO_Transport_Descriptor_Interface*,ACE_Time_Value*,bool)
+0x278

                 libTAO.so.1.6.1`bool
TAO::Profile_Transport_Resolver::try_connect(TAO_Transport_Descriptor_Interface*,ACE_Time_Value*)
+0x32

                 libTAO.so.1.6.1`void
TAO_Default_Endpoint_Selector::select_endpoint(TAO::Profile_Transport_Resolver*,ACE_Time_Value*)
+0x261
                 libTAO.so.1.6.1`void
TAO::Profile_Transport_Resolver::resolve(ACE_Time_Value*)+0xb3

                 libumem.so.1`umem_cache_alloc_debug+0x12b
                 libumem.so.1`umem_cache_alloc+0xc8
                 libumem.so.1`umem_alloc+0xaf
                 libumem.so.1`malloc+0x2e


    REPEAT BY:

    SAMPLE FIX/WORKAROUND:

Thanks
Venkat


More information about the Ace-users mailing list