[asterisk-bugs] [Asterisk 0015349]: Deadlock in do_monitor() of chan_sip
Asterisk Bug Tracker
noreply at bugs.digium.com
Mon Jun 29 20:53:49 CDT 2009
A NOTE has been added to this issue.
======================================================================
https://issues.asterisk.org/view.php?id=15349
======================================================================
Reported By: samy
Assigned To: mmichelson
======================================================================
Project: Asterisk
Issue ID: 15349
Category: Channels/chan_sip/General
Reproducibility: have not tried
Severity: major
Priority: normal
Status: assigned
Asterisk Version: 1.6.0.10
Regression: No
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-06-29 20:53 CDT
======================================================================
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.
======================================================================
----------------------------------------------------------------------
(0107215) samy (reporter) - 2009-06-29 20:53
https://issues.asterisk.org/view.php?id=15349#c107215
----------------------------------------------------------------------
One additional note, the infinite loop in `dialoglist` starts from the
beginning (meaning `dialoglist` is repeated).
It COULD have been:
a -> b -> c -> d -> b -> c -> d -> b -> c -> d....
But in two instances of the loop, it's always looped back to 'a' (which I
think could further be proof for my theory, but who knows...not me :)
In the two cores that I have, it's:
a -> b -> c -> d -> a -> b -> c -> d -> a...
Issue History
Date Modified Username Field Change
======================================================================
2009-06-29 20:53 samy Note Added: 0107215
======================================================================
More information about the asterisk-bugs
mailing list