[asterisk-dev] [Code Review] Fix caching of device state changes for multiple servers

Marquis reviewboard at asterisk.org
Thu Nov 18 19:30:08 CST 2010


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

Ship it!


- Marquis


On 2010-11-16 10:15:50, Russell Bryant wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/1012/
> -----------------------------------------------------------
> 
> (Updated 2010-11-16 10:15:50)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Summary
> -------
> 
> This patch addresses a regression where device states across multiple servers were not being processing completely correctly.  The code works to determine the overall state by looking at the last known state of a device on each server.  However, there was a regression due to some invasive rewrites of how the cache works that led to the cache only storing the last device state change for a device, regardless of which server it was on.
> 
> The code is set up to cache device state change events by ensuring that each event in the cache has a unique device name + entity ID (server ID).  The code that was responsible for comparing raw information elements (which EID is) always returned a match due to a memcmp() with a length of 0.
> 
> There isn't much code to fix the actual bug.  This patch also introduces a new CLI command that was very useful for debugging this problem.  The command allows you to dump the contents of the event cache.
> 
> 
> This addresses bug 18280.
>     https://issues.asterisk.org/view.php?id=18280
> 
> 
> Diffs
> -----
> 
>   /branches/1.8/include/asterisk/event.h 295124 
>   /branches/1.8/main/event.c 295124 
> 
> Diff: https://reviewboard.asterisk.org/r/1012/diff
> 
> 
> Testing
> -------
> 
> I did testing using custom device states and manually changing their states on two different servers.  I verified that the cache contents and resulting device states were now what I expected.
> 
> Klaus reported that this patch fixed his problem, as well (on issue #18280).  In his case, he was testing a scenario where a SIP device was changing states on 2 different servers.
> 
> 
> Thanks,
> 
> Russell
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-dev/attachments/20101119/6a677be4/attachment.htm 


More information about the asterisk-dev mailing list