[asterisk-dev] [Code Review] Convert device state callbacks to ao2 objects to fix a deadlock.

Jeff Peeler reviewboard at asterisk.org
Fri Jan 7 21:06:45 CST 2011


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/1072/
-----------------------------------------------------------

Review request for Asterisk Developers.


Summary
-------

Lock scenario:
Thread 1
 holds ast_rdlock_contexts &conlock
 holds handle_statechange hints
 holds handle_statechange hint
  waiting for cb_extensionstate
   Locked Here: chan_sip.c line 7428 (find_call)
Thread 2
 holds handle_request_do &netlock
 holds find_call sip_pvt_ptr
  waiting for ast_rdlock_contexts &conlock
   Locked Here: pbx.c line 9911 (ast_rdlock_contexts)

Chan_sip has an established locking order of locking the sip_pvt and then getting the context lock. So the as stated by the summary, the operations in thread 2 have been modified to no longer require the context lock.


This addresses bug 18310.
    https://issues.asterisk.org/view.php?id=18310


Diffs
-----

  /branches/1.6.2/main/pbx.c 301088 

Diff: https://reviewboard.asterisk.org/r/1072/diff


Testing
-------

one47 has reported on the issue that it has been going well so far (for 18 hours):
https://issues.asterisk.org/view.php?id=18310#130297


Thanks,

Jeff

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20110107/89dfc600/attachment.htm>


More information about the asterisk-dev mailing list