Observing deadlock between SIPhandler and SDL Router in CUCM. 
Looks like this is fixed in glibc 2.17.162 version, but we see the issue still 

https://bugzilla.redhat.com/show_bug.cgi?id=906468 

Need help to identify the  root cause and add a preventive fix.

 

Here is the error messages:

 

***********************************************************************************************************************************************************************************************************************************

 gdb) thread 40

[Switching to thread 40 (Thread 0xaca90b40 (LWP 5935))]

#3 0xf67fdbd1 in malloc () from /usr/lib/libc.so.6

(gdb) bt

#0 0xf775a430 in __kernel_vsyscall ()

#1 0xf688d462 in __lll_lock_wait_private () from /usr/lib/libc.so.6

#2 0xf68006c0 in _L_lock_14246 () from /usr/lib/libc.so.6

#3 0xf67fdbd1 in malloc () from /usr/lib/libc.so.6

#4 0xf6a68907 in operator new(unsigned int) () from /usr/local/cm/lib/libstlport.so.5.2

#5 0x0936c3f9 in operator() (this=0xaca8dd70) at /view/BLD-cm_12_5_1-cct-ccm-d/vob/ccm/Common/Include/Utilities/Member.hpp:52

#6 c_str (this=0xaca8dd70) at /view/BLD-cm_12_5_1-cct-ccm-d/vob/ccm/Common/Include/CallManager/TDCLCpShares.hpp:862

#7 assign (len=12, digits=0xaca8de34 "+19570676705", this=0xaca8dd70) at /view/BLD-cm_12_5_1-cct-ccm-d/vob/ccm/Common/Include/CallManager/TDCLCpShares.hpp:1252

#8 CdPNumStringVar::CdPNumStringVar (this=0xaca8dd70, digits=0xaca8de34 "+19570676705", len=12) at /view/BLD-cm_12_5_1-cct-ccm-d/vob/ccm/Common/Include/CallManager/TDCLCpShares.hpp:846

#9 0x092efdf8 in SIPCdpc::processSIPSetupMsg (this=this@entry=0x7de0c8e0, sipContainerWrapper=sipContainerWrapper@entry=0x8e966e78) at ProcessSIPCdpc.cpp:2142

#10 0x0934086d in SIPCdpc::processSIPSetupInd (this=this@entry=0x7de0c8e0) at ProcessSIPCdpc.cpp:3300

#11 0x0934ec08 in SIPCdpc::inCall_waitRSVPRes_PolicyAndCACRegisterRes (this=0x7de0c8e0, s=

Name : "PolicyAndCACRegisterRes",

Sender : spy:PID (8,100,152,1) "ReservationMgr",

Receiver : spy:PID (8,100,180,995813) "SIPCdpc",

Priority : kNormalPriority) at ProcessSIPCdpc.cpp:26471

#12 0x09e69c7b in SdlProcessBase::inputSignal (this=0x7de0c8e0, rSignal=0x807d8d80, traceType=SdlSystemLog::SignalRouterThread, highPriority=0, normalPriority=0, lowPriority=0, veryLowPriority=0, lazyPriority=0,

dbUpdatePriority=0) at SdlProcessBase.cpp:417

#13 0x09e6ce8a in SdlRouter::callProcess (this=this@entry=0xcfff0e0, _sdlSignal=_sdlSignal@entry=0x807d8d80, _deleteSignal=@0xaca8fdb3: true, _traceType=_traceType@entry=SdlSystemLog::SignalRouterThread, _hp=0,

_np=0, _lp=0, _vlp=0, _lzp=0, _dbp=0) at SdlRouter.cpp:257

#14 0x09e6d60c in SdlRouter::scheduler (this=this@entry=0xcfff0e0) at SdlRouter.cpp:164

#15 0x09e6dcad in SdlRouter::schedulerInit (sdlRouter=0xcfff0e0) at SdlRouter.cpp:107

#16 0xf69beb3c in start_thread () from /usr/lib/libpthread.so.0

#17 0xf687f44e in clone () from /usr/lib/libc.so.6

 

