[asterisk-bugs] [Asterisk 0015349]: Deadlock in do_monitor() of chan_sip

Asterisk Bug Tracker noreply at bugs.digium.com
Wed Dec 9 08:57:57 CST 2009


A NOTE has been added to this issue. 
====================================================================== 
https://issues.asterisk.org/view.php?id=15349 
====================================================================== 
Reported By:                samy
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   15349
Category:                   Channels/chan_sip/General
Reproducibility:            have not tried
Severity:                   major
Priority:                   normal
Status:                     acknowledged
Asterisk Version:           1.6.0.10 
JIRA:                        
Regression:                 No 
Reviewboard Link:            
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2009-06-17 22:08 CDT
Last Modified:              2009-12-09 08:57 CST
====================================================================== 
Summary:                    Deadlock in do_monitor() of chan_sip
Description: 
Unfortunately I have no steps to reproduce this. Had about 30 calls going
through, all calls are SIP, and randomly ran into a SIP deadlock (`sip show
channels` would cause console to hang, no new SIP calls would begin).

It sort of looks like `dialoglist` is an infinite loop (every member
points to at least one other member, there is never a ->next that points to
null), but I don't see how that could happen in the code so I'm not sure.

I did get `core show locks` output a few times, and I have a modified
version that provides the time of the last time each lock was
locked/unlocked. This is interesting because we can see lock
https://issues.asterisk.org/view.php?id=0 never
changes and is held for multiple minutes before I restart, but lock
https://issues.asterisk.org/view.php?id=1
changes constantly.

The fact that lock https://issues.asterisk.org/view.php?id=1 (lock on
dialog->sip_pvt) is constantly changing in
do_monitor makes me think `dialoglist` is an infinite loop.
======================================================================
Relationships       ID      Summary
----------------------------------------------------------------------
related to          0015363 1.6.2.0_beta3 locks up in certain SIP s...
related to          0015862 chan_sip deadlock in mutex sip_alloc
====================================================================== 

---------------------------------------------------------------------- 
 (0114979) tbelder (reporter) - 2009-12-09 08:57
 https://issues.asterisk.org/view.php?id=15349#c114979 
---------------------------------------------------------------------- 
My logfile of asterisk reports the following warnings:

[Dec 9 10:52:40] WARNING[20591] channel.c: Fixup failed on channel
SIP/1121-0a4b8f80, strange things may happen.
[Dec 9 10:52:40] WARNING[20591] channel.c: Hangup failed! Strange things
may happen!
[Dec 9 10:52:40] WARNING[20591] channel.c: Masquerade failed
[Dec 9 10:52:40] WARNING[20591] channel.c: Channel 'SIP/1121-0a4b8f80' may
not have been hung up properly

At 10:53:15 my SIP provider reports an UNREACHABLE notice to me.
I've checked immediately the customer's site and chan_sip wasn't
responding anymore.

Possible this has something to do with each other. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2009-12-09 08:57 tbelder        Note Added: 0114979                          
======================================================================




More information about the asterisk-bugs mailing list