diff --git a/apps/emqx/src/emqx_broker_helper.erl b/apps/emqx/src/emqx_broker_helper.erl index 06f249678..ea615c2f7 100644 --- a/apps/emqx/src/emqx_broker_helper.erl +++ b/apps/emqx/src/emqx_broker_helper.erl @@ -153,13 +153,17 @@ code_change(_OldVsn, State, _Extra) -> %%-------------------------------------------------------------------- clean_down(SubPid) -> - case ets:lookup(?SUBMON, SubPid) of - [{_, SubId}] -> - true = ets:delete(?SUBMON, SubPid), - true = - (SubId =:= undefined) orelse - ets:delete_object(?SUBID, {SubId, SubPid}), - emqx_broker:subscriber_down(SubPid); - [] -> - ok + try + case ets:lookup(?SUBMON, SubPid) of + [{_, SubId}] -> + true = ets:delete(?SUBMON, SubPid), + true = + (SubId =:= undefined) orelse + ets:delete_object(?SUBID, {SubId, SubPid}), + emqx_broker:subscriber_down(SubPid); + [] -> + ok + end + catch + error:badarg -> ok end. diff --git a/apps/emqx/src/emqx_cm.erl b/apps/emqx/src/emqx_cm.erl index 6d18fef34..c9fb93ceb 100644 --- a/apps/emqx/src/emqx_cm.erl +++ b/apps/emqx/src/emqx_cm.erl @@ -706,7 +706,11 @@ code_change(_OldVsn, State, _Extra) -> %%-------------------------------------------------------------------- clean_down({ChanPid, ClientId}) -> - do_unregister_channel({ClientId, ChanPid}), + try + do_unregister_channel({ClientId, ChanPid}) + catch + error:badarg -> ok + end, ok = ?tp(debug, emqx_cm_clean_down, #{client_id => ClientId}). stats_fun() -> diff --git a/apps/emqx_gateway/src/emqx_gateway_cm.erl b/apps/emqx_gateway/src/emqx_gateway_cm.erl index 4c07d3938..e52c81856 100644 --- a/apps/emqx_gateway/src/emqx_gateway_cm.erl +++ b/apps/emqx_gateway/src/emqx_gateway_cm.erl @@ -823,7 +823,11 @@ code_change(_OldVsn, State, _Extra) -> do_unregister_channel_task(Items, GwName, CmTabs) -> lists:foreach( fun({ChanPid, ClientId}) -> - do_unregister_channel(GwName, {ClientId, ChanPid}, CmTabs) + try + do_unregister_channel(GwName, {ClientId, ChanPid}, CmTabs) + catch + error:badarg -> ok + end end, Items ). diff --git a/changes/ce/fix-11065.en.md b/changes/ce/fix-11065.en.md new file mode 100644 index 000000000..e5742bfe0 --- /dev/null +++ b/changes/ce/fix-11065.en.md @@ -0,0 +1 @@ +Avoid logging irrelevant error messages during EMQX shutdown.