[asterisk-bugs] [Asterisk 0016608]: [patch] Deadlock on &(&channels)->lock

Asterisk Bug Tracker noreply at bugs.digium.com
Tue May 11 06:52:53 CDT 2010


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=16608 
====================================================================== 
Reported By:                sergee
Assigned To:                tilghman
====================================================================== 
Project:                    Asterisk
Issue ID:                   16608
Category:                   Channels/General
Reproducibility:            random
Severity:                   major
Priority:                   normal
Status:                     ready for testing
Target Version:             1.6.2.9
Asterisk Version:           SVN 
JIRA:                       SWP-732 
Regression:                 No 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases): 1.6.0 
SVN Revision (number only!): 237060 
Request Review:              
====================================================================== 
Date Submitted:             2010-01-14 15:04 CST
Last Modified:              2010-05-11 06:52 CDT
====================================================================== 
Summary:                    [patch] Deadlock on &(&channels)->lock
Description: 
I've got 2 deadlocks in 3 days. It happens in a peak hours, with more then
a hundred calls in the system.

I've got 2 files 1 with "core show locks" - from the first deadlock (the
day before yesterday), second file - with output from gdb (intho thread,
thread apply all bt, thread apply all bt full) - from today's deadlock.
====================================================================== 

---------------------------------------------------------------------- 
 (0121692) sergee (reporter) - 2010-05-11 06:52
 https://issues.asterisk.org/view.php?id=16608#c121692 
---------------------------------------------------------------------- 
got the same problem: server stops processing new calls:

[root at sip ~]# asterisk -rx "core show locks"

=======================================================================
=== Currently Held Locks ==============================================
=======================================================================
===
=== <file> <line num> <function> <lock name> <lock addr> (times locked)
===
=== Thread ID: 55450512 (do_monitor           started at [20257]
chan_sip.c restart_monitor())
=== ---> Tried and failed to get Lock https://issues.asterisk.org/view.php?id=0
(chan_sip.c): MUTEX 20197
do_monitor dialog 0xb4666730 (0)
=== -------------------------------------------------------------------
===
=== Thread ID: 89893776 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Lock https://issues.asterisk.org/view.php?id=0 (channel.c): MUTEX 2580
__ast_read (channel lock)
0xa1e6a254 (1)
=== ---> Lock https://issues.asterisk.org/view.php?id=1 (chan_sip.c): MUTEX 6143
sip_read p 0xb4666730 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 89533328 (netconsole           started at [ 1087]
asterisk.c listener())
=== ---> Tried and failed to get Lock https://issues.asterisk.org/view.php?id=0
(channel.c): MUTEX 1215
channel_find_locked (channel lock) 0xa1e6a254 (0)
=== -------------------------------------------------------------------
===
=== Thread ID: 68967312 (netconsole           started at [ 1087]
asterisk.c listener())
=== ---> Tried and failed to get Lock https://issues.asterisk.org/view.php?id=0
(channel.c): MUTEX 1215
channel_find_locked (channel lock) 0xa1e6a254 (0)
=== -------------------------------------------------------------------
===
=======================================================================


I tryed to restart it properly, with CLI command 'restart now' - but
server didn't restart, also output of "core show locks" changed to what
i've seen before:

[root at sip ~]# asterisk -rx "core show locks"

=======================================================================
=== Currently Held Locks ==============================================
=======================================================================
===
=== <file> <line num> <function> <lock name> <lock addr> (times locked)
===
=== Thread ID: 55450512 (do_monitor           started at [20257]
chan_sip.c restart_monitor())
=== ---> Tried and failed to get Lock https://issues.asterisk.org/view.php?id=0
(chan_sip.c): MUTEX 20197
do_monitor dialog 0xb4666730 (0)
=== -------------------------------------------------------------------
===
=== Thread ID: 60648336 (monitor_sig_flags    started at [ 3523]
asterisk.c main())
=== ---> Lock https://issues.asterisk.org/view.php?id=0 (channel.c): RDLOCK 491
ast_begin_shutdown
&(&channels)->lock 0x81dd9a8 (1)
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=1 (channel.c):
MUTEX 1632 ast_softhangup
(channel lock) 0xa1e6a254 (1)
=== --- ---> Locked Here: channel.c line 2580 (__ast_read)
=== -------------------------------------------------------------------
===
=== Thread ID: 89893776 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Lock https://issues.asterisk.org/view.php?id=0 (channel.c): MUTEX 2580
__ast_read (channel lock)
0xa1e6a254 (1)
=== ---> Lock https://issues.asterisk.org/view.php?id=1 (chan_sip.c): MUTEX 6143
sip_read p 0xb4666730 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 137595792 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 35421072 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 154131344 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 83032976 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 85695376 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 149318544 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 121359248 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 111782800 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 24923024 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 19151760 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 41601936 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 19889040 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 34929552 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 160054160 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 28179344 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 126606224 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 36658064 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 39009168 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 54868880 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 148708240 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 24677264 (pbx_thread           started at [ 4027] pbx.c
ast_pbx_start())
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=0 (channel.c):
WRLOCK 1685 ast_hangup
&(&channels)->lock 0x81dd9a8 (1)
=== -------------------------------------------------------------------
===
=== Thread ID: 89533328 (netconsole           started at [ 1087]
asterisk.c listener())
=== ---> Tried and failed to get Lock https://issues.asterisk.org/view.php?id=0
(channel.c): MUTEX 1215
channel_find_locked (channel lock) 0xa1e6a254 (0)
=== -------------------------------------------------------------------
===
=== Thread ID: 68967312 (netconsole           started at [ 1087]
asterisk.c listener())
=== ---> Tried and failed to get Lock https://issues.asterisk.org/view.php?id=0
(channel.c): MUTEX 1215
channel_find_locked (channel lock) 0xa1e6a254 (0)
=== -------------------------------------------------------------------
===
=== Thread ID: 32533392 (netconsole           started at [ 1087]
asterisk.c listener())
=== ---> Lock https://issues.asterisk.org/view.php?id=0 (channel.c): RDLOCK 491
ast_begin_shutdown
&(&channels)->lock 0x81dd9a8 (1)
=== ---> Waiting for Lock https://issues.asterisk.org/view.php?id=1 (channel.c):
MUTEX 1632 ast_softhangup
(channel lock) 0xa1e6a254 (1)
=== --- ---> Locked Here: channel.c line 2580 (__ast_read)
=== -------------------------------------------------------------------
===
======================================================================= 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-05-11 06:52 sergee         Note Added: 0121692                          
======================================================================




More information about the asterisk-bugs mailing list