From 491b402be3660611e8ac24f54a75e32c2d335d41 Mon Sep 17 00:00:00 2001 From: JianBo He Date: Tue, 8 Nov 2022 09:46:01 +0800 Subject: [PATCH 1/4] test(stomp): fix flaky tests --- apps/emqx_stomp/test/emqx_stomp_SUITE.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/emqx_stomp/test/emqx_stomp_SUITE.erl b/apps/emqx_stomp/test/emqx_stomp_SUITE.erl index 0c02e9f29..8aca570ff 100644 --- a/apps/emqx_stomp/test/emqx_stomp_SUITE.erl +++ b/apps/emqx_stomp/test/emqx_stomp_SUITE.erl @@ -349,7 +349,7 @@ t_1000_msg_send(_) -> receive {deliver, Topic, _Msg}-> ok - after 100 -> + after 5000 -> ?assert(false, "waiting message timeout") end end, From c319e917587ba9994e2a95249ca2032b2feeec66 Mon Sep 17 00:00:00 2001 From: Traphalet Date: Mon, 7 Nov 2022 16:02:37 +0200 Subject: [PATCH 2/4] fix: remove outdated cert store from packages --- .github/workflows/build_packages.yaml | 5 +++++ build | 15 +++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_packages.yaml b/.github/workflows/build_packages.yaml index 38c1ea472..195e3c23c 100644 --- a/.github/workflows/build_packages.yaml +++ b/.github/workflows/build_packages.yaml @@ -94,6 +94,11 @@ jobs: } make ensure-rebar3 make ${{ matrix.profile }} + ## Delete certifi cert store + $Cert = Get-ChildItem "_build/${{ matrix.profile }}/rel/emqx/lib/certifi*/priv/cacerts.pem" + if (Test-Path $Cert) { + Remove-Item $Cert + } mkdir -p _packages/${{ matrix.profile }} Compress-Archive -Path _build/${{ matrix.profile }}/rel/emqx -DestinationPath _build/${{ matrix.profile }}/rel/$pkg_name mv _build/${{ matrix.profile }}/rel/$pkg_name _packages/${{ matrix.profile }} diff --git a/build b/build index 0ffb810eb..1cb6bd713 100755 --- a/build +++ b/build @@ -61,9 +61,20 @@ log() { echo "===< $msg" } +delete_unwanted_file() { + if [ -e "${1}" ]; then + log "Deleting file: ${1}" + rm -f "${1}" + else + log "Cannot delete file: ${1} -- file not found" + fi +} + make_rel() { - # shellcheck disable=SC1010 - ./rebar3 as "$PROFILE" do release,tar + ./rebar3 as "$PROFILE" release + # delete outdated cert store + delete_unwanted_file _build/"${PROFILE}"/rel/emqx/lib/certifi*/priv/cacerts.pem + ./rebar3 as "$PROFILE" tar } ## unzip previous version .zip files to _build/$PROFILE/rel/emqx/releases before making relup From 407a197c8a3e90326c8e7228f18d66165348406d Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Wed, 9 Nov 2022 12:06:58 +0800 Subject: [PATCH 3/4] fix: typos in the RAISE macro of rule_engine --- apps/emqx_rule_engine/src/emqx_rule_engine.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine.erl b/apps/emqx_rule_engine/src/emqx_rule_engine.erl index b458469da..8ba75101e 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.erl @@ -88,7 +88,7 @@ throw : Reason -> throw({_ERROR_CONTEXT_, Reason}); _EXCLASS_:_EXCPTION_:_ST_ -> - throw({_ERROR_CONTEXT_, {_EXCPTION_, _EXCPTION_, _ST_}}) + throw({_ERROR_CONTEXT_, {_EXCLASS_, _EXCPTION_, _ST_}}) end end()). From 6725a36dbf200e9142c087108d558c120fc27eb0 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Wed, 9 Nov 2022 22:18:28 +0800 Subject: [PATCH 4/4] fix: make init_resource_with_retrier/4 only 'throw' when failed --- .../emqx_rule_engine/src/emqx_rule_engine.erl | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine.erl b/apps/emqx_rule_engine/src/emqx_rule_engine.erl index 8ba75101e..0f62a2ac7 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.erl @@ -82,12 +82,15 @@ %% redefine this macro to confine the appup scope -undef(RAISE). -define(RAISE(_EXP_, _ERROR_CONTEXT_), + ?RAISE(_EXP_, do_nothing, _ERROR_CONTEXT_)). +-define(RAISE(_EXP_, _EXP_ON_FAIL_, _ERROR_CONTEXT_), fun() -> try (_EXP_) catch throw : Reason -> throw({_ERROR_CONTEXT_, Reason}); _EXCLASS_:_EXCPTION_:_ST_ -> + _EXP_ON_FAIL_, throw({_ERROR_CONTEXT_, {_EXCLASS_, _EXCPTION_, _ST_}}) end end()). @@ -496,7 +499,12 @@ refresh_resource(Type) when is_atom(Type) -> refresh_resource(#resource{id = ResId, type = Type, config = Config}) -> {ok, #resource_type{on_create = {M, F}}} = emqx_rule_registry:find_resource_type(Type), - ok = emqx_rule_engine:init_resource_with_retrier(M, F, ResId, Config). + try + init_resource_with_retrier(M, F, ResId, Config) + catch + throw:Reason -> + ?LOG_SENSITIVE(warning, "refresh_resource failed: ~0p", [Reason]) + end. -spec(refresh_rules_when_boot() -> ok). refresh_rules_when_boot() -> @@ -675,16 +683,12 @@ init_resource(Module, OnCreate, ResId, Config) -> emqx_rule_registry:add_resource_params(ResParams). init_resource_with_retrier(Module, OnCreate, ResId, Config) -> - try - Params = Module:OnCreate(ResId, Config), - ResParams = #resource_params{id = ResId, - params = Params, - status = #{is_alive => true}}, - emqx_rule_registry:add_resource_params(ResParams) - catch Class:Reason:ST -> - emqx_rule_monitor:ensure_resource_retrier(ResId), - erlang:raise(Class, {init_resource, Reason}, ST) - end. + Params = ?RAISE(Module:OnCreate(ResId, Config), + emqx_rule_monitor:ensure_resource_retrier(ResId), {Module, OnCreate}), + ResParams = #resource_params{id = ResId, + params = Params, + status = #{is_alive => true}}, + emqx_rule_registry:add_resource_params(ResParams). init_action(Module, OnCreate, ActionInstId, Params) -> ok = emqx_rule_metrics:create_metrics(ActionInstId),