Tracking: fix behavior when switchinig from normal to BCAST.
This commit is contained in:
parent
6922ccc0b9
commit
f6e32a832f
@ -269,7 +269,17 @@ void trackingInvalidateKey(robj *keyobj) {
|
|||||||
uint64_t id;
|
uint64_t id;
|
||||||
memcpy(&id,ri.key,sizeof(id));
|
memcpy(&id,ri.key,sizeof(id));
|
||||||
client *c = lookupClientByID(id);
|
client *c = lookupClientByID(id);
|
||||||
if (c == NULL || !(c->flags & CLIENT_TRACKING)) continue;
|
/* Note that if the client is in BCAST mode, we don't want to
|
||||||
|
* send invalidation messages that were pending in the case
|
||||||
|
* previously the client was not in BCAST mode. This can happen if
|
||||||
|
* TRACKING is enabled normally, and then the client switches to
|
||||||
|
* BCAST mode. */
|
||||||
|
if (c == NULL ||
|
||||||
|
!(c->flags & CLIENT_TRACKING)||
|
||||||
|
c->flags & CLIENT_TRACKING_BCAST)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
sendTrackingMessage(c,sdskey,sdslen(sdskey),0);
|
sendTrackingMessage(c,sdskey,sdslen(sdskey),0);
|
||||||
}
|
}
|
||||||
raxStop(&ri);
|
raxStop(&ri);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user