From: Vsevolod Stakhov Date: Fri, 3 Feb 2023 19:12:42 +0000 (+0000) Subject: [Fix] Set symcache item in coroutine calls X-Git-Tag: 3.5~67 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9d275f06c4089244c8de3a932724b983b4f4adc3;p=thirdparty%2Frspamd.git [Fix] Set symcache item in coroutine calls --- diff --git a/src/lua/lua_config.c b/src/lua/lua_config.c index c732b67a1b..c58b35c561 100644 --- a/src/lua/lua_config.c +++ b/src/lua/lua_config.c @@ -1362,6 +1362,7 @@ lua_metric_symbol_callback_coro (struct rspamd_task *task, struct rspamd_task **ptask; struct thread_entry *thread_entry; + cd->item = item; rspamd_symcache_item_async_inc (task, item, "lua coro symbol"); thread_entry = lua_thread_pool_get_for_task (task); @@ -1370,7 +1371,6 @@ lua_metric_symbol_callback_coro (struct rspamd_task *task, lua_State *thread = thread_entry->lua_state; cd->stack_level = lua_gettop (thread); - cd->item = item; if (cd->cb_is_ref) { lua_rawgeti (thread, LUA_REGISTRYINDEX, cd->callback.ref); diff --git a/src/lua/lua_redis.c b/src/lua/lua_redis.c index 3d5ac3db90..8b72a52da8 100644 --- a/src/lua/lua_redis.c +++ b/src/lua/lua_redis.c @@ -679,6 +679,11 @@ lua_redis_callback_sync (redisAsyncContext *ac, gpointer r, gpointer priv) ctx->thread = NULL; results = lua_redis_push_results(ctx, thread->lua_state); + + if (ud->item) { + rspamd_symcache_set_cur_item (ud->task, ud->item); + } + lua_thread_resume (thread, results); lua_redis_cleanup_events(ctx); }