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

noreply at bugs.digium.com noreply at bugs.digium.com
Fri Mar 14 12:02:35 CDT 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-14-2008 12:02 CDT
====================================================================== 
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-14-08 12:02  
---------------------------------------------------------------------- 
It looks like bug 0012127 is a separate issue, at least based on
putnopvut's comments about a problem in the channel locking in SIP where
transfers are involved.

It is of course possible for other issues to manifest themselves as
problems here. channel_find_locked isn't a source of problems itself per se
- it's just that a deadlocked channel would cause a deadlock there.

Asterisk included a hack to try and avoid deadlocks in channel_find_locked
if a channel was left locked, but it had a bug that caused locked channels
to send it into an infinite loop.
asterisk-1.4.18-fix-channel-find-locked-deadlock-skip.patch just fixed that
hack so that it would actually skip deadlocked channels. Deadlocked
channels could naturally cause problems elsewhere.

I'm personally uncomfortable with the idea of a trylock()/usleep() for
loop, figuring that at least it should be a timedlock and at best such
hacks shouldn't be used at all. But so long as the patch stops deadlocks
from causing larger problems in the rest of the PBX, I'm running it on our
production system, pending a real fix for this channel deadlock issue. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
03-14-08 12:02  ChaseVenters   Note Added: 0083979                          
======================================================================




More information about the asterisk-bugs mailing list