Bug 335

Summary: netsvcs: Client Logging daemon bugs.
Product: ACE Reporter: Alexander Dergatch <dergy>
Component: ACE netsvcsAssignee: DOC Center Support List (internal) <tao-support>
Status: ASSIGNED ---    
Severity: critical    
Priority: P1    
Version: 5.0.4 (redundant   
Hardware: x86   
OS: Windows NT   

Description Alexander Dergatch 1999-09-20 07:46:28 CDT
1) Client Logging Daemon crashes then ^C is pressed after some period of
working.
When all necessary cleanup is performed in ACE_WFMO_Reactor, event_handler in
next lines points to object that is already deleted:
if (event_handler != 0)
  event_handler->handle_close (handle, masks);
Call stack is as follows:
-----------------------------------------------------------------------------
ACE_WFMO_Reactor_Handler_Repository::make_changes_in_current_infos() line 705 +
16 bytes
ACE_WFMO_Reactor_Handler_Repository::make_changes() line 403
ACE_WFMO_Reactor::~ACE_WFMO_Reactor() line 1194
ACE_WFMO_Reactor::`vector deleting destructor'(unsigned int 1) + 84 bytes
ACE_Reactor::~ACE_Reactor() line 61 + 35 bytes
ACE_Reactor::`vector deleting destructor'(unsigned int 1) + 81 bytes
ACE_Reactor::close_singleton() line 122 + 33 bytes
ACE_Service_Config::close_singletons() line 815
ACE_Service_Config::fini_svcs() line 802
ACE_Object_Manager::fini() line 592
ACE_Object_Manager::~ACE_Object_Manager() line 284
main(int 4, char * * 0x008e0200) line 15 + 181 bytes
mainCRTStartup() line 338 + 17 bytes
KERNEL32! 77f1ba06()
-----------------------------------------------------------------------------

2) Client_Logging_Handler.cpp, ACE_Client_Logging_Handler::handle_input():
It seems that ACE_Reactor::instance ()->remove_handler() cannot free handles
correctly when connection is closed by sender aplication. It causes "too many
open files" run-time error to appear.
Comment 1 Irfan Pyarali 1999-09-22 10:58:59 CDT
Sounds like the handler is going away without the Reactor knowing about it.
I'll look into it.