You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2020/02/11 23:41:10 UTC
[trafficserver] branch 9.0.x updated: Fix for lua plugin coredump
problem during reload
This is an automated email from the ASF dual-hosted git repository.
zwoop pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/9.0.x by this push:
new 3f48c28 Fix for lua plugin coredump problem during reload
3f48c28 is described below
commit 3f48c28b38e569e5988b03f8e095e1337fa11a71
Author: Kit Chan <ki...@apache.org>
AuthorDate: Fri Feb 7 00:44:14 2020 -0800
Fix for lua plugin coredump problem during reload
(cherry picked from commit 36a8cd5d24ec7fe9a4573d0aa6afaa1e052bb664)
---
plugins/lua/ts_lua.c | 4 ++++
plugins/lua/ts_lua_util.c | 6 ------
2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/plugins/lua/ts_lua.c b/plugins/lua/ts_lua.c
index 5aef7b5..c88096c 100644
--- a/plugins/lua/ts_lua.c
+++ b/plugins/lua/ts_lua.c
@@ -130,7 +130,9 @@ TSRemapNewInstance(int argc, char *argv[], void **ih, char *errbuf, int errbuf_s
TSDebug(TS_LUA_DEBUG_TAG, "[%s] checking if script has been registered", __FUNCTION__);
// we only need to check the first lua VM for script registration
+ TSMutexLock(ts_lua_main_ctx_array[0].mutexp);
conf = ts_lua_script_registered(ts_lua_main_ctx_array[0].lua, script);
+ TSMutexUnlock(ts_lua_main_ctx_array[0].mutexp);
}
if (!conf) {
@@ -165,7 +167,9 @@ TSRemapNewInstance(int argc, char *argv[], void **ih, char *errbuf, int errbuf_s
// register the script only if it is from a file and has no __init__ function
if (fn && !conf->init_func) {
// we only need to register the script for the first lua VM
+ TSMutexLock(ts_lua_main_ctx_array[0].mutexp);
ts_lua_script_register(ts_lua_main_ctx_array[0].lua, conf->script, conf);
+ TSMutexUnlock(ts_lua_main_ctx_array[0].mutexp);
}
}
diff --git a/plugins/lua/ts_lua_util.c b/plugins/lua/ts_lua_util.c
index 34d2b1e..25eb1c2 100644
--- a/plugins/lua/ts_lua_util.c
+++ b/plugins/lua/ts_lua_util.c
@@ -264,8 +264,6 @@ ts_lua_add_module(ts_lua_instance_conf *conf, ts_lua_main_ctx *arr, int n, int a
lua_newtable(L);
lua_replace(L, LUA_GLOBALSINDEX); /* L[GLOBAL] = EMPTY */
- lua_gc(L, LUA_GCCOLLECT, 0);
-
TSMutexUnlock(arr[i].mutexp);
}
@@ -306,8 +304,6 @@ ts_lua_del_module(ts_lua_instance_conf *conf, ts_lua_main_ctx *arr, int n)
lua_newtable(L);
lua_replace(L, LUA_GLOBALSINDEX); /* L[GLOBAL] = EMPTY */
- lua_gc(L, LUA_GCCOLLECT, 0);
-
TSMutexUnlock(arr[i].mutexp);
}
@@ -369,8 +365,6 @@ ts_lua_reload_module(ts_lua_instance_conf *conf, ts_lua_main_ctx *arr, int n)
lua_newtable(L);
lua_replace(L, LUA_GLOBALSINDEX); /* L[GLOBAL] = EMPTY */
- lua_gc(L, LUA_GCCOLLECT, 0);
-
TSMutexUnlock(arr[i].mutexp);
}