Commit 1ed821e2 authored by antirez's avatar antirez
Browse files

Fix XCLAIM missing entry bug.

This bug had a double effect:

1. Sometimes entries may not be emitted, producing broken protocol where
the array length was greater than the emitted entires, blocking the
client waiting for more data.

2. Some other time the right entry was claimed, but a wrong entry was
returned to the client.

This fix should correct both the instances.
parent b49bcd01
...@@ -2278,8 +2278,9 @@ void xclaimCommand(client *c) { ...@@ -2278,8 +2278,9 @@ void xclaimCommand(client *c) {
if (justid) { if (justid) {
addReplyStreamID(c,&id); addReplyStreamID(c,&id);
} else { } else {
streamReplyWithRange(c,o->ptr,&id,NULL,1,0,NULL,NULL, size_t emitted = streamReplyWithRange(c,o->ptr,&id,&id,1,0,
STREAM_RWR_RAWENTRIES,NULL); NULL,NULL,STREAM_RWR_RAWENTRIES,NULL);
if (!emitted) addReply(c,shared.nullbulk);
} }
arraylen++; arraylen++;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment