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



branches/13/res/res_pjsip_outbound_publish.c
<https://reviewboard.asterisk.org/r/4178/#comment24369>

    Per a comment further down if the container can be used like it should be 
this can become lock free.



branches/13/res/res_pjsip_outbound_publish.c
<https://reviewboard.asterisk.org/r/4178/#comment24370>

    Is it actually possible for this to happen?



branches/13/res/res_pjsip_outbound_publish.c
<https://reviewboard.asterisk.org/r/4178/#comment24368>

    This is counter to how an ao2 global container is supposed to work/be used. 
As you are using it it has no real advantage.
    
    What you are supposed to do is construct a container and once done 
atomically swap. Both containers are lock free and remain unmodified. The 
objects inside *may* have locks and be modified but the container itself 
doesn't.
    
    Is it possible to do that with this implementation? If not then I think it 
can just become a regular container.



branches/13/res/res_pjsip_outbound_publish.c
<https://reviewboard.asterisk.org/r/4178/#comment24367>

    This is duplicating code from above. Would it not be better to assume that 
states may be NULL when setting it up above?
    
    Of course I made the assumption of the global container being used like 
elsewhere.
    
    If you can't do that then this can become a non-swappable regular container 
I'd say.



branches/13/res/res_pjsip_outbound_publish.c
<https://reviewboard.asterisk.org/r/4178/#comment24366>

    You need to be in a loop here. It's possible for this to get spuriously 
triggered.
    
    As for the time limit - can things be in a state where that is safe to do?
    
    Some logging would also be useful so people know what is going on if it 
waits a bit.


- Joshua Colp


On Nov. 20, 2014, 9:43 p.m., Kevin Harwell wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/4178/
> -----------------------------------------------------------
> 
> (Updated Nov. 20, 2014, 9:43 p.m.)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Bugs: ASTERISK-24514
>     https://issues.asterisk.org/jira/browse/ASTERISK-24514
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> When using a non-default sorcery wizard (in this instance realtime) for 
> outbound publishes Asterisk will crash after a stack overflow occurs due to 
> the code infinitely recursing.  The fix entails removing the outbound publish 
> state dependency from the outbound publish sorcery object and instead keeping 
> an in memory container that can be used to lookup the state when needed.
> 
> 
> Diffs
> -----
> 
>   branches/13/res/res_pjsip_outbound_publish.c 428498 
> 
> Diff: https://reviewboard.asterisk.org/r/4178/diff/
> 
> 
> Testing
> -------
> 
> On top of running the current testsuite tests I also manually tested various 
> configurations and scenarios using a static configuration file as well as 
> dynamic realtime.  Verified that the crash no longer occurs and the 
> potentially affected functionality works as expected (for instance, module 
> [re]loading).
> 
> 
> Thanks,
> 
> Kevin Harwell
> 
>

-- 
_____________________________________________________________________
-- 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