From e4a3dd9ee8e53c325da59c8c3b02b067305256b4 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Tue, 15 Nov 2022 21:07:01 +0800 Subject: [PATCH 01/16] fix: enlarge the timeout when check alive of resources --- apps/emqx_rule_engine/src/emqx_rule_engine.erl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine.erl b/apps/emqx_rule_engine/src/emqx_rule_engine.erl index 0f62a2ac7..69f39335c 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.erl @@ -95,6 +95,8 @@ end end()). +-define(GET_RES_ALIVE_TIMEOUT, 60000). + %%------------------------------------------------------------------------------ %% Load resource/action providers from all available applications %%------------------------------------------------------------------------------ @@ -405,7 +407,7 @@ is_resource_alive(Nodes, ResId, _Opts = #{fetch := true}) -> {ok, #resource_type{on_status = {Mod, OnStatus}}} = emqx_rule_registry:find_resource_type(ResType), case rpc:multicall(Nodes, - ?MODULE, fetch_resource_status, [Mod, OnStatus, ResId], 5000) of + ?MODULE, fetch_resource_status, [Mod, OnStatus, ResId], ?GET_RES_ALIVE_TIMEOUT) of {ResL, []} -> is_resource_alive_(ResL); {_, _Error} -> @@ -420,7 +422,7 @@ is_resource_alive(Nodes, ResId, _Opts = #{fetch := true}) -> end; is_resource_alive(Nodes, ResId, _Opts = #{fetch := false}) -> try - case rpc:multicall(Nodes, ?MODULE, get_resource_status, [ResId], 5000) of + case rpc:multicall(Nodes, ?MODULE, get_resource_status, [ResId], ?GET_RES_ALIVE_TIMEOUT) of {ResL, []} -> is_resource_alive_(ResL); {_, _Errors} -> From c0674001fbbf4e157da06e6b524f3eba1d66158e Mon Sep 17 00:00:00 2001 From: Ivan Dyachkov Date: Mon, 14 Nov 2022 12:42:57 +0100 Subject: [PATCH 02/16] chore(sync from ee): sign extra binaries on macos when packaging --- scripts/macos-sign-binaries.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/macos-sign-binaries.sh b/scripts/macos-sign-binaries.sh index 7be40f621..384744b2a 100755 --- a/scripts/macos-sign-binaries.sh +++ b/scripts/macos-sign-binaries.sh @@ -42,11 +42,11 @@ for keychain in ${keychains}; do done security -v list-keychains -s "${keychain_names[@]}" "${KEYCHAIN}" -# sign +# known runtime executables and binaries codesign -s "${APPLE_DEVELOPER_IDENTITY}" -f --verbose=4 --timestamp --options=runtime "${REL_DIR}"/erts-*/bin/{beam.smp,dyn_erl,epmd,erl,erl_call,erl_child_setup,erlexec,escript,heart,inet_gethost,run_erl,to_erl} -codesign -s "${APPLE_DEVELOPER_IDENTITY}" -f --verbose=4 --timestamp --options=runtime "${REL_DIR}"/lib/asn1-*/priv/lib/asn1rt_nif.so -codesign -s "${APPLE_DEVELOPER_IDENTITY}" -f --verbose=4 --timestamp --options=runtime "${REL_DIR}"/lib/bcrypt-*/priv/bcrypt_nif.so -codesign -s "${APPLE_DEVELOPER_IDENTITY}" -f --verbose=4 --timestamp --options=runtime "${REL_DIR}"/lib/crypto-*/priv/lib/{crypto.so,otp_test_engine.so} -codesign -s "${APPLE_DEVELOPER_IDENTITY}" -f --verbose=4 --timestamp --options=runtime "${REL_DIR}"/lib/jiffy-*/priv/jiffy.so -codesign -s "${APPLE_DEVELOPER_IDENTITY}" -f --verbose=4 --timestamp --options=runtime "${REL_DIR}"/lib/os_mon-*/priv/bin/{cpu_sup,memsup} codesign -s "${APPLE_DEVELOPER_IDENTITY}" -f --verbose=4 --timestamp --options=runtime "${REL_DIR}"/lib/runtime_tools-*/priv/lib/{dyntrace.so,trace_ip_drv.so,trace_file_drv.so} +codesign -s "${APPLE_DEVELOPER_IDENTITY}" -f --verbose=4 --timestamp --options=runtime "${REL_DIR}"/lib/os_mon-*/priv/bin/{cpu_sup,memsup} +# other files from runtime and dependencies +for f in asn1rt_nif.so bcrypt_nif.so crypto.so otp_test_engine.so crypto_callback.so jiffy.so crc32cer_nif.so sasl_auth.so snappyer.so odbcserver; do + find "${REL_DIR}"/lib/ -name "$f" -exec codesign -s "${APPLE_DEVELOPER_IDENTITY}" -f --verbose=4 --timestamp --options=runtime {} \; +done From f8439383641b750dd883e98962df637b1c4d89bd Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Tue, 15 Nov 2022 21:12:02 +0800 Subject: [PATCH 03/16] fix: don't check resource alive for the temporary resources --- .../emqx_rule_engine/src/emqx_rule_engine.erl | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine.erl b/apps/emqx_rule_engine/src/emqx_rule_engine.erl index 69f39335c..72514a320 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.erl @@ -96,6 +96,7 @@ end()). -define(GET_RES_ALIVE_TIMEOUT, 60000). +-define(PROBE_RES_PREFIX, "__probe__:"). %%------------------------------------------------------------------------------ %% Load resource/action providers from all available applications @@ -365,7 +366,7 @@ test_resource(#{type := Type} = Params) -> {ok, #resource_type{}} -> %% Resource will be deleted after test. %% Use random resource id, ensure test func will not delete the resource in used. - ResId = resource_id(), + ResId = probe_resource_id(), try case create_resource(maps:put(id, ResId, Params), no_retry) of {ok, _} -> @@ -534,10 +535,15 @@ refresh_rule(#rule{id = RuleId, for = Topics, actions = Actions}) -> refresh_resource_status() -> lists:foreach( fun(#resource{id = ResId, type = ResType}) -> - case emqx_rule_registry:find_resource_type(ResType) of - {ok, #resource_type{on_status = {Mod, OnStatus}}} -> - fetch_resource_status(Mod, OnStatus, ResId); - _ -> ok + case is_prober(ResId) of + false -> + case emqx_rule_registry:find_resource_type(ResType) of + {ok, #resource_type{on_status = {Mod, OnStatus}}} -> + fetch_resource_status(Mod, OnStatus, ResId); + _ -> ok + end; + true -> + ok end end, emqx_rule_registry:get_resources()). @@ -664,6 +670,9 @@ ignore_lib_apps(Apps) -> resource_id() -> gen_id("resource:", fun emqx_rule_registry:find_resource/1). +probe_resource_id() -> + gen_id(?PROBE_RES_PREFIX, fun emqx_rule_registry:find_resource/1). + rule_id() -> gen_id("rule:", fun emqx_rule_registry:get_rule/1). @@ -814,3 +823,8 @@ find_type(ResId) -> alarm_name_of_resource_down(Type, ResId) -> list_to_binary(io_lib:format("resource/~s/~s/down", [Type, ResId])). + +is_prober(<>) -> + true; +is_prober(_ResId) -> + false. From 039135368efd068a759929d6ce33865dd5c09007 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Wed, 16 Nov 2022 10:22:21 +0800 Subject: [PATCH 04/16] chore: update mongodb-erlang to v3.0.15 --- rebar.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rebar.config b/rebar.config index 26fbf7f8e..e109fe242 100644 --- a/rebar.config +++ b/rebar.config @@ -61,7 +61,7 @@ , {getopt, "1.0.1"} , {snabbkaffe, {git, "https://github.com/kafka4beam/snabbkaffe.git", {tag, "1.0.1"}}} , {lc, {git, "https://github.com/emqx/lc.git", {tag, "0.3.2"}}} - , {mongodb, {git,"https://github.com/emqx/mongodb-erlang", {tag, "v3.0.14"}}} + , {mongodb, {git,"https://github.com/emqx/mongodb-erlang", {tag, "v3.0.15"}}} , {epgsql, {git, "https://github.com/emqx/epgsql.git", {tag, "4.6.0"}}} , {grpc, {git, "https://github.com/emqx/grpc-erl", {tag, "0.6.7"}}} ]}. From 252b03abd86996a9236390f91bf09edcfe483dc1 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Thu, 17 Nov 2022 10:23:33 +0800 Subject: [PATCH 05/16] fix: generating alarm name for utf8 resource id failed --- .../emqx_rule_engine/src/emqx_rule_engine.erl | 2 +- .../test/emqx_rule_engine_SUITE.erl | 25 +++++++++++++------ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine.erl b/apps/emqx_rule_engine/src/emqx_rule_engine.erl index 72514a320..c9f32b962 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.erl @@ -822,7 +822,7 @@ find_type(ResId) -> {ok, Type}. alarm_name_of_resource_down(Type, ResId) -> - list_to_binary(io_lib:format("resource/~s/~s/down", [Type, ResId])). + unicode:characters_to_binary(io_lib:format("resource/~ts/~ts/down", [Type, ResId])). is_prober(<>) -> true; diff --git a/apps/emqx_rule_engine/test/emqx_rule_engine_SUITE.erl b/apps/emqx_rule_engine/test/emqx_rule_engine_SUITE.erl index b8ee6b981..ed327a987 100644 --- a/apps/emqx_rule_engine/test/emqx_rule_engine_SUITE.erl +++ b/apps/emqx_rule_engine/test/emqx_rule_engine_SUITE.erl @@ -62,7 +62,8 @@ groups() -> t_create_rule, t_reset_metrics, t_reset_metrics_fallbacks, - t_create_resource + t_create_resource, + t_clean_resource_alarms ]}, {actions, [], [t_inspect_action @@ -307,21 +308,29 @@ t_create_resource(_Config) -> ok. t_clean_resource_alarms(_Config) -> + lists:foreach(fun(ResId) -> + clean_resource_alarms(ResId) + end, [<<"abc">>, <<"哈喽"/utf8>>]). + +clean_resource_alarms(ResId) -> + emqx_rule_registry:register_resource_types( + [make_simple_debug_resource_type()]), ok = emqx_rule_engine:load_providers(), {ok, #resource{id = ResId}} = emqx_rule_engine:create_resource( - #{type => built_in, + #{id => ResId, + type => built_in, config => #{}, description => <<"debug resource">>}), - ?assert(true, is_binary(ResId)), Name = emqx_rule_engine:alarm_name_of_resource_down(ResId, built_in), _ = emqx_alarm:activate(Name, #{id => ResId, type => built_in}), AlarmExist = fun(#{name := AName}) -> AName == Name end, - Len = length(lists:filter(AlarmExist, emqx_alarm:get_alarms())), - ?assert(Len == 1), + Len = length(lists:filter(AlarmExist, emqx_alarm:get_alarms(activated))), + ?assertEqual(1, Len), + emqx_rule_engine:ensure_resource_deleted(ResId), + emqx_alarm:deactivate(Name), + LenAfterRemove = length(lists:filter(AlarmExist, emqx_alarm:get_alarms(activated))), + ?assertEqual(0, LenAfterRemove), ok = emqx_rule_engine:unload_providers(), - emqx_rule_registry:remove_resource(ResId), - LenAfterRemove = length(lists:filter(AlarmExist, emqx_alarm:get_alarms())), - ?assert(LenAfterRemove == 0), ok. %%------------------------------------------------------------------------------ From 854836a4c150fc622b402937cb74b024c2f9506c Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Wed, 23 Nov 2022 22:46:37 +0100 Subject: [PATCH 06/16] chore: bump version to v4.3.22-rc.1 --- include/emqx_release.hrl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/emqx_release.hrl b/include/emqx_release.hrl index e7d50d7fc..72d791eb3 100644 --- a/include/emqx_release.hrl +++ b/include/emqx_release.hrl @@ -29,7 +29,7 @@ -ifndef(EMQX_ENTERPRISE). --define(EMQX_RELEASE, {opensource, "4.3.22-alpha.1"}). +-define(EMQX_RELEASE, {opensource, "4.3.22-rc.1"}). -else. From 0d7d9e40224582a2ece7984cb0784c4376f59344 Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Fri, 25 Nov 2022 23:35:33 +0100 Subject: [PATCH 07/16] chore: bump to version v4.3.22 --- include/emqx_release.hrl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/emqx_release.hrl b/include/emqx_release.hrl index 72d791eb3..6c5de4a24 100644 --- a/include/emqx_release.hrl +++ b/include/emqx_release.hrl @@ -29,7 +29,7 @@ -ifndef(EMQX_ENTERPRISE). --define(EMQX_RELEASE, {opensource, "4.3.22-rc.1"}). +-define(EMQX_RELEASE, {opensource, "4.3.22"}). -else. From f2dd44982b4e28bad1f76160854187c7df15358d Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Fri, 25 Nov 2022 23:38:15 +0100 Subject: [PATCH 08/16] docs: update v4.3.22 change logs --- changes/v4.3.22-en.md | 3 ++- changes/v4.3.22-zh.md | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/changes/v4.3.22-en.md b/changes/v4.3.22-en.md index a625bf323..ea3ffcb88 100644 --- a/changes/v4.3.22-en.md +++ b/changes/v4.3.22-en.md @@ -1,7 +1,8 @@ # v4.3.22 -## Enhancements +This marks the last release of EMQX v4.3 Opensource Edition. +## Enhancements - Make sure listener's `tls_versions` config value is one or more of `tlsv1`, `tlsv1.1`, `tlsv1.2`, `tlsv1.3` [#9260](https://github.com/emqx/emqx/pull/9260). diff --git a/changes/v4.3.22-zh.md b/changes/v4.3.22-zh.md index 758b31547..8b7500c4e 100644 --- a/changes/v4.3.22-zh.md +++ b/changes/v4.3.22-zh.md @@ -1,5 +1,7 @@ # v4.3.22 +这是 EMQX 开原版 v4.3 系列的最后一个版本。 + ## 增强 - 检查监听器的 `tls_versions` 配置值是 `tlsv1`,`tlsv1.1`,`tlsv1.2`,`tlsv1.3` 中的一个或多个组合 [#9260](https://github.com/emqx/emqx/pull/9260)。 From 3c84f4b2547c8c611b74f39a39a5a58b3bf87652 Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Sat, 26 Nov 2022 18:14:15 +0100 Subject: [PATCH 09/16] chore: re-generate appup --- apps/emqx_auth_jwt/src/emqx_auth_jwt.app.src | 2 +- apps/emqx_auth_jwt/src/emqx_auth_jwt.appup.src | 6 ++++-- apps/emqx_rule_engine/src/emqx_rule_engine.app.src | 2 +- apps/emqx_rule_engine/src/emqx_rule_engine.appup.src | 6 ++++-- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/apps/emqx_auth_jwt/src/emqx_auth_jwt.app.src b/apps/emqx_auth_jwt/src/emqx_auth_jwt.app.src index e0550fa78..924fffffa 100644 --- a/apps/emqx_auth_jwt/src/emqx_auth_jwt.app.src +++ b/apps/emqx_auth_jwt/src/emqx_auth_jwt.app.src @@ -1,6 +1,6 @@ {application, emqx_auth_jwt, [{description, "EMQ X Authentication with JWT"}, - {vsn, "4.3.8"}, % strict semver, bump manually! + {vsn, "4.3.9"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_auth_jwt_sup]}, {applications, [kernel,stdlib,jose]}, diff --git a/apps/emqx_auth_jwt/src/emqx_auth_jwt.appup.src b/apps/emqx_auth_jwt/src/emqx_auth_jwt.appup.src index 5f1cd15b0..7fd40959f 100644 --- a/apps/emqx_auth_jwt/src/emqx_auth_jwt.appup.src +++ b/apps/emqx_auth_jwt/src/emqx_auth_jwt.appup.src @@ -1,7 +1,8 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.3.7", + [{"4.3.8",[{load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]}]}, + {"4.3.7", [{load_module,emqx_auth_jwt_svr,brutal_purge,soft_purge,[]}, {load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]}]}, {<<"4\\.3\\.[3-6]">>, @@ -9,7 +10,8 @@ {load_module,emqx_auth_jwt_svr,brutal_purge,soft_purge,[]}]}, {<<"4\\.3\\.[0-2]">>,[{restart_application,emqx_auth_jwt}]}, {<<".*">>,[]}], - [{"4.3.7", + [{"4.3.8",[{load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]}]}, + {"4.3.7", [{load_module,emqx_auth_jwt_svr,brutal_purge,soft_purge,[]}, {load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]}]}, {<<"4\\.3\\.[3-6]">>, 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 7989c9542..be6ff4579 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.17"}, % strict semver, bump manually! + {vsn, "4.3.18"}, % 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 db60b666c..333c232f8 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src @@ -1,7 +1,8 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.3.16", + [{"4.3.17",[{load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}]}, + {"4.3.16", [{load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_actions,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine_cli,brutal_purge,soft_purge,[]}, @@ -314,7 +315,8 @@ {load_module,emqx_rule_monitor,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], - [{"4.3.16", + [{"4.3.17",[{load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}]}, + {"4.3.16", [{load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_actions,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine_cli,brutal_purge,soft_purge,[]}, From 478b006e685cc83807cd71a5cc31fe708880476a Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Sat, 26 Nov 2022 21:04:53 +0100 Subject: [PATCH 10/16] chore: update versions --- deploy/charts/emqx/Chart.yaml | 4 ++-- include/emqx_release.hrl | 2 +- lib-ce/emqx_dashboard/src/emqx_dashboard.app.src | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/deploy/charts/emqx/Chart.yaml b/deploy/charts/emqx/Chart.yaml index 28cafe9b3..1997c0f27 100644 --- a/deploy/charts/emqx/Chart.yaml +++ b/deploy/charts/emqx/Chart.yaml @@ -13,8 +13,8 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. -version: 4.3.22 +version: 4.3.23 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. -appVersion: 4.3.22 +appVersion: 4.3.23 diff --git a/include/emqx_release.hrl b/include/emqx_release.hrl index 6c5de4a24..274225ab7 100644 --- a/include/emqx_release.hrl +++ b/include/emqx_release.hrl @@ -29,7 +29,7 @@ -ifndef(EMQX_ENTERPRISE). --define(EMQX_RELEASE, {opensource, "4.3.22"}). +-define(EMQX_RELEASE, {opensource, "4.3.23-alhpa.1"}). -else. diff --git a/lib-ce/emqx_dashboard/src/emqx_dashboard.app.src b/lib-ce/emqx_dashboard/src/emqx_dashboard.app.src index 07c67545b..cb36b99a8 100644 --- a/lib-ce/emqx_dashboard/src/emqx_dashboard.app.src +++ b/lib-ce/emqx_dashboard/src/emqx_dashboard.app.src @@ -1,6 +1,6 @@ {application, emqx_dashboard, [{description, "EMQ X Web Dashboard"}, - {vsn, "4.3.18"}, % strict semver, bump manually! + {vsn, "4.3.19"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_dashboard_sup]}, {applications, [kernel,stdlib,mnesia,minirest]}, From f3fd90604373c0c5a32d20883ca054e571fdb97f Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Sat, 26 Nov 2022 21:05:15 +0100 Subject: [PATCH 11/16] chore: bump emqx app vsn --- src/emqx.app.src | 2 +- src/emqx.appup.src | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/emqx.app.src b/src/emqx.app.src index 99715d1a2..aa0ff68f4 100644 --- a/src/emqx.app.src +++ b/src/emqx.app.src @@ -6,7 +6,7 @@ %% the emqx `release' version, which in turn is comprised of several %% apps, one of which is this. See `emqx_release.hrl' for more %% info. - {vsn, "4.3.23"}, % strict semver, bump manually! + {vsn, "4.3.24"}, % strict semver, bump manually! {modules, []}, {registered, []}, {applications, [ kernel diff --git a/src/emqx.appup.src b/src/emqx.appup.src index 6c016f347..377e7353d 100644 --- a/src/emqx.appup.src +++ b/src/emqx.appup.src @@ -1,7 +1,10 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.3.22", + [{"4.3.23", + [{load_module,emqx_app,brutal_purge,soft_purge,[]}, + {load_module,emqx_cm,brutal_purge,soft_purge,[]}]}, + {"4.3.22", [{load_module,emqx_hooks,brutal_purge,soft_purge,[]}, {load_module,emqx_misc,brutal_purge,soft_purge,[]}, {load_module,emqx_cm,brutal_purge,soft_purge,[]}, @@ -877,7 +880,10 @@ {load_module,emqx_message,brutal_purge,soft_purge,[]}, {load_module,emqx_limiter,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], - [{"4.3.22", + [{"4.3.23", + [{load_module,emqx_app,brutal_purge,soft_purge,[]}, + {load_module,emqx_cm,brutal_purge,soft_purge,[]}]}, + {"4.3.22", [{load_module,emqx_hooks,brutal_purge,soft_purge,[]}, {load_module,emqx_misc,brutal_purge,soft_purge,[]}, {load_module,emqx_cm,brutal_purge,soft_purge,[]}, From 027c05af99d0b4a6df1cbcde2e51a59e3a3dc712 Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Sun, 27 Nov 2022 12:19:38 +0100 Subject: [PATCH 12/16] test(emqx_channel): fix two flaky tests --- src/emqx.appup.src | 6 ++++-- src/emqx_channel.erl | 1 - test/emqx_channel_SUITE.erl | 28 ++++++++++++++++++++-------- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/src/emqx.appup.src b/src/emqx.appup.src index 377e7353d..e0356aca6 100644 --- a/src/emqx.appup.src +++ b/src/emqx.appup.src @@ -2,7 +2,8 @@ %% Unless you know what you are doing, DO NOT edit manually!! {VSN, [{"4.3.23", - [{load_module,emqx_app,brutal_purge,soft_purge,[]}, + [{load_module,emqx_channel,brutal_purge,soft_purge,[]}, + {load_module,emqx_app,brutal_purge,soft_purge,[]}, {load_module,emqx_cm,brutal_purge,soft_purge,[]}]}, {"4.3.22", [{load_module,emqx_hooks,brutal_purge,soft_purge,[]}, @@ -881,7 +882,8 @@ {load_module,emqx_limiter,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], [{"4.3.23", - [{load_module,emqx_app,brutal_purge,soft_purge,[]}, + [{load_module,emqx_channel,brutal_purge,soft_purge,[]}, + {load_module,emqx_app,brutal_purge,soft_purge,[]}, {load_module,emqx_cm,brutal_purge,soft_purge,[]}]}, {"4.3.22", [{load_module,emqx_hooks,brutal_purge,soft_purge,[]}, diff --git a/src/emqx_channel.erl b/src/emqx_channel.erl index 4cae29348..9fad69f90 100644 --- a/src/emqx_channel.erl +++ b/src/emqx_channel.erl @@ -643,7 +643,6 @@ after_message_acked(ClientInfo, Msg, PubAckProps) -> %% Process Subscribe %%-------------------------------------------------------------------- --compile({inline, [process_subscribe/3]}). process_subscribe(TopicFilters, SubProps, Channel) -> process_subscribe(TopicFilters, SubProps, Channel, []). diff --git a/test/emqx_channel_SUITE.erl b/test/emqx_channel_SUITE.erl index d46d95ff2..7aa2bef99 100644 --- a/test/emqx_channel_SUITE.erl +++ b/test/emqx_channel_SUITE.erl @@ -321,11 +321,17 @@ t_handle_in_pubcomp_not_found_error(_) -> t_handle_in_subscribe(_) -> ok = meck:expect(emqx_session, subscribe, fun(_, _, _, Session) -> {ok, Session} end), - Channel = channel(#{conn_state => connected}), - TopicFilters = [{<<"+">>, ?DEFAULT_SUBOPTS}], - Subscribe = ?SUBSCRIBE_PACKET(1, #{}, TopicFilters), - Replies = [{outgoing, ?SUBACK_PACKET(1, [?QOS_0])}, {event, updated}], - {ok, Replies, _Chan} = emqx_channel:handle_in(Subscribe, Channel). + meck:new(emqx_mqtt_caps), + ok = meck:expect(emqx_mqtt_caps, check_sub, fun(_, _, _) -> ok end), + try + Channel = channel(#{conn_state => connected}), + TopicFilters = [{<<"+">>, ?DEFAULT_SUBOPTS}], + Subscribe = ?SUBSCRIBE_PACKET(1, #{}, TopicFilters), + Replies = [{outgoing, ?SUBACK_PACKET(1, [?QOS_0])}, {event, updated}], + {ok, Replies, _Chan} = emqx_channel:handle_in(Subscribe, Channel) + after + meck:unload(emqx_mqtt_caps) + end. t_handle_in_unsubscribe(_) -> ok = meck:expect(emqx_session, unsubscribe, @@ -394,9 +400,15 @@ t_process_publish_qos1(_) -> t_process_subscribe(_) -> ok = meck:expect(emqx_session, subscribe, fun(_, _, _, Session) -> {ok, Session} end), - TopicFilters = [ TopicFilter = {<<"+">>, ?DEFAULT_SUBOPTS}], - {[{TopicFilter, ?RC_SUCCESS}], _Channel} = - emqx_channel:process_subscribe(TopicFilters, #{}, channel()). + meck:new(emqx_mqtt_caps), + ok = meck:expect(emqx_mqtt_caps, check_sub, fun(_, _, _) -> ok end), + try + TopicFilters = [ TopicFilter = {<<"+">>, ?DEFAULT_SUBOPTS}], + {[{TopicFilter, ?RC_SUCCESS}], _Channel} = + emqx_channel:process_subscribe(TopicFilters, #{}, channel()) + after + meck:unload(emqx_mqtt_caps) + end. t_process_unsubscribe(_) -> ok = meck:expect(emqx_session, unsubscribe, fun(_, _, _, Session) -> {ok, Session} end), From ad024871e12119d30ec64d30769fc31a0cc2cfb8 Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Sun, 27 Nov 2022 13:27:29 +0100 Subject: [PATCH 13/16] ci: fix artifact path for macos --- .github/workflows/build_packages.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_packages.yaml b/.github/workflows/build_packages.yaml index 4d82c4f0e..0ad7e9804 100644 --- a/.github/workflows/build_packages.yaml +++ b/.github/workflows/build_packages.yaml @@ -145,7 +145,7 @@ jobs: apple_developer_id_bundle_password: ${{ secrets.APPLE_DEVELOPER_ID_BUNDLE_PASSWORD }} - uses: actions/upload-artifact@v3 with: - name: ${{ env.EMQX_NAME }}-${{ matrix.otp }} + name: ${{ env.EMQX_NAME }} path: _packages/${{ env.EMQX_NAME }}/ linux: From 8b37baad3a6dfb62df7600de988353d064b229cf Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Sun, 27 Nov 2022 17:33:32 +0100 Subject: [PATCH 14/16] ci: upgrade build-env image to erl23.3.4.18-1 --- .github/workflows/build_slim_packages.yaml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build_slim_packages.yaml b/.github/workflows/build_slim_packages.yaml index 65f3c760d..e06a74dc4 100644 --- a/.github/workflows/build_slim_packages.yaml +++ b/.github/workflows/build_slim_packages.yaml @@ -12,7 +12,7 @@ jobs: fail-fast: false matrix: otp: - - erl23.3.4.9-3 + - erl23.3.4.18-1 os: - ubuntu20.04 - centos7 @@ -31,9 +31,7 @@ jobs: steps: - uses: AutoModality/action-clean@v1 - # keep using v1 for now as the otp-23 image has an old version git - # TODO: change to v3 after OTP is upgraded to 23.3.4.18-1 - - uses: actions/checkout@v1 + - uses: actions/checkout@v3 with: fetch-depth: 0 # clone full git history - name: fix-git-unsafe-repository From 1c1e158874d3f50f52a3e6a8b4904c818259ec72 Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Sun, 27 Nov 2022 17:42:42 +0100 Subject: [PATCH 15/16] ci: build slim package on centos 8 centos 7 has some git compatibility issues --- .github/workflows/build_slim_packages.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_slim_packages.yaml b/.github/workflows/build_slim_packages.yaml index e06a74dc4..6a1bf6e87 100644 --- a/.github/workflows/build_slim_packages.yaml +++ b/.github/workflows/build_slim_packages.yaml @@ -15,7 +15,7 @@ jobs: - erl23.3.4.18-1 os: - ubuntu20.04 - - centos7 + - centos8 runs-on: - aws-amd64 - ubuntu-20.04 From 2e58152c32e53912bd716d547ab9ed66c810c21e Mon Sep 17 00:00:00 2001 From: Ivan Dyachkov Date: Wed, 26 Oct 2022 12:57:59 +0200 Subject: [PATCH 16/16] ci: bump otp version to 23.3.4.18-1 --- .github/workflows/apps_version_check.yaml | 2 +- .github/workflows/build_packages.yaml | 12 ++++++------ .github/workflows/build_slim_packages.yaml | 2 +- .github/workflows/check_deps_integrity.yaml | 2 +- .github/workflows/release.yaml | 2 +- .github/workflows/run_acl_migration_tests.yaml | 2 +- .github/workflows/run_automate_tests.yaml | 2 +- .github/workflows/run_fvt_tests.yaml | 10 +++++----- .github/workflows/run_test_cases.yaml | 8 ++++---- 9 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/apps_version_check.yaml b/.github/workflows/apps_version_check.yaml index 257eba4f7..b69436901 100644 --- a/.github/workflows/apps_version_check.yaml +++ b/.github/workflows/apps_version_check.yaml @@ -9,7 +9,7 @@ jobs: strategy: matrix: erl_otp: - - erl23.3.4.9-3 + - erl23.3.4.18-1 os: - ubuntu20.04 diff --git a/.github/workflows/build_packages.yaml b/.github/workflows/build_packages.yaml index 0ad7e9804..837503294 100644 --- a/.github/workflows/build_packages.yaml +++ b/.github/workflows/build_packages.yaml @@ -20,7 +20,7 @@ jobs: # avoid building when syncing to ee repo if: endsWith(github.repository, 'emqx') runs-on: ubuntu-20.04 - container: emqx/build-env:erl23.3.4.9-3-ubuntu20.04 + container: emqx/build-env:erl23.3.4.18-1-ubuntu20.04 outputs: profiles: ${{ steps.detect-profiles.outputs.profiles}} @@ -58,7 +58,7 @@ jobs: matrix: profile: ${{fromJSON(needs.prepare.outputs.profiles)}} otp: - - 23.3.4.13 + - 23.3.4.17 exclude: - profile: emqx-edge @@ -119,7 +119,7 @@ jobs: strategy: matrix: otp: - - 23.3.4.9-3 + - 23.3.4.18-1 os: - macos-11 runs-on: ${{ matrix.os }} @@ -174,7 +174,7 @@ jobs: # - raspbian9 otp_version: #- 23.2.7.2-emqx-3 - - 23.3.4.9-3 + - 23.3.4.18-1 exclude: - os: centos6 arch: arm64 @@ -330,7 +330,7 @@ jobs: tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} build-args: | - BUILD_FROM=emqx/build-env:erl23.3.4.9-3-alpine + BUILD_FROM=emqx/build-env:erl23.3.4.18-1-alpine RUN_FROM=alpine:3.12 EMQX_NAME=${{ matrix.profile }} file: source/deploy/docker/Dockerfile @@ -346,7 +346,7 @@ jobs: tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} build-args: | - BUILD_FROM=emqx/build-env:erl23.3.4.9-3-alpine + BUILD_FROM=emqx/build-env:erl23.3.4.18-1-alpine RUN_FROM=alpine:3.12 EMQX_NAME=${{ matrix.profile }} file: source/deploy/docker/Dockerfile.enterprise diff --git a/.github/workflows/build_slim_packages.yaml b/.github/workflows/build_slim_packages.yaml index 6a1bf6e87..f805b6ee2 100644 --- a/.github/workflows/build_slim_packages.yaml +++ b/.github/workflows/build_slim_packages.yaml @@ -73,7 +73,7 @@ jobs: strategy: matrix: otp: - - 23.3.4.9-3 + - 23.3.4.18-1 os: - macos-11 runs-on: ${{ matrix.os }} diff --git a/.github/workflows/check_deps_integrity.yaml b/.github/workflows/check_deps_integrity.yaml index 07ec47754..9dedec3dd 100644 --- a/.github/workflows/check_deps_integrity.yaml +++ b/.github/workflows/check_deps_integrity.yaml @@ -5,7 +5,7 @@ on: [pull_request] jobs: check_deps_integrity: runs-on: ubuntu-20.04 - container: emqx/build-env:erl23.3.4.9-3-ubuntu20.04 + container: emqx/build-env:erl23.3.4.18-1-ubuntu20.04 steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index c8065cd0c..205863c98 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -7,7 +7,7 @@ on: jobs: prepare: runs-on: ubuntu-20.04 - container: emqx/build-env:erl23.3.4.9-3-ubuntu20.04 + container: emqx/build-env:erl23.3.4.18-1-ubuntu20.04 outputs: profiles: ${{ steps.detect-profiles.outputs.profiles}} diff --git a/.github/workflows/run_acl_migration_tests.yaml b/.github/workflows/run_acl_migration_tests.yaml index bbaed018f..9bc801c96 100644 --- a/.github/workflows/run_acl_migration_tests.yaml +++ b/.github/workflows/run_acl_migration_tests.yaml @@ -5,7 +5,7 @@ on: workflow_dispatch jobs: test: runs-on: ubuntu-20.04 - container: emqx/build-env:erl23.3.4.9-3-ubuntu20.04 + container: emqx/build-env:erl23.3.4.18-1-ubuntu20.04 strategy: fail-fast: true env: diff --git a/.github/workflows/run_automate_tests.yaml b/.github/workflows/run_automate_tests.yaml index 99c243b63..073c884b3 100644 --- a/.github/workflows/run_automate_tests.yaml +++ b/.github/workflows/run_automate_tests.yaml @@ -29,7 +29,7 @@ jobs: - uses: actions/checkout@v2 - uses: erlef/setup-beam@v1 with: - otp-version: "23.3.4.13" + otp-version: "23.3.4.17" - name: build docker id: build_docker run: | diff --git a/.github/workflows/run_fvt_tests.yaml b/.github/workflows/run_fvt_tests.yaml index dec677e9c..c16e7435f 100644 --- a/.github/workflows/run_fvt_tests.yaml +++ b/.github/workflows/run_fvt_tests.yaml @@ -15,7 +15,7 @@ jobs: - uses: actions/checkout@v1 - uses: erlef/setup-beam@v1 with: - otp-version: "23.3.4.9" + otp-version: "23.3.4.17" - name: make docker run: | if make emqx-ee --dry-run > /dev/null 2>&1; then @@ -67,7 +67,7 @@ jobs: - uses: actions/checkout@v1 - uses: erlef/setup-beam@v1 with: - otp-version: "23.3.4.9" + otp-version: "23.3.4.17" - name: prepare run: | if make emqx-ee --dry-run > /dev/null 2>&1; then @@ -154,7 +154,7 @@ jobs: relup_test_plan: runs-on: ubuntu-20.04 - container: emqx/build-env:erl23.3.4.9-3-ubuntu20.04 + container: emqx/build-env:erl23.3.4.18-1-ubuntu20.04 outputs: profile: ${{ steps.profile-and-versions.outputs.profile }} vsn: ${{ steps.profile-and-versions.outputs.vsn }} @@ -200,7 +200,7 @@ jobs: relup_test_build: needs: relup_test_plan runs-on: ubuntu-20.04 - container: emqx/build-env:erl23.3.4.9-3-ubuntu20.04 + container: emqx/build-env:erl23.3.4.18-1-ubuntu20.04 defaults: run: shell: bash @@ -235,7 +235,7 @@ jobs: - relup_test_plan - relup_test_build runs-on: ubuntu-20.04 - container: emqx/relup-test-env:erl23.2.7.2-emqx-3-ubuntu20.04 + container: emqx/relup-test-env:erl23.3.4.18-1-ubuntu20.04 strategy: fail-fast: false matrix: diff --git a/.github/workflows/run_test_cases.yaml b/.github/workflows/run_test_cases.yaml index ea30902bc..9dfca81e4 100644 --- a/.github/workflows/run_test_cases.yaml +++ b/.github/workflows/run_test_cases.yaml @@ -12,7 +12,7 @@ on: jobs: prepare: runs-on: aws-amd64 - container: emqx/build-env:erl23.3.4.9-3-ubuntu20.04 + container: emqx/build-env:erl23.3.4.18-1-ubuntu20.04 outputs: fast_ct_apps: ${{ steps.run_find_apps.outputs.fast_ct_apps }} docker_ct_apps: ${{ steps.run_find_apps.outputs.docker_ct_apps }} @@ -58,7 +58,7 @@ jobs: eunit_and_proper: needs: prepare runs-on: aws-amd64 - container: emqx/build-env:erl23.3.4.9-3-ubuntu20.04 + container: emqx/build-env:erl23.3.4.18-1-ubuntu20.04 strategy: fail-fast: false matrix: @@ -86,7 +86,7 @@ jobs: fast_ct: needs: prepare runs-on: ${{ matrix.runs-on }} - container: emqx/build-env:erl23.3.4.9-3-ubuntu20.04 + container: emqx/build-env:erl23.3.4.18-1-ubuntu20.04 strategy: fail-fast: false matrix: @@ -249,7 +249,7 @@ jobs: - fast_ct - docker_ct runs-on: aws-amd64 - container: emqx/build-env:erl23.3.4.9-3-ubuntu20.04 + container: emqx/build-env:erl23.3.4.18-1-ubuntu20.04 steps: - uses: AutoModality/action-clean@v1 - uses: actions/download-artifact@v3