mirror of
http://github.com/valkey-io/valkey
synced 2024-11-22 18:54:58 +00:00
Slowlog: don't log EXEC but just the executed commands.
The Redis Slow Log always used to log the slow commands executed inside a MULTI/EXEC block. However also EXEC was logged at the end, which is perfectly useless. Now EXEC is no longer logged and a test was added to test this behavior. This fixes issue #759.
This commit is contained in:
parent
9d09ce3981
commit
08d200baeb
@ -1548,7 +1548,7 @@ void call(redisClient *c, int flags) {
|
||||
|
||||
/* Log the command into the Slow log if needed, and populate the
|
||||
* per-command statistics that we show in INFO commandstats. */
|
||||
if (flags & REDIS_CALL_SLOWLOG)
|
||||
if (flags & REDIS_CALL_SLOWLOG && c->cmd->proc != execCommand)
|
||||
slowlogPushEntryIfNeeded(c->argv,c->argc,duration);
|
||||
if (flags & REDIS_CALL_STATS) {
|
||||
c->cmd->microseconds += duration;
|
||||
|
@ -55,4 +55,16 @@ start_server {tags {"slowlog"} overrides {slowlog-log-slower-than 1000000}} {
|
||||
set e [lindex [r slowlog get] 0]
|
||||
lindex $e 3
|
||||
} {sadd set foo {AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA... (1 more bytes)}}
|
||||
|
||||
test {SLOWLOG - EXEC is not logged, just executed commands} {
|
||||
r config set slowlog-log-slower-than 100000
|
||||
r slowlog reset
|
||||
assert_equal [r slowlog len] 0
|
||||
r multi
|
||||
r debug sleep 0.2
|
||||
r exec
|
||||
assert_equal [r slowlog len] 1
|
||||
set e [lindex [r slowlog get] 0]
|
||||
assert_equal [lindex $e 3] {debug sleep 0.2}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user