Skip to content

Slow EVAL command cause the link unusable #872

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

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions