[tao-users] Fwd: TAO Support

Prabhakar Bhatt prabhakar.bhatt at gmail.com
Thu Dec 6 06:44:01 CST 2018


 Hi,


  We are using ACE+TAO 2.0a  in our project and facing following issues in
one of the customer production.

  1.  After some point of time, TAO Server application stops accepting new
connections from the client. From the pstack we observed that following API
is consuming 100% memory and looping there.

      > Thread 849 (Thread 0x7f8d3129e700 (LWP 20892)):

#0  0x0000003637edae44 in _fxstat () from /lib64/libc.so.6

#1  0x00007f8d6668c026 in
ACE_Select_Reactor_T<ACE_Reactor_Token_T<ACE_Token> >::check_handles() ()
from /usr/opt/temip/tao/2.X/lib/libACE.so

#2  0x00007f8d66688f97 in
ACE_Select_Reactor_T<ACE_Reactor_Token_T<ACE_Token>
>::wait_for_multiple_events(ACE_Select_Reactor_Handle_Set&,
ACE_Time_Value*) () from /usr/opt/temip/tao/2.X/lib/libACE.so

#3  0x00007f8d66700e98 in ACE_TP_Reactor::dispatch_i(ACE_Time_Value*,
ACE_TP_Token_Guard&) () from /usr/opt/temip/tao/2.X/lib/libACE.so

#4  0x00007f8d66700fa0 in ACE_TP_Reactor::handle_events(ACE_Time_Value*) ()
from /usr/opt/temip/tao/2.X/lib/libACE.so

#5  0x00007f8d66a29d13 in TAO_ORB_Core::run(ACE_Time_Value*, int) () from
/usr/opt/temip/tao/2.X/lib/libTAO.so


Configuration : # TAO Naming

                 NameServiceIOR=corbaloc:iiop:localhost:3075/NameService

                 # TAO IIOP Endpoint

                 TAO_ORBENDPOINT="iiop://:6000/portspan=31"

                 TAO KEEP ALIVE = -ORBKeepAlive 1





 Bidirectional policy :

                At client : POAPolicyList[1] =
m_client_orb->create_policy(BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE, pol);



                At Server :



                          callsPOAPolicyList[0] =
m_rootPOA->create_lifespan_policy(PortableServer::TRANSIENT);

                          callsPOAPolicyList[1] =
m_server_orb->create_policy(BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE, pol2);





Additional policies are set before calling the Client side callback every
time at server side :

                              policyList[0] =
callbackRef->_get_orb()->create_policy(Messaging::RELATIVE_RT_TIMEOUT_POLICY_TYPE,
rt_timeout_any);

                              CORBA::Object_var object =
callbackRef->_set_policy_overrides(policyList, CORBA::ADD_OVERRIDE);



   Please can you help/sugest us to address this issue.


Thanks and Regards,

Prabhakar Bhatt

On Tue, Sep 27, 2016 at 2:42 PM Prabhakar Bhatt <prabhakar.bhatt at gmail.com>
wrote:

> Hi,
>
>
>   We are using ACE+TAO 2.0a  in our project and facing following issues in
> one of the customer production.
>
>
>
> 1.  We are setting following debug options in  orb_init at server side.
> But logs are seen only at the process startup. After that no logs are seen.
> At the client side we only see ACE traces and not the TAO traces.
>
>          *Orb_init signature : MCC_T_CHAR *defaultOptions_p[] = {"dummy",
> "-ORBDebug", "-ORBDebugLevel","99","-ORBLogFile",(char
> *)procInfo.proc_trace_info.trace_file,0};*
>
>
> 2.  We are using BIDIRECTIONAL port usage in our Server and Client
> application for communication. Two thread are being used at server side to
> Communication with client. One thread is uses a callback of client to send
> the actual data, second thread calls client callback for polling mechanism
> . When everything is going fine both the threads at server use 6001 to
> communicate with client. But suddenly polling thread callback request from
> the server will be sent to client on different port ( Ex : 52345). After
> this connection is lost between the server and client. After analyzing the
> pcaps it is confirmed that signature remains for all the disconnections and
> RST( at TCP Level) is received from the client for request on port 42345.
> Even though BiDirectional is set why the request is going on new port.
> Server and client are multithread application.
>
>
>
>  Configuration : # TAO Naming
>
>                  NameServiceIOR=corbaloc:iiop:localhost:3075/NameService
>
>                  # TAO IIOP Endpoint
>
>                  TAO_ORBENDPOINT="iiop://:6000/portspan=31"
>
>                  TAO KEEP ALIVE = -ORBKeepAlive 1
>
>
>
>
>
>  Bidirectional policy :
>
>                 At client : POAPolicyList[1] =
> m_client_orb->create_policy(BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE, pol);
>
>
>
>                 At Server :
>
>
>
>                           callsPOAPolicyList[0] =
> m_rootPOA->create_lifespan_policy(PortableServer::TRANSIENT);
>
>                           callsPOAPolicyList[1] =
> m_server_orb->create_policy(BiDirPolicy::BIDIRECTIONAL_POLICY_TYPE, pol2);
>
>
>
>
>
> Additional policies are set before calling the Client side callback every
> time at server side :
>
>                               policyList[0] =
> callbackRef->_get_orb()->create_policy(Messaging::RELATIVE_RT_TIMEOUT_POLICY_TYPE,
> rt_timeout_any);
>
>                               CORBA::Object_var object =
> callbackRef->_set_policy_overrides(policyList, CORBA::ADD_OVERRIDE);
>
>
>
> Please do let me know your answers/suggestions.
>
>
>
>
>
> Thaks and Regards,
>
> Prabhakar Bhatt
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.isis.vanderbilt.edu/pipermail/tao-users/attachments/20181206/090a537b/attachment-0001.html>


More information about the tao-users mailing list