[asterisk-commits] bebuild: tag certified-1.8.11-cert3-rc2 r368801 - in /certified/tags/1.8.11-c...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Jun 12 09:39:50 CDT 2012


Author: bebuild
Date: Tue Jun 12 09:39:46 2012
New Revision: 368801

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=368801
Log:
Merge 368790 to 1.8.11-cert3-rc2

Removed:
    certified/tags/1.8.11-cert3-rc2/certified-asterisk-1.8.11-cert3-rc1-summary.html
    certified/tags/1.8.11-cert3-rc2/certified-asterisk-1.8.11-cert3-rc1-summary.txt
Modified:
    certified/tags/1.8.11-cert3-rc2/   (props changed)
    certified/tags/1.8.11-cert3-rc2/.version
    certified/tags/1.8.11-cert3-rc2/ChangeLog
    certified/tags/1.8.11-cert3-rc2/channels/chan_sip.c

Propchange: certified/tags/1.8.11-cert3-rc2/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jun 12 09:39:46 2012
@@ -1,1 +1,2 @@
 /branches/1.8:357665,358162,359656,359706,359979,360086,360884,367781,367843
+/certified/branches/1.8.11:368790

Modified: certified/tags/1.8.11-cert3-rc2/.version
URL: http://svnview.digium.com/svn/asterisk/certified/tags/1.8.11-cert3-rc2/.version?view=diff&rev=368801&r1=368800&r2=368801
==============================================================================
--- certified/tags/1.8.11-cert3-rc2/.version (original)
+++ certified/tags/1.8.11-cert3-rc2/.version Tue Jun 12 09:39:46 2012
@@ -1,1 +1,1 @@
-1.8.11-cert3-rc1
+1.8.11-cert3-rc2

Modified: certified/tags/1.8.11-cert3-rc2/ChangeLog
URL: http://svnview.digium.com/svn/asterisk/certified/tags/1.8.11-cert3-rc2/ChangeLog?view=diff&rev=368801&r1=368800&r2=368801
==============================================================================
--- certified/tags/1.8.11-cert3-rc2/ChangeLog (original)
+++ certified/tags/1.8.11-cert3-rc2/ChangeLog Tue Jun 12 09:39:46 2012
@@ -1,3 +1,29 @@
+2012-06-12  Asterisk Development Team <asteriskteam at digium.com>
+
+	* Certified Asterisk 1.8.11-cert3-rc2 Released.
+
+2012-06-12  Asterisk Development Team <asteriskteam at digium.com>
+
+	* Fix deadlock in SIP transfers that involve a REFER request
+
+	  In r367163, "send to voicemail" functionality was added to the SIP
+	  channel driver.  This required updating the party redirecting
+	  information for the channel based on the headers provided in the
+	  REFER request.  WHen the redirecting party information is updated on
+	  the channel, a call to ast_indicate_data occurs.  Because
+	  handle_request_refer still had the sip_pvt locked, a deadlock could
+	  occur between the pbx_thread and the do_monitor thread servicing the
+	  REFER request.
+
+	  This patch preserves the proper locking order between the channel
+	  and the sip_pvt by ensuring that the sip_pvt is unlocked prior to
+	  updating the party redirecting information on the channel.
+
+	  (closes issue AST-903)
+	  Reported by: Matt Jordan
+	  patches:
+	    jira_ast_903_trunk.patch by rmudgett (license 5621)
+
 2012-05-31  Asterisk Development Team <asteriskteam at digium.com>
 
 	* Certified Asterisk 1.8.11-cert3-rc1 Released.

Modified: certified/tags/1.8.11-cert3-rc2/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/certified/tags/1.8.11-cert3-rc2/channels/chan_sip.c?view=diff&rev=368801&r1=368800&r2=368801
==============================================================================
--- certified/tags/1.8.11-cert3-rc2/channels/chan_sip.c (original)
+++ certified/tags/1.8.11-cert3-rc2/channels/chan_sip.c Tue Jun 12 09:39:46 2012
@@ -23987,16 +23987,18 @@
 	ast_party_redirecting_init(&redirecting);
 	memset(&update_redirecting, 0, sizeof(update_redirecting));
 	change_redirecting_information(p, req, &redirecting, &update_redirecting, FALSE);
+
+	/* Do not hold the pvt lock during a call that causes an indicate or an async_goto.
+	 * Those functions lock channels which will invalidate locking order if the pvt lock
+	 * is held.*/
+	sip_pvt_unlock(p);
 	ast_channel_update_redirecting(current.chan2, &redirecting, &update_redirecting);
 	ast_party_redirecting_free(&redirecting);
 
-	/* Do not hold the pvt lock during the indicate and async_goto. Those functions
-	 * lock channels which will invalidate locking order if the pvt lock is held.*/
 	/* For blind transfers, move the call to the new extensions. For attended transfers on multiple
 	 * servers - generate an INVITE with Replaces. Either way, let the dial plan decided
 	 * indicate before masquerade so the indication actually makes it to the real channel
 	 * when using local channels with MOH passthru */
-	sip_pvt_unlock(p);
 	ast_indicate(current.chan2, AST_CONTROL_UNHOLD);
 	res = ast_async_goto(current.chan2, refer_to_context, refer_to, 1);
 




More information about the asterisk-commits mailing list