From 0b1784b1884ff04848b0532cc384fd2811f6eee4 Mon Sep 17 00:00:00 2001 From: antirez Date: Mon, 15 Oct 2018 11:52:24 +0200 Subject: [PATCH] Streams: use propagate_last_id itself as streamPropagateGroupID trigger. Avoid storing the dirty value. See #5437. --- src/t_stream.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/t_stream.c b/src/t_stream.c index aa2440b2..39ee713e 100644 --- a/src/t_stream.c +++ b/src/t_stream.c @@ -2134,7 +2134,6 @@ void xclaimCommand(client *c) { streamConsumer *consumer = streamLookupConsumer(group,c->argv[3]->ptr,1); void *arraylenptr = addDeferredMultiBulkLength(c); size_t arraylen = 0; - long long dirty = server.dirty; for (int j = 5; j <= last_id_arg; j++) { streamID id; unsigned char buf[sizeof(streamID)]; @@ -2199,10 +2198,11 @@ void xclaimCommand(client *c) { /* Propagate this change. */ streamPropagateXCLAIM(c,c->argv[1],group,c->argv[2],c->argv[j],nack); + propagate_last_id = 0; /* Will be propagated by XCLAIM itself. */ server.dirty++; } } - if (server.dirty == dirty && propagate_last_id) { + if (propagate_last_id) { streamPropagateGroupID(c,c->argv[1],group,c->argv[2]); server.dirty++; }