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

Asterisk Bug Tracker noreply at bugs.digium.com
Thu Jul 29 16:50:39 CDT 2010


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=17610 
====================================================================== 
Reported By:                warmguy
Assigned To:                tilghman
====================================================================== 
Project:                    Asterisk
Issue ID:                   17610
Category:                   Channels/chan_sip/General
Reproducibility:            have not tried
Severity:                   major
Priority:                   normal
Status:                     acknowledged
Target Version:             1.6.2.12
Asterisk Version:           SVN 
JIRA:                       SWP-1839 
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-29 16:50 CDT
====================================================================== 
Summary:                    [patch] 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
====================================================================== 

---------------------------------------------------------------------- 
 (0125339) tilghman (administrator) - 2010-07-29 16:50
 https://issues.asterisk.org/view.php?id=17610#c125339 
---------------------------------------------------------------------- 
Patch for trunk uploaded.  I realize this may look somewhat ridiculous, but
it's the result of discovering that our tendency of usleep(1) does not
actually yield the processor to other threads, as intended.  This might
have worked before the days of multiple cores, but we need to wait much
longer today, because we may be the only thread that is in a short wait
state, owing to the other threads being on runnable cores.  We must thus
wait longer, to ensure that the resource is actually released correctly and
made available to other cores.

In any case, please test and verify that this patch fixes the issue for
you. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2010-07-29 16:50 tilghman       Note Added: 0125339                          
======================================================================




More information about the asterisk-bugs mailing list