Преглед изворни кода

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
         case ecpool_worker:client(Worker) of
             {ok, Conn} ->
             {ok, Conn} ->
                 %% we don't care if this returns something or not, we just to test the connection
                 %% 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
             _ -> false
         end
         end
     end || {_WorkerName, Worker} <- ecpool:workers(PoolName)],
     end || {_WorkerName, Worker} <- ecpool:workers(PoolName)],