Merged revisions 306215 via svnmerge from
authorJeff Peeler <jpeeler@digium.com>
Thu, 3 Feb 2011 23:50:08 +0000 (23:50 +0000)
committerJeff Peeler <jpeeler@digium.com>
Thu, 3 Feb 2011 23:50:08 +0000 (23:50 +0000)
commit285d953fdf78e104e3914da01caf81d6bd992cda
tree6312a6243a7a7a904a812b4660d30447b21a94fd
parent36da6b62865366b335511aa836d300e2dc163ea9
Merged revisions 306215 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r306215 | jpeeler | 2011-02-03 17:49:28 -0600 (Thu, 03 Feb 2011) | 20 lines

  Fix SIP deadlock involving state changes.

  Once again a call to pbx_builtin_getvar_helper (and pbx_builtin_setvar_helper)
  has caused locking problems. Both of these functions lock the channel when
  the channel argument is passed in!

  In this case, the suspected problem (the backtrace makes it impossible to tell)
  was the private being locked in sip_set_rtp_peer and then:
  transmit_reinvite_with_sdp
   try_suggested_sip_codec
     pbx_builtin_getvar_helper
  (Traced to verify that the fix was only required in 1.8 and later.)

  (closes issue #18491)
  Reported by: cmaj
  Patches:
        chan_sip_fix_deadlocks_bug_18491.txt uploaded by cmaj (license 830)
  Tested by: cmaj
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@306216 65c4cc65-6c06-0410-ace0-fbb531ad65f3
channels/chan_sip.c