From 261ca3d62579b001ed91db7d112be4cbf6d6c66d Mon Sep 17 00:00:00 2001 From: zhouzb Date: Wed, 24 Nov 2021 16:48:35 +0800 Subject: [PATCH 1/2] fix(connector): fix crash in health checking of mongo connection --- apps/emqx_connector/src/emqx_connector_mongo.erl | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/emqx_connector/src/emqx_connector_mongo.erl b/apps/emqx_connector/src/emqx_connector_mongo.erl index c2d992cb6..9e4a5163b 100644 --- a/apps/emqx_connector/src/emqx_connector_mongo.erl +++ b/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)], From fb6ab93f473c2f93362917107c0dc9c2939885cc Mon Sep 17 00:00:00 2001 From: zhouzb Date: Wed, 24 Nov 2021 18:21:08 +0800 Subject: [PATCH 2/2] fix(dialyzer): fix redundant cases --- apps/emqx_connector/src/emqx_connector_mongo.erl | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/apps/emqx_connector/src/emqx_connector_mongo.erl b/apps/emqx_connector/src/emqx_connector_mongo.erl index 9e4a5163b..11eac9c91 100644 --- a/apps/emqx_connector/src/emqx_connector_mongo.erl +++ b/apps/emqx_connector/src/emqx_connector_mongo.erl @@ -170,9 +170,7 @@ health_check(PoolName) -> {ok, Conn} -> %% we don't care if this returns something or not, we just to test the connection try mongo_api:find_one(Conn, <<"foo">>, {}, #{}) of - undefined -> true; - Res when is_map(Res) -> true; - _ -> false + _ -> true catch _Class:_Error -> false end;