Skip to content

Commit

Permalink
Remove 'Redis' in error replies
Browse files Browse the repository at this point in the history
This includes error message like

* "-MISCONF Redis is configured to save RDB snapshots (...)"
* "-LOADING Redis is loading the dataset in memory"
* "-BUSY Redis is busy running a script (...)"

but also error replies from `redis.call` in a Lua script, such as

* "Please specify at least one argument for this redis lib call"
* "Wrong number of args calling Redis command from script"
* "Unknown Redis command called from script"
* "Invalid command passed to redis.acl_check_cmd()"

The name Redis is simply removed from these error message.
In the last one above, "redis.acl_check_cmd()" is replaced by
"server.acl_check_cmd()" in the error message.

Signed-off-by: Viktor Söderqvist <viktor.soderqvist@est.tech>
  • Loading branch information
zuiderkwast committed Apr 4, 2024
1 parent 48184ae commit ca07ce1
Show file tree
Hide file tree
Showing 7 changed files with 23 additions and 23 deletions.
2 changes: 1 addition & 1 deletion src/acl.c
Original file line number Diff line number Diff line change
Expand Up @@ -2999,7 +2999,7 @@ void aclCommand(client *c) {
} else if (server.acl_filename[0] == '\0' &&
(!strcasecmp(sub,"load") || !strcasecmp(sub,"save")))
{
addReplyError(c,"This Redis instance is not configured to use an ACL file. You may want to specify users via the ACL SETUSER command and then issue a CONFIG REWRITE (assuming you have a Redis configuration file set) in order to store users in the Redis configuration.");
addReplyError(c,"This instance is not configured to use an ACL file. You may want to specify users via the ACL SETUSER command and then issue a CONFIG REWRITE (assuming you have a configuration file set) in order to store users in the configuration.");
return;
} else if (!strcasecmp(sub,"load") && c->argc == 2) {
sds errors = ACLLoadFromFile(server.acl_filename);
Expand Down
6 changes: 3 additions & 3 deletions src/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -2339,8 +2339,8 @@ static int isValidActiveDefrag(int val, const char **err) {
#ifndef HAVE_DEFRAG
if (val) {
*err = "Active defragmentation cannot be enabled: it "
"requires a Redis server compiled with a modified Jemalloc "
"like the one shipped by default with the Redis source "
"requires a server compiled with a modified Jemalloc "
"like the one shipped by default with the Valkey source "
"distribution";
return 0;
}
Expand Down Expand Up @@ -2564,7 +2564,7 @@ static int updateMaxclients(const char **err) {
if (aeResizeSetSize(server.el,
server.maxclients + CONFIG_FDSET_INCR) == AE_ERR)
{
*err = "The event loop API used by Redis is not able to handle the specified number of clients";
*err = "The event loop API is not able to handle the specified number of clients";
return 0;
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/replication.c
Original file line number Diff line number Diff line change
Expand Up @@ -3540,7 +3540,7 @@ void waitCommand(client *c) {
long long offset = c->woff;

if (server.masterhost) {
addReplyError(c,"WAIT cannot be used with replica instances. Please also note that since Redis 4.0 if a replica is configured to be writable (which is not the default) writes to replicas are just local and are not propagated.");
addReplyError(c,"WAIT cannot be used with replica instances. Please also note that if a replica is configured to be writable (which is not the default) writes to replicas are just local and are not propagated.");
return;
}

Expand Down
8 changes: 4 additions & 4 deletions src/script.c
Original file line number Diff line number Diff line change
Expand Up @@ -164,11 +164,11 @@ int scriptPrepareForRun(scriptRunCtx *run_ctx, client *engine_client, client *ca
int deny_write_type = writeCommandsDeniedByDiskError();
if (deny_write_type != DISK_ERROR_TYPE_NONE && !obey_client) {
if (deny_write_type == DISK_ERROR_TYPE_RDB)
addReplyError(caller, "-MISCONF Redis is configured to save RDB snapshots, "
addReplyError(caller, "-MISCONF The server is configured to save RDB snapshots, "
"but it's currently unable to persist to disk. "
"Writable scripts are blocked. Use 'no-writes' flag for read only scripts.");
else
addReplyErrorFormat(caller, "-MISCONF Redis is configured to persist data to AOF, "
addReplyErrorFormat(caller, "-MISCONF The server is configured to persist data to AOF, "
"but it's currently unable to persist to disk. "
"Writable scripts are blocked. Use 'no-writes' flag for read only scripts. "
"AOF error: %s", strerror(server.aof_last_write_errno));
Expand Down Expand Up @@ -322,9 +322,9 @@ void scriptKill(client *c, int is_eval) {
static int scriptVerifyCommandArity(struct serverCommand *cmd, int argc, sds *err) {
if (!cmd || ((cmd->arity > 0 && cmd->arity != argc) || (argc < -cmd->arity))) {
if (cmd)
*err = sdsnew("Wrong number of args calling Redis command from script");
*err = sdsnew("Wrong number of args calling command from script");
else
*err = sdsnew("Unknown Redis command called from script");
*err = sdsnew("Unknown command called from script");
return C_ERR;
}
return C_OK;
Expand Down
6 changes: 3 additions & 3 deletions src/script_lua.c
Original file line number Diff line number Diff line change
Expand Up @@ -799,7 +799,7 @@ static robj **luaArgsToRedisArgv(lua_State *lua, int *argc, int *argv_len) {
/* Require at least one argument */
*argc = lua_gettop(lua);
if (*argc == 0) {
luaPushError(lua, "Please specify at least one argument for this redis lib call");
luaPushError(lua, "Please specify at least one argument for this call");
return NULL;
}

Expand Down Expand Up @@ -858,7 +858,7 @@ static robj **luaArgsToRedisArgv(lua_State *lua, int *argc, int *argv_len) {
* integers as well). */
if (j != *argc) {
freeLuaRedisArgv(lua_argv, j, lua_argv_size);
luaPushError(lua, "Lua redis lib command arguments must be strings or integers");
luaPushError(lua, "Command arguments must be strings or integers");
return NULL;
}

Expand Down Expand Up @@ -1145,7 +1145,7 @@ static int luaRedisAclCheckCmdPermissionsCommand(lua_State *lua) {
/* Find command */
struct serverCommand *cmd;
if ((cmd = lookupCommand(argv, argc)) == NULL) {
luaPushError(lua, "Invalid command passed to redis.acl_check_cmd()");
luaPushError(lua, "Invalid command passed to server.acl_check_cmd()");
raise_error = 1;
} else {
int keyidxptr;
Expand Down
10 changes: 5 additions & 5 deletions src/server.c
Original file line number Diff line number Diff line change
Expand Up @@ -1871,17 +1871,17 @@ void createSharedObjects(void) {
shared.noscripterr = createObject(OBJ_STRING,sdsnew(
"-NOSCRIPT No matching script. Please use EVAL.\r\n"));
shared.loadingerr = createObject(OBJ_STRING,sdsnew(
"-LOADING Redis is loading the dataset in memory\r\n"));
"-LOADING The server is loading the dataset in memory\r\n"));
shared.slowevalerr = createObject(OBJ_STRING,sdsnew(
"-BUSY Redis is busy running a script. You can only call SCRIPT KILL or SHUTDOWN NOSAVE.\r\n"));
"-BUSY The server is busy running a script. You can only call SCRIPT KILL or SHUTDOWN NOSAVE.\r\n"));
shared.slowscripterr = createObject(OBJ_STRING,sdsnew(
"-BUSY Redis is busy running a script. You can only call FUNCTION KILL or SHUTDOWN NOSAVE.\r\n"));
"-BUSY The server is busy running a script. You can only call FUNCTION KILL or SHUTDOWN NOSAVE.\r\n"));
shared.slowmoduleerr = createObject(OBJ_STRING,sdsnew(
"-BUSY Redis is busy running a module command.\r\n"));
"-BUSY The server is busy running a module command.\r\n"));
shared.masterdownerr = createObject(OBJ_STRING,sdsnew(
"-MASTERDOWN Link with MASTER is down and replica-serve-stale-data is set to 'no'.\r\n"));
shared.bgsaveerr = createObject(OBJ_STRING,sdsnew(
"-MISCONF Redis is configured to save RDB snapshots, but it's currently unable to persist to disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the Redis logs for details about the RDB error.\r\n"));
"-MISCONF The server is configured to save RDB snapshots, but it's currently unable to persist to disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (stop-writes-on-bgsave-error option). Please check the server logs for details about the RDB error.\r\n"));
shared.roslaveerr = createObject(OBJ_STRING,sdsnew(
"-READONLY You can't write against a read only replica.\r\n"));
shared.noautherr = createObject(OBJ_STRING,sdsnew(
Expand Down
12 changes: 6 additions & 6 deletions tests/unit/scripting.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@ start_server {tags {"scripting"}} {
run_script "redis.call('nosuchcommand')" 0
} e
set e
} {*Unknown Redis*}
} {*Unknown command*}

test {EVAL - redis.call variant raises a Lua error on Redis cmd error (1)} {
set e {}
Expand Down Expand Up @@ -868,8 +868,8 @@ start_server {tags {"scripting"}} {
} {ERR Number of keys can't be negative}

test {Scripts can handle commands with incorrect arity} {
assert_error "ERR Wrong number of args calling Redis command from script*" {run_script "redis.call('set','invalid')" 0}
assert_error "ERR Wrong number of args calling Redis command from script*" {run_script "redis.call('incr')" 0}
assert_error "ERR Wrong number of args calling command from script*" {run_script "redis.call('set','invalid')" 0}
assert_error "ERR Wrong number of args calling command from script*" {run_script "redis.call('incr')" 0}
}

test {Correct handling of reused argv (issue #1939)} {
Expand Down Expand Up @@ -994,7 +994,7 @@ start_server {tags {"scripting"}} {
} 0] {}

# Check error due to invalid command
assert_error {ERR *Invalid command passed to redis.acl_check_cmd()*} {run_script {
assert_error {ERR *Invalid command passed to server.acl_check_cmd()*} {run_script {
return redis.acl_check_cmd('invalid-cmd','arg')
} 0}
}
Expand Down Expand Up @@ -1514,7 +1514,7 @@ start_server {tags {"scripting needs:debug external:skip"}} {
r write $cmd
r flush
set ret [r read]
assert_match {*Unknown Redis command called from script*} $ret
assert_match {*Unknown command called from script*} $ret
# make sure the server is still ok
reconnect
assert_equal [r ping] {PONG}
Expand Down Expand Up @@ -2343,7 +2343,7 @@ start_server {tags {"scripting"}} {
}

test "LUA test pcall with non string/integer arg" {
assert_error "ERR Lua redis lib command arguments must be strings or integers*" {
assert_error "ERR Command arguments must be strings or integers*" {
r eval {
local x={}
return redis.call("ping", x)
Expand Down

0 comments on commit ca07ce1

Please sign in to comment.