[asterisk-bugs] [Asterisk 0017185]: [regression] Using Local channels with queues causes deadlocks

Asterisk Bug Tracker noreply at bugs.digium.com
Tue Apr 20 16:43:43 CDT 2010


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=17185 
====================================================================== 
Reported By:                schmoozecom
Assigned To:                dvossel
====================================================================== 
Project:                    Asterisk
Issue ID:                   17185
Category:                   Channels/chan_local
Reproducibility:            sometimes
Severity:                   block
Priority:                   normal
Status:                     assigned
Target Version:             1.4.31
Asterisk Version:           1.4.30 
JIRA:                       SWP-1295 
Regression:                 No 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2010-04-14 16:23 CDT
Last Modified:              2010-04-20 16:43 CDT
====================================================================== 
Summary:                    [regression] Using Local channels with queues causes
deadlocks
Description: 
Since upgrading to asterisk 1.4.30 we are seeing calls that get answered in
the queue still show as calls waiting in the queue.  We have seen this on 2
systems now and downgrading to 1.4.29 solves the issue.  When looking at
"Show Queue" it will show a dahdi channel as still waiting in the queue
even though the call has been answered and hung up.

Below is a print out of "core show locks" when asterisk is in this state.

=======================================================================
=== Currently Held Locks ==============================================
=======================================================================
===
=== <file> <line num> <function> <lock name> <lock addr> (times locked)
===
=== Thread ID: -1208542320 (do_devstate_changes  started at [  363]
devicestate.c ast_device_state_engine_init())
=== ---> Tried and failed to get Lock https://issues.asterisk.org/view.php?id=0
(channel.c): MUTEX 1130
channel_find_locked (channel lock) 0x9bc63f8 (0)
=== -------------------------------------------------------------------
===
=== Thread ID: -1215984752 (pbx_thread           started at [ 2645] pbx.c
ast_pbx_start())
=== ---> Lock https://issues.asterisk.org/view.php?id=0 (channel.c): MUTEX 1556
ast_hangup (channel lock)
0x9be8648 (1)
=== ---> Tried and failed to get Lock https://issues.asterisk.org/view.php?id=1
(chan_local.c): MUTEX 581
local_hangup (channel lock) 0x9bc63f8 (0)
=== -------------------------------------------------------------------
===
=== Thread ID: -1215247472 (pbx_thread           started at [ 2645] pbx.c
ast_pbx_start())
=== ---> Lock https://issues.asterisk.org/view.php?id=0 (channel.c): MUTEX 1704
ast_activate_generator (channel
lock) 0x9bc63f8 (1)
=== ---> Tried and failed to get Lock https://issues.asterisk.org/view.php?id=1
(chan_local.c): MUTEX 185
local_queue_frame (channel lock) 0x9be8648 (0)
=== -------------------------------------------------------------------
===
=== Thread ID: -1217889392 (netconsole           started at [ 1036]
asterisk.c listener())
=== ---> Tried and failed to get Lock https://issues.asterisk.org/view.php?id=0
(channel.c): MUTEX 1130
channel_find_locked (channel lock) 0x9bc63f8 (0)
=== -------------------------------------------------------------------
===
=== Thread ID: -1219118192 (netconsole           started at [ 1036]
asterisk.c listener())
=== ---> Tried and failed to get Lock https://issues.asterisk.org/view.php?id=0
(channel.c): MUTEX 1130
channel_find_locked (channel lock) 0x9bc63f8 (0)
=== -------------------------------------------------------------------
===
=== Thread ID: -1215493232 (netconsole           started at [ 1036]
asterisk.c listener())
=== ---> Tried and failed to get Lock https://issues.asterisk.org/view.php?id=0
(channel.c): MUTEX 1130
channel_find_locked (channel lock) 0x9bc63f8 (0)
=== -------------------------------------------------------------------
===
=== Thread ID: -1217643632 (netconsole           started at [ 1036]
asterisk.c listener())
=== ---> Tried and failed to get Lock https://issues.asterisk.org/view.php?id=0
(channel.c): MUTEX 1130
channel_find_locked (channel lock) 0x9bc63f8 (0)
=== -------------------------------------------------------------------
===
=======================================================================


While this is happening I can go into the asterisk CLI any type a command
like "core show channels" and see all active channels but if I want to run
another command after that like "sip show peers" I have to leave the CLI
and come back each time.  Restarting asterisk cleans it up and removes the
lock call.
====================================================================== 

---------------------------------------------------------------------- 
 (0120665) dvossel (administrator) - 2010-04-20 16:43
 https://issues.asterisk.org/view.php?id=17185#c120665 
---------------------------------------------------------------------- 
I take that back, this is not related to r256014.

I spent quite a bit of time reviewing this and I'm not sure how this is
possible yet.  One thing I did notice is that the line numbers in the back
trace provided line up perfectly for all the files in release 1.4.30 except
for the items in app_queue.c.  Do you have any local changes to app_queue
you are using? 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-04-20 16:43 dvossel        Note Added: 0120665                          
======================================================================




More information about the asterisk-bugs mailing list