Skip to content

Slow EVAL command cause the link unusable #872

@jokea

Description

@jokea

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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions