From c0367fb8ddb878aa93458c8ff084974b3266f884 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Thu, 17 Jun 2021 16:45:44 +0800 Subject: [PATCH] Delete resource failed when searching dependent rules (#4996) --- .../src/emqx_rule_engine.app.src | 2 +- .../src/emqx_rule_engine.appup.src | 20 ++++++++++++++----- .../src/emqx_rule_registry.erl | 7 +++++-- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine.app.src b/apps/emqx_rule_engine/src/emqx_rule_engine.app.src index 83b2d7632..aebb73150 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.app.src +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.app.src @@ -1,6 +1,6 @@ {application, emqx_rule_engine, [{description, "EMQ X Rule Engine"}, - {vsn, "4.3.2"}, % strict semver, bump manually! + {vsn, "4.3.3"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_rule_engine_sup, emqx_rule_registry]}, {applications, [kernel,stdlib,rulesql,getopt]}, diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src b/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src index 446e082b7..554fe2fd8 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src @@ -1,21 +1,31 @@ %% -*-: erlang -*- -{"4.3.2", +{"4.3.3", [ {"4.3.0", - [ {load_module, emqx_rule_funcs, brutal_purge, soft_purge, []}, - {load_module, emqx_rule_engine, brutal_purge, soft_purge, []} + [ {load_module, emqx_rule_funcs, brutal_purge, soft_purge, []} + , {load_module, emqx_rule_engine, brutal_purge, soft_purge, []} + , {load_module, emqx_rule_registry, brutal_purge, soft_purge, []} ]}, {"4.3.1", [ {load_module, emqx_rule_engine, brutal_purge, soft_purge, []} + , {load_module, emqx_rule_registry, brutal_purge, soft_purge, []} + ]}, + {"4.3.2", + [ {load_module, emqx_rule_registry, brutal_purge, soft_purge, []} ]}, {<<".*">>, []} ], [ {"4.3.0", - [ {load_module, emqx_rule_funcs, brutal_purge, soft_purge, []}, - {load_module, emqx_rule_engine, brutal_purge, soft_purge, []} + [ {load_module, emqx_rule_funcs, brutal_purge, soft_purge, []} + , {load_module, emqx_rule_engine, brutal_purge, soft_purge, []} + , {load_module, emqx_rule_registry, brutal_purge, soft_purge, []} ]}, {"4.3.1", [ {load_module, emqx_rule_engine, brutal_purge, soft_purge, []} + , {load_module, emqx_rule_registry, brutal_purge, soft_purge, []} + ]}, + {"4.3.2", + [ {load_module, emqx_rule_registry, brutal_purge, soft_purge, []} ]}, {<<".*">>, []} ] diff --git a/apps/emqx_rule_engine/src/emqx_rule_registry.erl b/apps/emqx_rule_engine/src/emqx_rule_registry.erl index 4ec5d1cb7..2ebca47e4 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_registry.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_registry.erl @@ -392,8 +392,11 @@ find_rules_depends_on_resource(ResId) -> end, [], get_rules()). search_action_despends_on_resource(ResId, Actions) -> - lists:search(fun(#action_instance{args = #{<<"$resource">> := ResId0}}) -> - ResId0 =:= ResId + lists:search(fun + (#action_instance{args = #{<<"$resource">> := ResId0}}) -> + ResId0 =:= ResId; + (_) -> + false end, Actions). %%------------------------------------------------------------------------------