From d9aac63f8291120c2dfd9cdb0910f3a4ca28511d Mon Sep 17 00:00:00 2001 From: Thales Macedo Garitezi Date: Wed, 7 Jun 2023 14:34:22 -0300 Subject: [PATCH] refactor(gcp_pubsub): always cleanup resources when calling `on_stop` Fixes https://emqx.atlassian.net/browse/EMQX-9934 The way that this connector was structured already depended only on the resource ID. This PR just makes it completely independent of the resource state term, and also treats an already absent pool as a success when stopping it. --- .../src/emqx_bridge_gcp_pubsub_connector.erl | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub_connector.erl b/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub_connector.erl index 6d278c65f..65a0336ec 100644 --- a/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub_connector.erl +++ b/apps/emqx_bridge_gcp_pubsub/src/emqx_bridge_gcp_pubsub_connector.erl @@ -134,17 +134,21 @@ on_start( end. -spec on_stop(resource_id(), state()) -> ok | {error, term()}. -on_stop( - ResourceId, - _State = #{jwt_config := JWTConfig} -) -> - ?tp(gcp_pubsub_stop, #{resource_id => ResourceId, jwt_config => JWTConfig}), +on_stop(ResourceId, _State) -> + ?tp(gcp_pubsub_stop, #{resource_id => ResourceId}), ?SLOG(info, #{ msg => "stopping_gcp_pubsub_bridge", connector => ResourceId }), - emqx_connector_jwt:delete_jwt(?JWT_TABLE, ResourceId), - ehttpc_sup:stop_pool(ResourceId). + ok = emqx_connector_jwt:delete_jwt(?JWT_TABLE, ResourceId), + case ehttpc_sup:stop_pool(ResourceId) of + ok -> + ok; + {error, not_found} -> + ok; + Error -> + Error + end. -spec on_query( resource_id(),