From 14da61194ecbc49f8a70f7d862c7906210bf1f3e Mon Sep 17 00:00:00 2001 From: Stefan Strigler Date: Thu, 29 Jun 2023 10:42:19 +0200 Subject: [PATCH] fix: handle resource errors --- apps/emqx_rule_engine/src/emqx_rule_runtime.erl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/emqx_rule_engine/src/emqx_rule_runtime.erl b/apps/emqx_rule_engine/src/emqx_rule_runtime.erl index 812d30630..4a1477a1c 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_runtime.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_runtime.erl @@ -344,6 +344,7 @@ handle_action(RuleId, ActId, Selected, Envs) -> }) end. +-define(IS_RES_DOWN(R), R == stopped; R == not_connected; R == not_found; R == unhealthy_target). do_handle_action(RuleId, {bridge, BridgeType, BridgeName, ResId}, Selected, _Envs) -> ?TRACE( "BRIDGE", @@ -356,6 +357,8 @@ do_handle_action(RuleId, {bridge, BridgeType, BridgeName, ResId}, Selected, _Env of {error, Reason} when Reason == bridge_not_found; Reason == bridge_stopped -> throw(out_of_service); + ?RESOURCE_ERROR_M(R, _) when ?IS_RES_DOWN(R) -> + throw(out_of_service); Result -> Result end; @@ -520,11 +523,8 @@ inc_action_metrics(RuleId, Result) -> _ = do_inc_action_metrics(RuleId, Result), Result. --define(IS_RES_DOWN(R), R == stopped; R == not_connected; R == not_found). do_inc_action_metrics(RuleId, {error, {recoverable_error, _}}) -> emqx_metrics_worker:inc(rule_metrics, RuleId, 'actions.failed.out_of_service'); -do_inc_action_metrics(RuleId, ?RESOURCE_ERROR_M(R, _)) when ?IS_RES_DOWN(R) -> - emqx_metrics_worker:inc(rule_metrics, RuleId, 'actions.failed.out_of_service'); do_inc_action_metrics(RuleId, {error, {unrecoverable_error, _}}) -> emqx_metrics_worker:inc(rule_metrics, RuleId, 'actions.failed'); do_inc_action_metrics(RuleId, R) ->