Unverified Commit 78a62c01 authored by Meir Shpilraien (Spielrein)'s avatar Meir Shpilraien (Spielrein) Committed by GitHub
Browse files

Fix OOM error not raised of functions (#10048)

OOM Error did not raise on functions due to a bug.
Added test to verify the fix.
parent 5460c100
......@@ -3451,7 +3451,10 @@ int processCommand(client *c) {
/* Save out_of_memory result at script start, otherwise if we check OOM
* until first write within script, memory used by lua stack and
* arguments might interfere. */
if (c->cmd->proc == evalCommand || c->cmd->proc == evalShaCommand) {
if (c->cmd->proc == evalCommand ||
c->cmd->proc == evalShaCommand ||
c->cmd->proc == fcallCommand)
{
server.script_oom = out_of_memory;
}
}
......
......@@ -36,6 +36,20 @@ if {$is_eval == 1} {
start_server {tags {"scripting"}} {
test {Script - disallow write on OOM} {
r FUNCTION create lua f1 replace { return redis.call('set', 'x', '1') }
r config set maxmemory 1
catch {[r fcall f1 1 k]} e
assert_match {*command not allowed when used memory*} $e
catch {[r eval "redis.call('set', 'x', 1)" 0]} e
assert_match {*command not allowed when used memory*} $e
r config set maxmemory 0
}
test {EVAL - Does Lua interpreter replies to our requests?} {
run_script {return 'hello'} 0
} {hello}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment