[asterisk-dev] [Code Review] 2596: Rework stasis cache clear events

opticron reviewboard at asterisk.org
Thu Jun 6 12:54:44 CDT 2013



> On June 6, 2013, 8:34 a.m., David Lee wrote:
> > trunk/main/stasis_cache.c, line 283
> > <https://reviewboard.asterisk.org/r/2596/diff/2/?file=39176#file39176line283>
> >
> >     There's a potential problem with pulling the snapshot from the cache instead of creating the snapshot fresh.
> >     
> >     Since the cache updates happen asynchronously in the Stasis thread pool, this could be an old snapshot. Not a problem currently, but will be if someone tries to use that snapshot as the final state of the object.
> >     
> >     What's more problematic is that for a very short lived object, it may attempt to create the cache_clear message before there's an entry in the cache. Then the clear creation will fail, and the cache will have a ZOMBIE SNAPSHOT THAT WILL NOT DIE.

Changed to final snapshot creation.


- opticron


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


On June 6, 2013, 8:21 a.m., opticron wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/2596/
> -----------------------------------------------------------
> 
> (Updated June 6, 2013, 8:21 a.m.)
> 
> 
> Review request for Asterisk Developers and David Lee.
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> This reworks the stasis cache clear mechanism such that an actual snapshot message is published inside of the cache clear message instead of the stasis_cache_clear structure (the ID and message type) which has been removed.  This allows multiple caches to consume the same clear message and avoids the problems of needing to clear unknown secondary caches which may be keyed on different parts of the snapshot.
> 
> This also resolves an issue where a channel snapshot could be cleared from the channel snapshot cache multiple times if multiple threads called ast_hangup on the channel at the same time.
> 
> This also resolves an issue where an endpoint snapshot was published after it was cleared from the cache, thus repopulating it in the cache.
> 
> 
> Diffs
> -----
> 
>   trunk/include/asterisk/stasis.h 390501 
>   trunk/main/bridging.c 390501 
>   trunk/main/channel.c 390501 
>   trunk/main/endpoints.c 390501 
>   trunk/main/stasis_cache.c 390501 
>   trunk/tests/test_stasis.c 390501 
> 
> Diff: https://reviewboard.asterisk.org/r/2596/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> opticron
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20130606/62f9f86c/attachment-0001.htm>


More information about the asterisk-dev mailing list