You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With Redis f88f866 and Redisraft 1b3fbf6, executing a single RPUSH command against a fresh cluster creates an infinite loop, wherein that RPUSH command is executed repeatedly, gradually ballooning the size of the value, state machine, and log. It also seems to cause some (all?) redis-cli requests against the node which executed the RPUSH to hang indefinitely.
For example, try this command with a fresh cluster:
/opt/redis/redis-cli rpush "a-list" "x"
(integer) 1
redis-cli monitor shows the Raft log applying endless RPUSH operations:
1583259973.634023 [0 ?:0] "RAFT" "rpush" "a-list" "x"
1583259973.634067 [0 ?:0] "RAFT" "rpush" "a-list" "x"
1583259973.634087 [0 ?:0] "RAFT" "rpush" "a-list" "x"
1583259973.634111 [0 ?:0] "RAFT" "rpush" "a-list" "x"
1583259973.634153 [0 ?:0] "RAFT" "rpush" "a-list" "x"
1583259973.634181 [0 ?:0] "RAFT" "rpush" "a-list" "x"
1583259973.634208 [0 ?:0] "RAFT" "rpush" "a-list" "x"
In this Jepsen run, we execute multiple RPUSH operations, each with a distinct integer value: you can see their consequences interleaved in reads:
…edisLabs#13)
Before, we only did "auto commit" of entries if the number of voters == 1. As we can have a "non voting leader", this is wrong, as the voter can be another node, not the leader, therefore we add a condition to ensure that the leader is a voter too, so that we know that the leader is the single voter.
With Redis f88f866 and Redisraft 1b3fbf6, executing a single
RPUSH
command against a fresh cluster creates an infinite loop, wherein thatRPUSH
command is executed repeatedly, gradually ballooning the size of the value, state machine, and log. It also seems to cause some (all?) redis-cli requests against the node which executed the RPUSH to hang indefinitely.For example, try this command with a fresh cluster:
redis-cli monitor
shows the Raft log applying endless RPUSH operations:In this Jepsen run, we execute multiple RPUSH operations, each with a distinct integer value: you can see their consequences interleaved in reads:
This bug appears linked to
follower-proxy=yes
; running without follower proxies seems to resolve the issue.The text was updated successfully, but these errors were encountered: