소스 검색

fix(connector): fix crash in health checking of mongo connection

zhouzb 4 년 전
부모
커밋
261ca3d625
1개의 변경된 파일7개의 추가작업 그리고 2개의 파일을 삭제
  1. 7 2
      apps/emqx_connector/src/emqx_connector_mongo.erl

+ 7 - 2
apps/emqx_connector/src/emqx_connector_mongo.erl

@@ -169,8 +169,13 @@ health_check(PoolName) ->
         case ecpool_worker:client(Worker) of
             {ok, Conn} ->
                 %% we don't care if this returns something or not, we just to test the connection
-                Res = mongo_api:find_one(Conn, <<"foo">>, {}, #{}),
-                Res == undefined orelse is_map(Res);
+                try mongo_api:find_one(Conn, <<"foo">>, {}, #{}) of
+                    undefined -> true;
+                    Res when is_map(Res) -> true;
+                    _ -> false
+                catch
+                    _Class:_Error -> false
+                end;
             _ -> false
         end
     end || {_WorkerName, Worker} <- ecpool:workers(PoolName)],