streamReplyWithRange: Redundant XSETIDs to replica
propagate_last_id is declared outside of the loop but used only from within the loop. Once it's '1' it will never go back to '0' and will replicate XSETID even for IDs that don't actually change the last_id. While not a serious bug (XSETID always used group->last_id so there's no risk), it does causes redundant traffic between master and its replicas
This commit is contained in:
parent
6fe66e0969
commit
c35a53169f
@ -935,7 +935,6 @@ size_t streamReplyWithRange(client *c, stream *s, streamID *start, streamID *end
|
|||||||
streamIterator si;
|
streamIterator si;
|
||||||
int64_t numfields;
|
int64_t numfields;
|
||||||
streamID id;
|
streamID id;
|
||||||
int propagate_last_id = 0;
|
|
||||||
|
|
||||||
/* If the client is asking for some history, we serve it using a
|
/* If the client is asking for some history, we serve it using a
|
||||||
* different function, so that we return entries *solely* from its
|
* different function, so that we return entries *solely* from its
|
||||||
@ -951,6 +950,8 @@ size_t streamReplyWithRange(client *c, stream *s, streamID *start, streamID *end
|
|||||||
arraylen_ptr = addReplyDeferredLen(c);
|
arraylen_ptr = addReplyDeferredLen(c);
|
||||||
streamIteratorStart(&si,s,start,end,rev);
|
streamIteratorStart(&si,s,start,end,rev);
|
||||||
while(streamIteratorGetID(&si,&id,&numfields)) {
|
while(streamIteratorGetID(&si,&id,&numfields)) {
|
||||||
|
int propagate_last_id = 0;
|
||||||
|
|
||||||
/* Update the group last_id if needed. */
|
/* Update the group last_id if needed. */
|
||||||
if (group && streamCompareID(&id,&group->last_id) > 0) {
|
if (group && streamCompareID(&id,&group->last_id) > 0) {
|
||||||
group->last_id = id;
|
group->last_id = id;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user