[asterisk-bugs] [Asterisk 0012307]: Deadlock in chan_local

noreply at bugs.digium.com noreply at bugs.digium.com
Thu Mar 27 11:11:29 CDT 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=12307 
====================================================================== 
Reported By:                callguy
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   12307
Category:                   Channels/chan_local
Reproducibility:            always
Severity:                   block
Priority:                   normal
Status:                     new
Asterisk Version:           1.4.18 
SVN Branch (only for SVN checkouts, not tarball releases):  1.4  
SVN Revision (number only!): 105409 
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             03-26-2008 10:46 CDT
Last Modified:              03-27-2008 11:11 CDT
====================================================================== 
Summary:                    Deadlock in chan_local
Description: 
We are seeing in certain situations (mainly a SIP hairpin that redirects a
call on the same server out to another user via the local channel) a
deadlock will occur. Once the deadlock occurs the system will continue to
process calls for a period of time, but will eventually hang completely. 

Console output, core show locks, and output of ast_grab core attached. 
====================================================================== 

---------------------------------------------------------------------- 
 putnopvut - 03-27-08 11:11  
---------------------------------------------------------------------- 
What appears to be the problem here is that there are two local channels
that are, for lack of a better term, "pointed" at each other in such a way
that the component channels of each local channel are the same as the
component channels of the far end local channel. If this is somewhat
confusing, I can provide a bit more information about how local channels
work.

There are potentially two approaches to fixing this deadlock. First, if we
can figure out how the local channels have become pointed at each other the
way they are, we can figure out if this is a problem itself or if it is
something that should be handleable. If it should be handleable, then the
correct course of action would be to play with the locking order to make it
so that this deadlock cannot happen. I suspect that this local channel
configuration should be handleable. I plan on spending some time today
trying to see if I can come up with the proper course of action. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
03-27-08 11:11  putnopvut      Note Added: 0084653                          
======================================================================




More information about the asterisk-bugs mailing list