From 01eaf53bb37506ddd922da89144b059ff85cd7fb Mon Sep 17 00:00:00 2001 From: WuYunlong Date: Tue, 4 Feb 2020 16:34:11 +0800 Subject: [PATCH 1/2] Add tcl regression test in scripting.tcl to reproduce memory leak. --- tests/unit/scripting.tcl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/unit/scripting.tcl b/tests/unit/scripting.tcl index 2543a0377..fb36d0b80 100644 --- a/tests/unit/scripting.tcl +++ b/tests/unit/scripting.tcl @@ -741,3 +741,8 @@ start_server {tags {"scripting repl"}} { } } +start_server {tags {"scripting"}} { + r script debug sync + r eval {return 'hello'} 0 + r eval {return 'hello'} 0 +} From eb2196f5ce68ee72dd64dffa75b9ecb3e930e0cd Mon Sep 17 00:00:00 2001 From: WuYunlong Date: Tue, 4 Feb 2020 16:38:46 +0800 Subject: [PATCH 2/2] Fix lua related memory leak. --- src/scripting.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/scripting.c b/src/scripting.c index 9282b7fd9..a5c59b113 100644 --- a/src/scripting.c +++ b/src/scripting.c @@ -2473,6 +2473,7 @@ void ldbEval(lua_State *lua, sds *argv, int argc) { ldbLog(sdscatfmt(sdsempty()," %s",lua_tostring(lua,-1))); lua_pop(lua,1); sdsfree(code); + sdsfree(expr); return; } }