Prechádzať zdrojové kódy

Merge pull request #11065 from SergeTupchiy/EMQX-9992-fix-async-cleanup-error-logs

fix: avoid logging unnecessary errors in async cleanup functions
SergeTupchiy 2 rokov pred
rodič
commit
8480a26b66

+ 13 - 9
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.

+ 5 - 1
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() ->

+ 5 - 1
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
     ).

+ 1 - 0
changes/ce/fix-11065.en.md

@@ -0,0 +1 @@
+Avoid logging irrelevant error messages during EMQX shutdown.