• handle_close in cancel_type function of class ACE_Event_Handler_Handle_

    From ajayawasthimca@gmail.com@21:1/5 to All on Tue Aug 23 03:31:58 2016
    Hi,

    I am using libACE-5.8.1.so version in my application. When i shutdown my application it crashes .
    Application is shutdown using kill command from bash script. In my application these are handled by using ACE_Event_Handler class.

    My application started below services using ACE library logger service, configure service, Monitor service.

    stack trace are given below


    #0 0x0000000000000000 in ?? ()
    #1 0x00007fcc85d2d66f in cancel_type (this=0x1d64140, __in_chrg=<value optimized out>) at ../../ace/Timer_Queue_T.cpp:498
    #2 deletion (this=0x1d64140, __in_chrg=<value optimized out>) at ../../ace/Timer_Queue_T.cpp:523
    #3 ACE_Timer_Heap_T<ACE_Event_Handler*, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Recursive_Thread_Mutex>, ACE_Recursive_Thread_Mutex>::~ACE_Timer_Heap_T (
    this=0x1d64140, __in_chrg=<value optimized out>) at ../../ace/Timer_Heap_T.cpp:222
    #4 0x00007fcc85d2d8f9 in ACE_Timer_Heap_T<ACE_Event_Handler*, ACE_Event_Handler_Handle_Timeout_Upcall<ACE_Recursive_Thread_Mutex>, ACE_Recursive_Thread_Mutex>::~ACE_Timer_Heap_T (this=0x1d64140, __in_chrg=<value optimized out>) at ../../ace/Timer_Heap_T.
    cpp:239
    #5 0x00007fcc85d2ba42 in ACE_Select_Reactor_T<ACE_Reactor_Token_T<ACE_Token> >::close (this=0x1d63960) at ../../ace/Select_Reactor_T.cpp:576
    #6 0x00007fcc85d8ebb0 in ACE_Reactor::~ACE_Reactor (this=<value optimized out>, __in_chrg=<value optimized out>) at ../../ace/Reactor.cpp:117
    #7 0x00007fcc85d8ebf9 in ACE_Reactor::~ACE_Reactor (this=0x1d638d0, __in_chrg=<value optimized out>) at ../../ace/Reactor.cpp:120
    #8 0x00007fcc85d8f01a in ACE_Reactor::close_singleton () at ../../ace/Reactor.cpp:183
    #9 0x00007fcc85d8f89b in ~ACE_Framework_Component_T (this=<value optimized out>, __in_chrg=<value optimized out>) at ../../ace/Framework_Component_T.cpp:21
    #10 ACE_Framework_Component_T<ACE_Reactor>::~ACE_Framework_Component_T (this=<value optimized out>, __in_chrg=<value optimized out>)
    at ../../ace/Framework_Component_T.cpp:22
    #11 0x00007fcc85d4c721 in ACE_Framework_Repository::close (this=0x1d66580) at ../../ace/Framework_Component.cpp:78
    #12 0x00007fcc85d4c78d in ACE_Framework_Repository::~ACE_Framework_Repository (this=0x1d66580, __in_chrg=<value optimized out>) at ../../ace/Framework_Component.cpp:40
    #13 0x00007fcc85d4c800 in ACE_Framework_Repository::close_singleton () at ../../ace/Framework_Component.cpp:123
    #14 0x00007fcc85d73790 in ACE_Object_Manager::fini (this=0x1d5d1b0) at ../../ace/Object_Manager.cpp:751
    #15 0x00007fcc85d738a8 in ACE_Object_Manager::~ACE_Object_Manager (this=0x1d5d1b0, __in_chrg=<value optimized out>) at ../../ace/Object_Manager.cpp:417
    #16 0x00007fcc85d738f9 in ACE_Object_Manager::~ACE_Object_Manager (this=0x1d5d1b0, __in_chrg=<value optimized out>) at ../../ace/Object_Manager.cpp:418
    #17 0x00007fcc85d73615 in ACE_Object_Manager_Manager::~ACE_Object_Manager_Manager (this=<value optimized out>, __in_chrg=<value optimized out>)
    at ../../ace/Object_Manager.cpp:882
    #18 0x0000003b3303640d in __cxa_finalize () from /lib64/libc.so.6
    #19 0x00007fcc85d1c956 in __do_global_dtors_aux () from /home/mpeit/mpe/CRPLUSEXCEP/build_1B/lib/libACE-5.8.1.so
    #20 0x0000000000000000 in ?? ()


    After analysing the core i found that in definition of ACE_Event_Handler_Handle_Timeout_Upcall<ACE_LOCK>::deletion function dont_call value is 0 for function cancel_type and cancel_timer. But my application crashes at call of event_handler->handle_close
    inside cancel_type function.
    If i pass dont_call value 1 then there is no problem in application shutdown.

    Please suggest me is it proper fix or something incorrect in my application?

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