From 1a1415a9961a566a825724e95f7b2579848ff3fb Mon Sep 17 00:00:00 2001 From: lafirest Date: Fri, 18 Feb 2022 16:27:22 +0800 Subject: [PATCH] fix(emqx_slow_subs): fix upgrade action error --- .../src/emqx_slow_subs/emqx_slow_subs.erl | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/apps/emqx_plugin_libs/src/emqx_slow_subs/emqx_slow_subs.erl b/apps/emqx_plugin_libs/src/emqx_slow_subs/emqx_slow_subs.erl index 947a0e4b9..07cab1bd8 100644 --- a/apps/emqx_plugin_libs/src/emqx_slow_subs/emqx_slow_subs.erl +++ b/apps/emqx_plugin_libs/src/emqx_slow_subs/emqx_slow_subs.erl @@ -192,19 +192,23 @@ code_change({down, _Vsn}, #{config := Cfg} = State, ["4.4.0"]) -> {ok, State}; code_change(_OldVsn, #{config := Conf} = State, ["4.4.0"]) -> + %% clear old data HookPoint = 'message.slow_subs_stats', - case emqx_hooks:lookup(HookPoint) of - [Action | _] -> - emqx_hooks:del(HookPoint, Action); - _ -> - ok - end, + Callbacks = emqx_hooks:lookup(HookPoint), + _ = [emqx_hooks:del(HookPoint, Action) || + {callback, Action, _Filter, _Priority} <- Callbacks], try ets:delete_all_objects(?TOPK_TAB) catch _:_ -> ok end, + + %% add new table init_tab(), + [_Sup, SupPid] = erlang:get('$ancestors'), + ets:give_away(?INDEX_TAB, SupPid, undefined), + + %% enable expire_tick(Conf), load(Conf), {ok, State};