> On Dec. 6, 2013, 4:14 p.m., Mark Michelson wrote:
> > /branches/1.8/main/pbx.c, lines 7804-7805
> > <https://reviewboard.asterisk.org/r/3055/diff/2/?file=49178#file49178line7804>
> >
> >     I don't understand what this is supposed to be doing. This lock doesn't 
> > actually protect anything. I suspect this may narrow the window of the race 
> > condition but it seems like whatever dangerous operation was occurring can 
> > still occur since that dangerous operation is not surrounded by the lock.

The lock is being used to delay the release of the objects - once that begins 
the lock is immediately released to prevent slowdown of dialplan execution.


> On Dec. 6, 2013, 4:14 p.m., Mark Michelson wrote:
> > /branches/1.8/main/pbx.c, lines 825-827
> > <https://reviewboard.asterisk.org/r/3055/diff/2/?file=49178#file49178line825>
> >
> >     Since these functions are local to pbx.c, declare them static. Also use 
> > "static" on the function definitions.
> >     
> >     Since the new lock is a mutex, why do you have read and write lock 
> > functions?

I mistakenly duplicated the code behind the contexts lock (which was read/write 
but was behind the scenes changed to mutex to resolve issue) instead of 
creating it as a read/write lock.


- Scott


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


On Dec. 6, 2013, 4:44 p.m., Scott Griepentrog wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/3055/
> -----------------------------------------------------------
> 
> (Updated Dec. 6, 2013, 4:44 p.m.)
> 
> 
> Review request for Asterisk Developers and Matt Jordan.
> 
> 
> Bugs: AST-1179 and AST-1246
>     https://issues.asterisk.org/jira/browse/AST-1179
>     https://issues.asterisk.org/jira/browse/AST-1246
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> During dialplan execution in pbx_extension_helper(), the contexts global read 
> lock is used prevent changes to the dialplan.  This patch adds a lock between 
> that point and until after the extension previously found is no longer being 
> referenced -- after variable substitution, but before app execution.  This 
> new lock prevents the extension's allocation from being released by module 
> reload when it is still being used in an expression evaluation.
> 
> 
> Diffs
> -----
> 
>   /branches/1.8/main/pbx.c 403430 
> 
> Diff: https://reviewboard.asterisk.org/r/3055/diff/
> 
> 
> Testing
> -------
> 
> Testsuite test 'dialplan_stress' (https://reviewboard.asterisk.org/r/3056/) 
> created to isolate this problem and test this fix.
> 
> 
> Thanks,
> 
> Scott Griepentrog
> 
>

-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to