Use addReplyErrorObject with shared.noscripterr (#8544)

This commit is contained in:
sundb 2021-02-25 00:45:13 +08:00 committed by GitHub
parent a4e3ddd33c
commit c65e914491
2 changed files with 15 additions and 2 deletions

View File

@ -1544,7 +1544,7 @@ void evalGenericCommand(client *c, int evalsha) {
* return an error. */ * return an error. */
if (evalsha) { if (evalsha) {
lua_pop(lua,1); /* remove the error handler from the stack. */ lua_pop(lua,1); /* remove the error handler from the stack. */
addReply(c, shared.noscripterr); addReplyErrorObject(c, shared.noscripterr);
return; return;
} }
if (luaCreateFunction(c,lua,c->argv[1]) == NULL) { if (luaCreateFunction(c,lua,c->argv[1]) == NULL) {
@ -1695,7 +1695,7 @@ void evalShaCommand(client *c) {
* not the right length. So we return an error ASAP, this way * not the right length. So we return an error ASAP, this way
* evalGenericCommand() can be implemented without string length * evalGenericCommand() can be implemented without string length
* sanity check */ * sanity check */
addReply(c, shared.noscripterr); addReplyErrorObject(c, shared.noscripterr);
return; return;
} }
if (!(c->flags & CLIENT_LUA_DEBUG)) if (!(c->flags & CLIENT_LUA_DEBUG))

View File

@ -62,6 +62,19 @@ start_server {tags {"info"}} {
assert_equal [s total_error_replies] 2 assert_equal [s total_error_replies] 2
} }
test {errorstats: failed call NOSCRIPT error} {
r config resetstat
assert_equal [s total_error_replies] 0
assert_match {} [errorstat NOSCRIPT]
catch {r evalsha NotValidShaSUM 0} e
assert_match {NOSCRIPT*} $e
assert_match {*count=1*} [errorstat NOSCRIPT]
assert_match {*calls=1,*,rejected_calls=0,failed_calls=1} [cmdstat evalsha]
assert_equal [s total_error_replies] 1
r config resetstat
assert_match {} [errorstat NOSCRIPT]
}
test {errorstats: failed call NOGROUP error} { test {errorstats: failed call NOGROUP error} {
r config resetstat r config resetstat
assert_match {} [errorstat NOGROUP] assert_match {} [errorstat NOGROUP]