Streams: use propagate_last_id itself as streamPropagateGroupID trigger.

Avoid storing the dirty value. See #5437.
This commit is contained in:
antirez 2018-10-15 11:52:24 +02:00
parent 820b1e6e7d
commit 0b1784b188

View File

@ -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++;
}