If a client sends a long running EVAL command and exceeds lua_time_limit, after return ,redis will no longer read any commands from that link.
server log:
[28748] 10 Jan 16:54:30.285 # Server started, Redis version 2.9.7
[28748] 10 Jan 16:54:30.285 * DB loaded from disk: 0.000 seconds
[28748] 10 Jan 16:54:30.285 * The server is now ready to accept connections on port 6379
[28748] 10 Jan 16:55:01.852 # Lua slow script detected: still in execution after 5016 milliseconds. You can try killing the script using the SCRIPT KILL command.
client:
redis 127.0.0.1:6379> eval "for i=1,10000000 do redis.call('ping') end return 'ok'" 0
"ok"
(12.13s)
redis 127.0.0.1:6379> info // nothing returns
client list output in another connection:
redis 127.0.0.1:6379> client list
addr=127.0.0.1:53468 fd=7 age=34 idle=4 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events= cmd=eval
addr=127.0.0.1:53469 fd=8 age=3 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client
The readable event for the eval client has been removed and not restored.
If a client sends a long running EVAL command and exceeds lua_time_limit, after return ,redis will no longer read any commands from that link.
server log:
client:
redis 127.0.0.1:6379> eval "for i=1,10000000 do redis.call('ping') end return 'ok'" 0 "ok" (12.13s) redis 127.0.0.1:6379> info // nothing returnsclient list output in another connection:
The readable event for the eval client has been removed and not restored.