[asterisk-bugs] [Asterisk 0011712]: core show channels becomes unresponsive - precursor to deadlock

noreply at bugs.digium.com noreply at bugs.digium.com
Mon Mar 3 15:21:58 CST 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=11712 
====================================================================== 
Reported By:                callguy
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   11712
Category:                   Core/Channels
Reproducibility:            always
Severity:                   block
Priority:                   normal
Status:                     feedback
Asterisk Version:           1.4.17 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             01-08-2008 21:23 CST
Last Modified:              03-03-2008 15:21 CST
====================================================================== 
Summary:                    core show channels becomes unresponsive - precursor
to deadlock
Description: 
After some period of time, core show channels will yield output, but not
give a final channel count at the end. After that, the console simply hangs
with no further output or commands possible. However, asterisk does
continue to process calls successfully for some period of time after that
before completely deadlocking (if you exit then bring up a new console you
will see output again). 

I suspect this may be a continuation of bug 11080 in some form, but it's
not completely clear to me. I should also note that we are testing file's
patch for 11687, but this didn't appear to be related as far as I could
tell. 

output of core show locks, and the info dump from ast_grab_core attached. 
======================================================================
Relationships       ID      Summary
----------------------------------------------------------------------
related to          0011960 Call from '' to extension '7104' reject...
====================================================================== 

---------------------------------------------------------------------- 
 ChaseVenters - 03-03-08 15:21  
---------------------------------------------------------------------- 
I just submitted a patch that corrects what seems to be an obvious problem
in channel_find_locked(). This is related to the infinite loop putnopvut
described when a channel is deadlocked. It seems the channel_find_locked()
function was intended to skip over a deadlocked channel but due to
assigning prev instead of _prev, it is falling into an infinite loop.

I can imagine that this patch might at least keep "core show channels" or
"Action: Status" in the manager from freezing if there are deadlocked
channels, but it does not address why any such channels might be
deadlocked, nor does it address the greater question of why a
trylock()/usleep() loop is being used anyway. To that end, I don't feel
that this patch is sufficient on which to close the ticket. It might just
help keep the deadlock from becoming more evident in the rest of the
process. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
03-03-08 15:21  ChaseVenters   Note Added: 0083300                          
======================================================================




More information about the asterisk-bugs mailing list