(gdb) thread 1

[Switching to thread 1 (Thread 0xa9136b40 (LWP 5964))]

#0 0xf67fb876 in _int_malloc () from /usr/lib/libc.so.6

(gdb) bt

#0 0xf67fb876 in _int_malloc () from /usr/lib/libc.so.6

#1 0xf67fdbda in malloc () from /usr/lib/libc.so.6

#2 0xf6a68907 in operator new(unsigned int) () from /usr/local/cm/lib/libstlport.so.5.2

#3 0x09cd4ce2 in sip_get_sipspi_message () at sip_common_spi.cpp:20059

#4 0x09cf94d1 in sipTransportPostSendMessage (msg=0x8a20a150, gcb=gcb@entry=0x8015d208, tcb_context=..., connId=24, destAddr=0x8015d228, destPort=5061, transport=SIP_TRANSPORT_TLS_OVER_TCP, emit_debugs=1 '\001',

ip_sig_tos=0 '\000') at sip_common_transport.cpp:3032

#5 0x09cf9946 in sipTransportLogicSendMsg (gcb=gcb@entry=0x8015d208, sw_transport=sw_transport@entry=0 '\000') at sip_common_transport.cpp:2367

#6 0x09cfab6f in sipSPITransportSendMessage (msg=msg@entry=0x8a20a150, context=context@entry=0x8015d208, addr=addr@entry=0xa91355dc, port=port@entry=5061, sentBy_port=sentBy_port@entry=0,

is_request=is_request@entry=1 '\001', transport=transport@entry=SIP_TRANSPORT_TLS_OVER_TCP, sw_transport=0 '\000', func=func@entry=0x9cb0080 <sentAck(_sipGenericCB*)>, tcb_context=...)

at sip_common_transport.cpp:3323

#7 0x09cbe638 in sipSPISendAck (ccb=0x8015d208, flags=flags@entry=0, func=0x9cb0080 <sentAck(_sipGenericCB*)>) at sip_common_send_msg.cpp:2992

#8 0x09ccc910 in sipSPISendAckForMidCallInvite (ccb=0x8015d208, flag=flag@entry=0) at sip_common_spi.cpp:8745

#9 0x09ccdb37 in sact_sent_mid_invite_new_message_response (ccb=0x8015d208, response=0x89305d58) at sip_common_spi.cpp:9278

#10 0x09cda815 in ccsip_spi_process_event (freeEvent=0xa91359df "\001", event=0x7ca43348) at sip_common_spi.cpp:19333

#11 ccsip_process_sipspi_queue_event (event=event@entry=0x7ca43348) at sip_common_spi.cpp:19997

#12 0x093ef758 in SIPHandler::wait_SIPNormalizeRes (this=0xac1c05e8, s=

Name : "SIPNormalizeRes",

Sender : spy:PID (8,100,184,1) "SIPNormalization",

Receiver : spy:PID (8,100,183,1) "SIPHandler",

Priority : kNormalPriority) at ProcessSIPHandler.cpp:1683

#13 0x09e69c7b in SdlProcessBase::inputSignal (this=this@entry=0xac1c05e8, rSignal=rSignal@entry=0x7d2f8a78, traceType=SdlSystemLog::SignalThreadedWithPriorities, highPriority=0, normalPriority=0, lowPriority=0,

veryLowPriority=0, lazyPriority=0, dbUpdatePriority=0) at SdlProcessBase.cpp:417

#14 0x09e8d2fd in SdlThreadedProcess::threadQueueReader (this=this@entry=0xac1c05e8) at SdlThreadedProcess.cpp:110

#15 0x09e8d56d in SdlThreadedProcess::threadQueueReaderInit (sdlThreadedProcess=0xac1c05e8) at SdlThreadedProcess.cpp:75

#16 0xf69beb3c in start_thread () from /usr/lib/libpthread.so.0

#17 0xf687f44e in clone () from /usr/lib/libc.so.6

 

BOth the threads are allocated memory at the same time , eventually resulting in deadlock.

 

-Thanks