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

Jeff Peeler reviewboard at asterisk.org
Wed Jan 12 15:20:34 CST 2011

This is an automatically generated e-mail. To reply, visit:

(Updated 2011-01-12 15:20:34.734469)

Review request for Asterisk Developers.


Addressed comments.


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.

Diffs (updated)

  /branches/1.6.2/main/pbx.c 301681 

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


one47 has reported on the issue that it has been going well so far (for 18 hours):



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20110112/2f6b6f3a/attachment.htm>

More information about the asterisk-dev mailing list