[asterisk-bugs] [Asterisk 0017610]: Deadlock is happended.( between channel and sip_pvt lock)

Asterisk Bug Tracker noreply at bugs.digium.com
Mon Jul 12 02:24:57 CDT 2010


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=17610 
====================================================================== 
Reported By:                warmguy
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   17610
Category:                   Channels/chan_sip/General
Reproducibility:            have not tried
Severity:                   major
Priority:                   normal
Status:                     feedback
Asterisk Version:           SVN 
JIRA:                        
Regression:                 No 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases):  trunk 
SVN Revision (number only!): 274052 
Request Review:              
====================================================================== 
Date Submitted:             2010-07-08 23:36 CDT
Last Modified:              2010-07-12 02:24 CDT
====================================================================== 
Summary:                    Deadlock is happended.( between channel and sip_pvt
lock)
Description: 
I have been testing asterisk. (Trunk version)
When testing more than 4cps asterisk does not work.

I am confirmed reason for using GDB.
The reason is estimated to deadlock. Help needed.

Between thread ID 24 and thread ID 5 the circular Deadlock occurs.
Thread 24 (Thread 0x8cc8b90 (LWP 1886)):   chan lock(waiting) <-
sip_pvt_lock(acquired) <- monlock(acquired) 
Thread 5 (Thread 0x648ab90 (LWP 1948)): sip_pvt lock(waiting) <- chan
lock(acquired) 

Here is the debugging information.
<removed> pabelanger
====================================================================== 

---------------------------------------------------------------------- 
 (0124476) schmidts (reporter) - 2010-07-12 02:24
 https://issues.asterisk.org/view.php?id=17610#c124476 
---------------------------------------------------------------------- 
i´ve got the same problem but found that it should be fixed in revision
274727.

have a look at the file main/channel.c at row 1258 if there is this:
prev = c;
then you should update your trunk, cause there is a deadlock situation
which is fixed if your row looks like this:
_prev = c;
this could also happens when you do "core show channels verbose" and one
channel is locked, cause the deadlock avoidence does an infinite loop.
if stress tested 1.6.2.9 with sipp with around 300 concurent calls and 15
cps and everything works wealthy after this fix. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-07-12 02:24 schmidts       Note Added: 0124476                          
======================================================================




More information about the asterisk-bugs mailing list