Skip to main content
Summary Why is Orbix waiting on libit_ifc_sc53.so.5`void IT_Mutex::lock(IT_ExceptionHandler&) 0x20?
Article Number 18459
Environment Solaris 10 Orbix 6.3.3
Question/Problem Description Why is Orbix waiting on libit_ifc_sc53.so.5`void IT_Mutex::lock(IT_ExceptionHandler&) 0x20?

Stack:

libit_ifc_sc53.so.5`void IT_Mutex::lock(IT_ExceptionHandler&) 0x20
libit_giop_sc53.so.5`IT_WorkQueue::WorkItem*IT_GIOP_InMessageInterceptorImpl::recv_reply(IT_Buffer::BufferHolder&,unsigned,IT_GIOP_Binding::OutMessageInterceptor*,const GIOP::MessageHeader_1_1&,unsigned short) 0x78
libit_giop_sc53.so.5`IT_WorkQueue::WorkItem*IT_GIOP_InMessageInterceptorImpl::recv_message(IT_Buffer::Buffer*,unsigned,IT_GIOP_Binding::OutMessageInterceptor*) 0x1bc
libit_atli2_iop_sc53.so.5`void IT_ATLI2_IOP::ConnectionHandlerImpl::dispatch_message(IT_WorkQueue::WorkItem*&) 0x310
libit_atli2_iop_sc53.so.5`IT_WorkQueue::WorkItem*IT_ATLI2_IOP::ConnectionHandlerImpl::data_received(IT_Buffer::Buffer*,IT_WorkQueue::WorkItem*) 0xbc
libit_atli2_ip_sc53.so.5`void IT_ATLI2_IP::TCPConnectionImpl::readable(IT_WorkQueue::WorkItem*&) 0x15c
libit_atli2_ip_sc53.so.5`void IT_ATLI2_IP::TCPConnectionImpl::event_occurred(short,IT_WorkQueue::WorkItem*&) 0x38
libit_atli2_ip_sc53.so.5`void IT_ATLI2_IP::PollPoller::process_events(IT_WorkQueue::WorkItem*&) 0x110
libit_atli2_ip_sc53.so.5`IT_WorkQueue::WorkItemStatus IT_ATLI2_IP::IPPoolImpl::execute() 0x2f0
libit_art_sc53.so.5`void*IT_Work_WorkerThread::run() 0x104
libc.so.1`_lwp_start


Stack:

libit_ifc_sc53.so.5`void IT_Mutex::lock(IT_ExceptionHandler&) 0x20
libit_giop_sc53.so.5`bool IT_GIOP_InStream::get_next_buffer(unsigned,const unsigned char*&,unsigned&,unsigned&) 0xa0
libit_art_sc53.so.5`void IT_CDR_InStream::read_octet_array(CORBA::OctetSeq&,unsigned,unsigned) 0x194
libit_giop_sc53.so.5`bool IT_GIOP_InStream::read_header(GIOP::MessageHeader_1_1&) 0x44
libit_giop_sc53.so.5`GIOP::ReplyStatusType IT_GIOP_ClientInterceptorImpl::read_reply(IT_Binding::ClientRequest*,unsigned,const GIOP::Version&,short&,IT_GIOP_ResponseFlags,IT_GIOP_InStream&) 0x5c
libit_giop_sc53.so.5`void IT_GIOP_ClientInterceptorImpl::invoke(IT_Binding::ClientRequest*) 0x120
libit_art_sc53.so.5`void IT_Binding_IORRequest::invoke() 0xb0
libit_art_sc53.so.5`void CORBA::IT_Cxx_DPBase::_it_invoke_helper(const CORBA::IT_Cxx_DPBase::_OpDescriptor&,CORBA::IT_Streamable**,CORBA::IT_Streamable**,CORBA::IT_Streamable*,CORBA::IT_Context*) 0x2ac

Clarifying Information
Error Message
Defect/Enhancement Number
Cause Contention on that mutex is caused by running concurrent invocations over either a single proxy or a set of proxies for CORBA objects hosted by the same POA. Such proxies share a client-side binding.
Resolution

To avoid contention on that mutex, more client-side bindings need to be created to spread the threads making invocations across, by creating more ORBs purely to host proxies.

Further details on how the client-side of the application is structured and how the CORBA object(s) the client invokes on are spread across POAs are needed in order to investigate such an issue.

Furthermore, use plockstat and dtrace tools in order to capture more details on the synchronization objects.

Workaround
Notes
Attachment
Created date: 06 September 2011
Last Modified: 13 February 2013
Last Published: 23 June 2012
First Published date: 09 September 2011

#Orbix
#KnowledgeDocs