[ace-users] Need help to resolve the hang with ACE Reactor usage

Douglas C. Schmidt schmidt at dre.vanderbilt.edu
Tue Jul 14 06:49:24 CDT 2015


Hi Sukum,

> We are using ACE_Reactor pattern to register and take the reaction on certain
> handles.

Thanks very much for your email.  To ensure that we have proper
version/platform/compiler information, please make sure you fill out the
appropriate problem report form (PRF), which is in

$ACE_ROOT/PROBLEM-REPORT-FORM
$TAO_ROOT/PROBLEM-REPORT-FORM

or in

$ACE_ROOT/BUG-REPORT-FORM
$TAO_ROOT/BUG-REPORT-FORM

in older versions of ACE, TAO, CIAO, and DAnCE.  Make sure to include
this information when asking any questions since otherwise we have to
"guess" what version/platform/compiler/options you've using, which is
very error-prone and slows down our responsiveness.  If you don't use
the PRF, therefore, it is less likely that someone from the core
developer team will be able to answer your question.  Naturally, we
encourage and appreciate other members of the ACE, TAO, CIAO, and
DAnCE user community who can respond to questions that they have the
answers to.

Please note, moreover, that the DOC group at Vanderbilt University
only provides "best effort" support for non-sponsors who are using the
latest release, as described in

http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/ACE/docs/ACE-bug-process.html

Therefore, please make sure you are using ACE+TAO+CIAO+DAnCE x.3.1
(i.e., ACE 6.3.1, TAO 2.3.1, CIAO 1.3.1, and DAnCE 1.3.1), which you
can download from

http://download.dre.vanderbilt.edu

If you need more "predictable" help or need help for earlier versions
of ACE+TAO+CIAO+DAnCE please see

http://www.dre.vanderbilt.edu/support.html

for a list of companies that will provide you with ACE+TAO+CIAO+DAnCE
commercial support.

Thanks,

        Doug


> We are using remove handler with NULL_MASK to remove the handle forcefully from
> ace internal handler as follows
> 
>  
> 
> thePReactor->remove_handler(this->m_shutDownEvent->handle
> (),ACE_Event_Handler::NULL_MASK);
> 
> int HttpCommand::handle_close (ACE_HANDLE handle, ACE_Reactor_Mask close_mask)
> 
> {
> 
>       UNREFERENCED_PARAMETER(close_mask);
> 
>       UNREFERENCED_PARAMETER(handle);
> 
>  
> 
>     ACE_DEBUG((LM_DEBUG,"HttpCommand::handle_close \n"));
> 
>       m_safeToDestructEvent.signal();
> 
>     return 0;
> 
> }
> 
>  
> 
> The call back handle_close() should be invoked when we remove handler with
> NULL_MASK. In one of the use case this doesn?t happen and our application is
> hanging  as in attached call stack
> 
> and we don?t see that call back gets invoked at these times(When app hangs)
> 
>  
> 
> Changing the reactor mask type to DONT_CALL has fixed this issue. I don?t see
> hanging any more .  Can you please let me know what happens in background when
> the reactor type is NULL_MASK and the reason for app hang?
> 
> Does this wait for any process mutex to invoke handle_close callback.?
> 
>  
> 
> When we use DON?T_CALL instead NULL_MASK it solved the issue but we need to
> know what?s the issue in depth. Please let us know if you have any information
> on same
> 
>  
> 
> Thanks in advance
> 
>  
> 
> Regards
> 
> Sukumar
> 
>  
> 
> 
> -------------------------------------------------------------------------------
> The information contained in this message may be confidential and legally
> protected under applicable law. The message is intended solely for the
> addressee(s). If you are not the intended recipient, you are hereby notified
> that any use, forwarding, dissemination, or reproduction of this message is
> strictly prohibited and may be unlawful. If you are not the intended recipient,
> please contact the sender by return e-mail and destroy all copies of the
> original message.
> _______________________________________________
> ace-users mailing list
> ace-users at list.isis.vanderbilt.edu
> http://list.isis.vanderbilt.edu/cgi-bin/mailman/listinfo/ace-users


More information about the ace-users mailing list