-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
RHDG 8.5.x CD
-
None
-
False
-
None
-
False
-
-
-
-
-
-
-
If a user executes blocking command and then kills the connection (ctrl+c, kill 9) while the command is being blocked, the server won't register client going away for that particular metric. It'll register client going away though through connected_clients.
It seems that internally the server will still fulfill the blocking request even though the client is away.
The same issue applies more or less for WATCH. The server keeps information about watched key by a client that no longer exist.
Infinispan:
127.0.0.1:11222> info clients connected_clients:1 blocked_clients:0 127.0.0.1:11222> blpop mylist 0 ... # Kill (ctrl+c, kill 9) and reconnect here ... 127.0.0.1:11222> info clients connected_clients:1 blocked_clients:1 127.0.0.1:11222> lpush mylist element (integer) 1 127.0.0.1:11222> info clients connected_clients:1 blocked_clients:0 127.0.0.1:11222> lpop mylist (nil)
Redis:
127.0.0.1:6379> info clients
connected_clients:1
blocked_clients:0
127.0.0.1:6379> blpop mylist 0
...
# Kill (ctrl+c, kill 9) and reconnect here
...
127.0.0.1:6379> info clients
connected_clients:1
blocked_clients:0
127.0.0.1:6379> lpush mylist element
(integer) 1
127.0.0.1:6379> lpop mylist
"element"