Просмотр исходного кода

chore(channel): remove redundant logs

Multiple sock_closed events may be generated,
so we need to allow sock_closed events to be reentrant
JianBo He 4 лет назад
Родитель
Сommit
c9d39b4d35
1 измененных файлов с 5 добавлено и 2 удалено
  1. 5 2
      src/emqx_channel.erl

+ 5 - 2
src/emqx_channel.erl

@@ -977,8 +977,11 @@ handle_info({sock_closed, Reason}, Channel =
         Shutdown -> Shutdown
     end;
 
-handle_info({sock_closed, Reason}, Channel = #channel{conn_state = disconnected}) ->
-    ?LOG(error, "Unexpected sock_closed: ~p", [Reason]),
+handle_info({sock_closed, _Reason}, Channel = #channel{conn_state = disconnected}) ->
+    %% Since sock_closed messages can be generated multiple times,
+    %% we can simply ignore errors of this type in the disconnected state.
+    %% e.g. when the socket send function returns an error, there is already
+    %% a tcp_closed delivered to the process mailbox
     {ok, Channel};
 
 handle_info(clean_acl_cache, Channel) ->