watch_leave_group not triggering callback on expired members

memcache does not clear group members when members expire.
run_watchers checks group value specifically rather than calling
get_members function which filters dead members. this patch makes
run_watchers call get_members.

Change-Id: Ic96116c40642e98ca4edff2bfdb217578e6cfb45
Closes-Bug: #1392800
This commit is contained in:
gordon chung 2014-11-17 15:48:42 -05:00
parent 33f5d3f497
commit 8983745e62
1 changed files with 1 additions and 2 deletions

View File

@ -325,8 +325,7 @@ class MemcachedDriver(coordination.CoordinationDriver):
def run_watchers(self):
result = []
for group_id in self.client.get(self._GROUP_LIST_KEY):
encoded_group = self._encode_group_id(group_id)
group_members = set(self.client.get(encoded_group))
group_members = set(self._get_members(group_id))
old_group_members = self._group_members[group_id]
for member_id in (group_members - old_group_members):