mirror of
http://github.com/valkey-io/valkey
synced 2024-11-22 18:54:58 +00:00
critical bug about glueoutputbuffers=yes fixed. Under load and with pipelining and clients disconnecting on the middle of the chat with the server, Redis could block. Now it's ok
This commit is contained in:
parent
32c3a426a6
commit
6fdc78ac69
1
TODO
1
TODO
@ -5,7 +5,6 @@ BEFORE REDIS 1.0.0-rc1
|
|||||||
* maxmemory support
|
* maxmemory support
|
||||||
* maxclients support
|
* maxclients support
|
||||||
* Resize the expires and Sets hash tables if needed as well? For Sets the right moment to check for this is probably in SREM
|
* Resize the expires and Sets hash tables if needed as well? For Sets the right moment to check for this is probably in SREM
|
||||||
* TTL command that returns -1 if a key is not volatile otherwise the time to live of a volatile key in seconds.
|
|
||||||
* What happens if the saving child gets killed or segfaults instead of ending normally? Handle this.
|
* What happens if the saving child gets killed or segfaults instead of ending normally? Handle this.
|
||||||
* Make sinterstore / unionstore / sdiffstore returning the cardinality of the resulting set.
|
* Make sinterstore / unionstore / sdiffstore returning the cardinality of the resulting set.
|
||||||
* check 'server.dirty' everywere
|
* check 'server.dirty' everywere
|
||||||
|
3
redis.c
3
redis.c
@ -1119,7 +1119,8 @@ static void glueReplyBuffersIfNeeded(redisClient *c) {
|
|||||||
listDelNode(c->reply,ln);
|
listDelNode(c->reply,ln);
|
||||||
}
|
}
|
||||||
/* Now the output buffer is empty, add the new single element */
|
/* Now the output buffer is empty, add the new single element */
|
||||||
addReplySds(c,sdsnewlen(buf,totlen));
|
o = createObject(REDIS_STRING,sdsnewlen(buf,totlen));
|
||||||
|
if (!listAddNodeTail(c->reply,o)) oom("listAddNodeTail");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user