From 764e68ce9ba3ac653ff07d45d698ed199f758527 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Mon, 13 Feb 2023 21:26:52 +0800 Subject: [PATCH 01/34] chore: release v4.4.15-alpha.1 --- data/relup-paths.eterm | 8 +++++++- deploy/charts/emqx/Chart.yaml | 4 ++-- include/emqx_release.hrl | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/data/relup-paths.eterm b/data/relup-paths.eterm index 1f075e888..3d2946eca 100644 --- a/data/relup-paths.eterm +++ b/data/relup-paths.eterm @@ -63,8 +63,14 @@ <<"4.4.13">>,<<"4.4.2">>,<<"4.4.3">>,<<"4.4.4">>,<<"4.4.5">>, <<"4.4.6">>,<<"4.4.7">>,<<"4.4.8">>,<<"4.4.9">>], otp => <<"24.3.4.2-1">>}}. +{<<"4.4.15">>, + #{from_versions => + [<<"4.4.0">>,<<"4.4.1">>,<<"4.4.10">>,<<"4.4.11">>,<<"4.4.12">>, + <<"4.4.13">>,<<"4.4.14">>,<<"4.4.2">>,<<"4.4.3">>,<<"4.4.4">>,<<"4.4.5">>, + <<"4.4.6">>,<<"4.4.7">>,<<"4.4.8">>,<<"4.4.9">>], + otp => <<"24.3.4.2-1">>}}. {<<"4.5.0">>, #{from_versions => - [<<"4.4.10">>,<<"4.4.11">>,<<"4.4.13">>,<<"4.4.14">>,<<"4.4.8">>, + [<<"4.4.10">>,<<"4.4.11">>,<<"4.4.13">>,<<"4.4.14">>,<<"4.4.15">>,<<"4.4.8">>, <<"4.4.9">>], otp => <<"24.3.4.2-1">>}}. diff --git a/deploy/charts/emqx/Chart.yaml b/deploy/charts/emqx/Chart.yaml index 092af1ab7..c9c7f07bc 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.4.14 +version: 4.4.15 # 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.4.14 +appVersion: 4.4.15 diff --git a/include/emqx_release.hrl b/include/emqx_release.hrl index bba0303d1..a909d3984 100644 --- a/include/emqx_release.hrl +++ b/include/emqx_release.hrl @@ -29,7 +29,7 @@ -ifndef(EMQX_ENTERPRISE). --define(EMQX_RELEASE, {opensource, "4.4.14"}). +-define(EMQX_RELEASE, {opensource, "4.4.15-alpha.1"}). -else. From a353cbc87a88b132bfea49a65a045cb1021ea412 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Tue, 14 Feb 2023 10:17:37 +0800 Subject: [PATCH 02/34] chore: update dashboard to v4.4.9 --- scripts/get-dashboard.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/get-dashboard.sh b/scripts/get-dashboard.sh index b4d08c216..ba7205de5 100755 --- a/scripts/get-dashboard.sh +++ b/scripts/get-dashboard.sh @@ -9,12 +9,12 @@ PKG_VSN="${PKG_VSN:-$(./pkg-vsn.sh)}" case "${PKG_VSN}" in 4.3*) EMQX_CE_DASHBOARD_VERSION='v4.3.12' - EMQX_EE_DASHBOARD_VERSION='v4.3.27' + EMQX_EE_DASHBOARD_VERSION='v4.3.29' ;; 4.4*) # keep the above 4.3 untouched, otherwise conflicts! - EMQX_CE_DASHBOARD_VERSION='v4.4.8' - EMQX_EE_DASHBOARD_VERSION='v4.4.18' + EMQX_CE_DASHBOARD_VERSION='v4.4.9' + EMQX_EE_DASHBOARD_VERSION='v4.4.21' ;; *) echo "Unsupported version $PKG_VSN" >&2 From bfa00a04dc41a8e60bffc61b18740742dd0ab356 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Wed, 15 Feb 2023 11:51:12 +0800 Subject: [PATCH 03/34] fix: flacky testcases emqx_rule_monitor_SUITE --- apps/emqx_rule_engine/test/emqx_rule_monitor_SUITE.erl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/emqx_rule_engine/test/emqx_rule_monitor_SUITE.erl b/apps/emqx_rule_engine/test/emqx_rule_monitor_SUITE.erl index 646f2644f..1d42cacb4 100644 --- a/apps/emqx_rule_engine/test/emqx_rule_monitor_SUITE.erl +++ b/apps/emqx_rule_engine/test/emqx_rule_monitor_SUITE.erl @@ -40,6 +40,8 @@ groups() -> ]. init_per_suite(Config) -> + %% ensure alarm_handler started + {ok, _} = application:ensure_all_started(sasl), ok = ekka_mnesia:start(), ok = emqx_rule_registry:mnesia(boot), Config. From c84096c9c809401c2da0904285dce8e55b605e13 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Wed, 15 Feb 2023 15:55:31 +0800 Subject: [PATCH 04/34] fix: the _EXP_ON_FAIL_ was not called on throw --- apps/emqx_rule_engine/src/emqx_rule_engine.erl | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine.erl b/apps/emqx_rule_engine/src/emqx_rule_engine.erl index b7467a81f..a3bb4f992 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.erl @@ -89,6 +89,7 @@ try (_EXP_) catch throw : Reason -> + _EXP_ON_FAIL_, throw({_ERROR_CONTEXT_, Reason}); _EXCLASS_:_EXCPTION_:_ST_ -> _EXP_ON_FAIL_, From 26fecce3b303db1e7b05b5eb81f73ef60dbd5f38 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Wed, 15 Feb 2023 22:29:52 +0800 Subject: [PATCH 05/34] chore: release e4.4.15-alpha.2 --- 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 a909d3984..1c2aef60e 100644 --- a/include/emqx_release.hrl +++ b/include/emqx_release.hrl @@ -29,7 +29,7 @@ -ifndef(EMQX_ENTERPRISE). --define(EMQX_RELEASE, {opensource, "4.4.15-alpha.1"}). +-define(EMQX_RELEASE, {opensource, "4.4.15-alpha.2"}). -else. From b0732cb0bbea22851281d25b361c528ee3d37037 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Fri, 17 Feb 2023 13:54:54 +0800 Subject: [PATCH 06/34] fix(test): flaky test cases emqx_mod_delayed_SUITE --- lib-ce/emqx_modules/test/emqx_mod_delayed_SUITE.erl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib-ce/emqx_modules/test/emqx_mod_delayed_SUITE.erl b/lib-ce/emqx_modules/test/emqx_mod_delayed_SUITE.erl index 715e541f0..e00387494 100644 --- a/lib-ce/emqx_modules/test/emqx_mod_delayed_SUITE.erl +++ b/lib-ce/emqx_modules/test/emqx_mod_delayed_SUITE.erl @@ -58,13 +58,13 @@ set_special_configs(_App) -> t_load_case(_) -> UnHooks = emqx_hooks:lookup('message.publish'), ?assertEqual([], UnHooks), - ok = emqx_mod_delayed:load([]), + _ = emqx_mod_delayed:load([]), Hooks = emqx_hooks:lookup('message.publish'), ?assertEqual(1, length(Hooks)), ok. t_delayed_message(_) -> - ok = emqx_mod_delayed:load([]), + _ = emqx_mod_delayed:load([]), DelayedMsg = emqx_message:make(?MODULE, 1, <<"$delayed/1/publish">>, <<"delayed_m">>), ?assertEqual({stop, DelayedMsg#message{topic = <<"publish">>, headers = #{allow_publish => false}}}, on_message_publish(DelayedMsg)), @@ -81,7 +81,7 @@ t_delayed_message(_) -> ok = emqx_mod_delayed:unload([]). t_banned_delayed(_) -> - ok = emqx_mod_delayed:load([]), + _ = emqx_mod_delayed:load([]), ClientId1 = <<"bc1">>, ClientId2 = <<"bc2">>, @@ -119,6 +119,7 @@ t_banned_delayed(_) -> snabbkaffe:stop(), emqx_banned:delete(Who), + timer:sleep(500), EmptyKey = mnesia:dirty_all_keys(emqx_mod_delayed), ?assertEqual([], EmptyKey), ok = emqx_mod_delayed:unload([]). From 2d0d578b4f9343bd03c4b47ac0aff8d3aa317fb1 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Tue, 28 Feb 2023 17:38:35 +0800 Subject: [PATCH 07/34] fix: delete ssl dirs on resource destory --- .../src/emqx_bridge_mqtt_actions.erl | 1 + .../src/emqx_plugin_libs_ssl.erl | 18 ++++++++++++++++++ .../src/emqx_web_hook_actions.erl | 1 + 3 files changed, 20 insertions(+) diff --git a/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt_actions.erl b/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt_actions.erl index b43d44eac..67b5a7a2e 100644 --- a/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt_actions.erl +++ b/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt_actions.erl @@ -482,6 +482,7 @@ on_resource_destroy(ResId, #{<<"pool">> := PoolName}) -> ?LOG(info, "Destroying Resource ~p, ResId: ~p", [?RESOURCE_TYPE_MQTT, ResId]), case ecpool:stop_sup_pool(PoolName) of ok -> + emqx_plugin_libs_ssl:maybe_delete_dir("rules", ResId), ?LOG(info, "Destroyed Resource ~p Successfully, ResId: ~p", [?RESOURCE_TYPE_MQTT, ResId]); {error, Reason} -> ?LOG(error, "Destroy Resource ~p failed, ResId: ~p, ~p", [?RESOURCE_TYPE_MQTT, ResId, Reason]), diff --git a/apps/emqx_plugin_libs/src/emqx_plugin_libs_ssl.erl b/apps/emqx_plugin_libs/src/emqx_plugin_libs_ssl.erl index d863d6981..4526dfb37 100644 --- a/apps/emqx_plugin_libs/src/emqx_plugin_libs_ssl.erl +++ b/apps/emqx_plugin_libs/src/emqx_plugin_libs_ssl.erl @@ -21,6 +21,10 @@ save_file/2 ]). +-export([maybe_delete_dir/1, + maybe_delete_dir/2 + ]). + -type file_input_key() :: binary(). %% <<"file">> | <<"filename">> -type file_input() :: #{file_input_key() => binary()}. @@ -141,6 +145,20 @@ maybe_save_file(FileName, Content, Dir) -> error({"failed_to_save_ssl_file", FullFilename, Reason}) end. +maybe_delete_dir(SubDir, ResId) -> + Dir = filename:join([emqx:get_env(data_dir), SubDir, ResId]), + maybe_delete_dir(Dir). + +maybe_delete_dir(Dir) -> + case file:del_dir_r(Dir) of + ok -> + ok; + {error, enoent} -> + ok; + {error, Reason} -> + logger:error("Delete Resource dir ~p failed for reason: ~p", [Dir, Reason]) + end. + ensure_str(L) when is_list(L) -> L; ensure_str(B) when is_binary(B) -> unicode:characters_to_list(B, utf8). diff --git a/apps/emqx_web_hook/src/emqx_web_hook_actions.erl b/apps/emqx_web_hook/src/emqx_web_hook_actions.erl index 351a8ba2b..e8e96748e 100644 --- a/apps/emqx_web_hook/src/emqx_web_hook_actions.erl +++ b/apps/emqx_web_hook/src/emqx_web_hook_actions.erl @@ -238,6 +238,7 @@ on_resource_destroy(ResId, #{<<"pool">> := PoolName}) -> ?LOG(info, "Destroying Resource ~p, ResId: ~p", [?RESOURCE_TYPE_WEBHOOK, ResId]), case ehttpc_pool:stop_pool(PoolName) of ok -> + emqx_plugin_libs_ssl:maybe_delete_dir("rules", ResId), ?LOG(info, "Destroyed Resource ~p Successfully, ResId: ~p", [?RESOURCE_TYPE_WEBHOOK, ResId]); {error, Reason} -> ?LOG(error, "Destroy Resource ~p failed, ResId: ~p, ~p", [?RESOURCE_TYPE_WEBHOOK, ResId, Reason]), From 3a735d8f5d962e215e7e1cfa26a78d39c50b4332 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Tue, 28 Feb 2023 17:42:33 +0800 Subject: [PATCH 08/34] chore: bump app.src and appup.src. update changes.md --- .../src/emqx_plugin_libs.app.src | 2 +- .../src/emqx_plugin_libs.appup.src | 33 ++++++++++--------- apps/emqx_web_hook/src/emqx_web_hook.app.src | 2 +- .../emqx_web_hook/src/emqx_web_hook.appup.src | 8 +++-- changes/v4.4.15-en.md | 2 ++ changes/v4.4.15-zh.md | 2 ++ 6 files changed, 29 insertions(+), 20 deletions(-) diff --git a/apps/emqx_plugin_libs/src/emqx_plugin_libs.app.src b/apps/emqx_plugin_libs/src/emqx_plugin_libs.app.src index 2b59d095b..39eb2f0fe 100644 --- a/apps/emqx_plugin_libs/src/emqx_plugin_libs.app.src +++ b/apps/emqx_plugin_libs/src/emqx_plugin_libs.app.src @@ -1,6 +1,6 @@ {application, emqx_plugin_libs, [{description, "EMQ X Plugin utility libs"}, - {vsn, "4.4.6"}, + {vsn, "4.4.7"}, {modules, []}, {applications, [kernel,stdlib]}, {env, []} diff --git a/apps/emqx_plugin_libs/src/emqx_plugin_libs.appup.src b/apps/emqx_plugin_libs/src/emqx_plugin_libs.appup.src index b1042d289..cbc9eaed3 100644 --- a/apps/emqx_plugin_libs/src/emqx_plugin_libs.appup.src +++ b/apps/emqx_plugin_libs/src/emqx_plugin_libs.appup.src @@ -1,14 +1,16 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [ - {<<"4\\.4\\.[3-5]">>, + [{"4.4.6", + [{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}]}, + {<<"4\\.4\\.[3-5]">>, [{load_module,emqx_trace,brutal_purge,soft_purge,[]}, - {load_module,emqx_trace_api,brutal_purge,soft_purge,[]}]}, - {"4.4.2",[ - {load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}, - {load_module,emqx_trace,brutal_purge,soft_purge,[]}, - {load_module,emqx_trace_api,brutal_purge,soft_purge,[]}]}, + {load_module,emqx_trace_api,brutal_purge,soft_purge,[]}, + {load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}]}, + {"4.4.2", + [{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}, + {load_module,emqx_trace,brutal_purge,soft_purge,[]}, + {load_module,emqx_trace_api,brutal_purge,soft_purge,[]}]}, {"4.4.1", [{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}, {load_module,emqx_trace,brutal_purge,soft_purge,[]}, @@ -20,17 +22,16 @@ {update,emqx_slow_subs,{advanced,["4.4.0"]}}, {load_module,emqx_slow_subs_api,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], - [ - {<<"4\\.4\\.[3-5]">>, + [{"4.4.6", + [{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}]}, + {<<"4\\.4\\.[3-5]">>, [{load_module,emqx_trace,brutal_purge,soft_purge,[]}, - {load_module,emqx_trace_api,brutal_purge,soft_purge,[]}]}, - {"4.4.3", - [{load_module,emqx_trace,brutal_purge,soft_purge,[]}, - {load_module,emqx_trace_api,brutal_purge,soft_purge,[]}]}, + {load_module,emqx_trace_api,brutal_purge,soft_purge,[]}, + {load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}]}, {"4.4.2", - [{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}, - {load_module,emqx_trace,brutal_purge,soft_purge,[]}, - {load_module,emqx_trace_api,brutal_purge,soft_purge,[]}]}, + [{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}, + {load_module,emqx_trace,brutal_purge,soft_purge,[]}, + {load_module,emqx_trace_api,brutal_purge,soft_purge,[]}]}, {"4.4.1", [{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}, {load_module,emqx_trace,brutal_purge,soft_purge,[]}, diff --git a/apps/emqx_web_hook/src/emqx_web_hook.app.src b/apps/emqx_web_hook/src/emqx_web_hook.app.src index 34050490b..b3ac93ef2 100644 --- a/apps/emqx_web_hook/src/emqx_web_hook.app.src +++ b/apps/emqx_web_hook/src/emqx_web_hook.app.src @@ -1,6 +1,6 @@ {application, emqx_web_hook, [{description, "EMQ X WebHook Plugin"}, - {vsn, "4.3.16"}, % strict semver, bump manually! + {vsn, "4.3.17"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_web_hook_sup]}, {applications, [kernel,stdlib,ehttpc]}, diff --git a/apps/emqx_web_hook/src/emqx_web_hook.appup.src b/apps/emqx_web_hook/src/emqx_web_hook.appup.src index b66a1eb96..b9ed1f687 100644 --- a/apps/emqx_web_hook/src/emqx_web_hook.appup.src +++ b/apps/emqx_web_hook/src/emqx_web_hook.appup.src @@ -1,7 +1,9 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.3.15", + [{"4.3.16", + [{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, + {"4.3.15", [{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]}, {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, {"4.3.14", @@ -32,7 +34,9 @@ [{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]}, {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], - [{"4.3.15", + [{"4.3.16", + [{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, + {"4.3.15", [{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]}, {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, {"4.3.14", diff --git a/changes/v4.4.15-en.md b/changes/v4.4.15-en.md index 881e73ea6..e97cdf586 100644 --- a/changes/v4.4.15-en.md +++ b/changes/v4.4.15-en.md @@ -51,3 +51,5 @@ - fix the `{badarg,[{ets,lookup,[gproc,{shared, ...` error logs during shutdown [#9919](https://github.com/emqx/emqx/pull/9919). - Fix crash when updating a client's keepalive via the HTTP API if it connects with keepalive disabled [#9933](https://github.com/emqx/emqx/pull/9933). + +- Delete the files directory when `resources` were deleted to avoid files leaking [#10039](https://github.com/emqx/emqx/pull/10039). diff --git a/changes/v4.4.15-zh.md b/changes/v4.4.15-zh.md index 73c681706..20c2645b6 100644 --- a/changes/v4.4.15-zh.md +++ b/changes/v4.4.15-zh.md @@ -52,3 +52,5 @@ - 修复停止 EMQX 的时候,日志出现 `{badarg,[{ets,lookup,[gproc,{shared, ...` 错误的问题 [#9919](https://github.com/emqx/emqx/pull/9919)。 - 修复当客户端连接禁用 keepalive 时, 通过 HTTP API 更新其 keepalive 会崩溃的问题 [#9933](https://github.com/emqx/emqx/pull/9933)。 + +- 在 `资源` 删除时清理其文件目录以防止文件泄露 [#10039](https://github.com/emqx/emqx/pull/10039)。 From b03557082fea269f3606ec5d78bab9d2270b7d2e Mon Sep 17 00:00:00 2001 From: Ivan Dyachkov Date: Tue, 28 Feb 2023 13:28:27 +0100 Subject: [PATCH 09/34] ci: use latest version of docker compose --- .github/workflows/run_automate_tests.yaml | 8 ++++---- .github/workflows/run_cts_tests.yaml | 18 +++++++++--------- .github/workflows/run_test_cases.yaml | 4 ++-- deploy/docker/README.md | 2 +- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/run_automate_tests.yaml b/.github/workflows/run_automate_tests.yaml index 6168089f9..8b6e33223 100644 --- a/.github/workflows/run_automate_tests.yaml +++ b/.github/workflows/run_automate_tests.yaml @@ -79,7 +79,7 @@ jobs: TARGET: emqx/${{ needs.build.outputs.imgname }} EMQX_TAG: ${{ needs.build.outputs.version }} run: | - docker-compose \ + docker compose \ -f .ci/docker-compose-file/docker-compose-emqx-cluster.yaml \ up -d --build - uses: actions/checkout@v3 @@ -180,7 +180,7 @@ jobs: EMQX_TAG: ${{ needs.build.outputs.version }} MYSQL_TAG: ${{ matrix.mysql_tag }} run: | - docker-compose \ + docker compose \ -f .ci/docker-compose-file/docker-compose-emqx-cluster.yaml \ -f .ci/docker-compose-file/docker-compose-mysql-tls.yaml \ up -d --build @@ -287,7 +287,7 @@ jobs: EMQX_TAG: ${{ needs.build.outputs.version }} PGSQL_TAG: ${{ matrix.pgsql_tag }} run: | - docker-compose \ + docker compose \ -f .ci/docker-compose-file/docker-compose-emqx-broker-cluster.yaml \ -f .ci/docker-compose-file/docker-compose-pgsql-tls.yaml \ up -d --build @@ -383,7 +383,7 @@ jobs: EMQX_TAG: ${{ needs.build.outputs.version }} MYSQL_TAG: 8 run: | - docker-compose \ + docker compose \ -f .ci/docker-compose-file/docker-compose-emqx-broker-cluster.yaml \ -f .ci/docker-compose-file/docker-compose-mysql-tcp.yaml \ -f .ci/docker-compose-file/docker-compose-enterprise-tomcat-tcp.yaml \ diff --git a/.github/workflows/run_cts_tests.yaml b/.github/workflows/run_cts_tests.yaml index cd204c37e..ed5ab7603 100644 --- a/.github/workflows/run_cts_tests.yaml +++ b/.github/workflows/run_cts_tests.yaml @@ -33,7 +33,7 @@ jobs: env: LDAP_TAG: ${{ matrix.ldap_tag }} run: | - docker-compose \ + docker compose \ -f .ci/docker-compose-file/docker-compose-ldap-tcp.yaml \ -f .ci/docker-compose-file/docker-compose.yaml \ up -d --build @@ -88,9 +88,9 @@ jobs: run: | docker rm -f $(docker ps -qa) || true docker network rm $(docker network ls -q) || true - - name: docker-compose up + - name: docker compose up run: | - docker-compose \ + docker compose \ -f .ci/docker-compose-file/docker-compose-toxiproxy.yaml \ -f .ci/docker-compose-file/docker-compose-mongo-${{ matrix.connect_type }}.yaml \ -f .ci/docker-compose-file/docker-compose.yaml \ @@ -164,10 +164,10 @@ jobs: run: | docker rm -f $(docker ps -qa) || true docker network rm $(docker network ls -q) || true - - name: docker-compose up + - name: docker compose up timeout-minutes: 5 run: | - docker-compose \ + docker compose \ -f .ci/docker-compose-file/docker-compose-mysql-${{ matrix.connect_type }}.yaml \ -f .ci/docker-compose-file/docker-compose.yaml \ up -d --build @@ -254,9 +254,9 @@ jobs: run: | docker rm -f $(docker ps -qa) || true docker network rm $(docker network ls -q) || true - - name: docker-compose up + - name: docker compose up run: | - docker-compose \ + docker compose \ -f .ci/docker-compose-file/docker-compose-pgsql-${{ matrix.connect_type }}.yaml \ -f .ci/docker-compose-file/docker-compose.yaml \ up -d --build @@ -339,9 +339,9 @@ jobs: run: | docker rm -f $(docker ps -qa) || true docker network rm $(docker network ls -q) || true - - name: docker-compose up + - name: docker compose up run: | - docker-compose \ + docker compose \ -f .ci/docker-compose-file/docker-compose-redis-${{ matrix.node_type }}-${{ matrix.connect_type }}.yaml \ -f .ci/docker-compose-file/docker-compose.yaml \ up -d --build diff --git a/.github/workflows/run_test_cases.yaml b/.github/workflows/run_test_cases.yaml index 38cd2f9bb..9a0ea738d 100644 --- a/.github/workflows/run_test_cases.yaml +++ b/.github/workflows/run_test_cases.yaml @@ -201,7 +201,7 @@ jobs: if [[ ${{ matrix.app_name }} == *ldap ]]; then docker_compose_files="${docker_compose_files} -f .ci/docker-compose-file/docker-compose-ldap-tcp.yaml" fi - docker-compose $docker_compose_files up -d --build + docker compose $docker_compose_files up -d --build if [ -f EMQX_ENTERPRISE ]; then docker exec -i erlang bash -c "echo \"https://ci%40emqx.io:${{ secrets.CI_GIT_TOKEN }}@github.com\" > /root/.git-credentials && git config --global credential.helper store" fi @@ -211,7 +211,7 @@ jobs: docker ps -a --filter name=client echo "waiting for docker ${client} to exit" if ! timeout 60 docker wait "${client}"; then - docker-compose $docker_compose_files logs | tee docker-compose.log + docker compose $docker_compose_files logs | tee docker-compose.log exit 1 fi done diff --git a/deploy/docker/README.md b/deploy/docker/README.md index 35eb68e82..85e7715ad 100644 --- a/deploy/docker/README.md +++ b/deploy/docker/README.md @@ -243,7 +243,7 @@ Let's create a static node list cluster from docker-compose. + Start the docker-compose cluster ```bash - docker-compose -p my_emqx up -d + docker compose -p my_emqx up -d ``` + View cluster From c2414fcf0cd5f5a0bcb33128aa80674d77c603f4 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Tue, 28 Feb 2023 22:23:38 +0800 Subject: [PATCH 10/34] chore: update dashboard to v4.4.10 --- scripts/get-dashboard.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/get-dashboard.sh b/scripts/get-dashboard.sh index ba7205de5..b194074bf 100755 --- a/scripts/get-dashboard.sh +++ b/scripts/get-dashboard.sh @@ -9,12 +9,12 @@ PKG_VSN="${PKG_VSN:-$(./pkg-vsn.sh)}" case "${PKG_VSN}" in 4.3*) EMQX_CE_DASHBOARD_VERSION='v4.3.12' - EMQX_EE_DASHBOARD_VERSION='v4.3.29' + EMQX_EE_DASHBOARD_VERSION='v4.3.30' ;; 4.4*) # keep the above 4.3 untouched, otherwise conflicts! - EMQX_CE_DASHBOARD_VERSION='v4.4.9' - EMQX_EE_DASHBOARD_VERSION='v4.4.21' + EMQX_CE_DASHBOARD_VERSION='v4.4.10' + EMQX_EE_DASHBOARD_VERSION='v4.4.22' ;; *) echo "Unsupported version $PKG_VSN" >&2 From cee6786c3d0e41732ebd77650d917f8db5b66f96 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Tue, 28 Feb 2023 22:24:26 +0800 Subject: [PATCH 11/34] chore: release v4.4.15-alpha.3 --- 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 1c2aef60e..666b269bc 100644 --- a/include/emqx_release.hrl +++ b/include/emqx_release.hrl @@ -29,7 +29,7 @@ -ifndef(EMQX_ENTERPRISE). --define(EMQX_RELEASE, {opensource, "4.4.15-alpha.2"}). +-define(EMQX_RELEASE, {opensource, "4.4.15-alpha.3"}). -else. From 87994fc23f02a8fb6466b236a4eb2ca08e2b682b Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Thu, 2 Mar 2023 16:06:08 +0800 Subject: [PATCH 12/34] fix: update change logs --- changes/v4.4.15-zh.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/changes/v4.4.15-zh.md b/changes/v4.4.15-zh.md index 20c2645b6..bc8da5f6c 100644 --- a/changes/v4.4.15-zh.md +++ b/changes/v4.4.15-zh.md @@ -2,8 +2,6 @@ ## 增强 -## 修复 - - MongoDB 库已升级至支持 MongoDB 5.1 及以上版本[#9707](https://github.com/emqx/emqx/pull/9707)。 - 现在 Dashboard 支持 HAProxy 的 Proxy Protocol 了 [9803](https://github.com/emqx/emqx/pull/9803)。 @@ -20,7 +18,7 @@ - 为认证和授权添加了更多调试日志 [#9943](https://github.com/emqx/emqx/pull/9943)。 -- 将统计数据 `live_connections.count` 和 `live_connections.max` 公开给 Prometheus [#9929](https://github.com/emqx/emqx/pull/9929). +- 将统计数据 `live_connections.count` 和 `live_connections.max` 公开给 Prometheus [#9929](https://github.com/emqx/emqx/pull/9929)。 ## 修复 From 230f2ee542073ab11f2f42b494449b03482b0bcc Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Fri, 3 Mar 2023 10:06:42 +0800 Subject: [PATCH 13/34] chore: release v4.4.15 --- 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 666b269bc..847c45271 100644 --- a/include/emqx_release.hrl +++ b/include/emqx_release.hrl @@ -29,7 +29,7 @@ -ifndef(EMQX_ENTERPRISE). --define(EMQX_RELEASE, {opensource, "4.4.15-alpha.3"}). +-define(EMQX_RELEASE, {opensource, "4.4.15"}). -else. From 8ecdc7292071036f179d5ebe4951b8c91784080b Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Fri, 3 Mar 2023 13:34:28 +0800 Subject: [PATCH 14/34] fix: change timeout of gen_server:calls for emqx_telemetry to infinity --- .../emqx_telemetry/src/emqx_telemetry.app.src | 2 +- .../src/emqx_telemetry.appup.src | 6 ++---- lib-ce/emqx_telemetry/src/emqx_telemetry.erl | 21 ++++++++++++------- .../test/emqx_telemetry_SUITE.erl | 4 ++-- 4 files changed, 18 insertions(+), 15 deletions(-) diff --git a/lib-ce/emqx_telemetry/src/emqx_telemetry.app.src b/lib-ce/emqx_telemetry/src/emqx_telemetry.app.src index 52bfe7b10..27852ba7b 100644 --- a/lib-ce/emqx_telemetry/src/emqx_telemetry.app.src +++ b/lib-ce/emqx_telemetry/src/emqx_telemetry.app.src @@ -1,6 +1,6 @@ {application, emqx_telemetry, [{description, "EMQ X Telemetry"}, - {vsn, "4.3.4"}, % strict semver, bump manually! + {vsn, "4.3.5"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_telemetry_sup]}, {applications, [kernel,stdlib]}, diff --git a/lib-ce/emqx_telemetry/src/emqx_telemetry.appup.src b/lib-ce/emqx_telemetry/src/emqx_telemetry.appup.src index 3d079e839..3e5d0bcdf 100644 --- a/lib-ce/emqx_telemetry/src/emqx_telemetry.appup.src +++ b/lib-ce/emqx_telemetry/src/emqx_telemetry.appup.src @@ -1,11 +1,9 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.3.3",[{load_module,emqx_telemetry,brutal_purge,soft_purge,[]}]}, - {<<"4\\.3\\.[0-2]">>, + [{<<"4\\.3\\.[0-4]">>, [{load_module,emqx_telemetry,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], - [{"4.3.3",[{load_module,emqx_telemetry,brutal_purge,soft_purge,[]}]}, - {<<"4\\.3\\.[0-2]">>, + [{<<"4\\.3\\.[0-4]">>, [{load_module,emqx_telemetry,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}]}. diff --git a/lib-ce/emqx_telemetry/src/emqx_telemetry.erl b/lib-ce/emqx_telemetry/src/emqx_telemetry.erl index 9935d5005..aa8acaab7 100644 --- a/lib-ce/emqx_telemetry/src/emqx_telemetry.erl +++ b/lib-ce/emqx_telemetry/src/emqx_telemetry.erl @@ -75,7 +75,7 @@ enabled :: undefined | boolean(), - url :: string(), + url :: undefined | string(), report_interval :: undefined | non_neg_integer(), @@ -90,6 +90,8 @@ -define(TELEMETRY, emqx_telemetry). +-define(HTTP_TIMEOUT, 10). + %%-------------------------------------------------------------------- %% Mnesia bootstrap %%-------------------------------------------------------------------- @@ -115,19 +117,19 @@ stop() -> gen_server:stop(?MODULE). enable() -> - gen_server:call(?MODULE, enable). + gen_server:call(?MODULE, enable, infinity). disable() -> - gen_server:call(?MODULE, disable). + gen_server:call(?MODULE, disable, infinity). is_enabled() -> - gen_server:call(?MODULE, is_enabled). + gen_server:call(?MODULE, is_enabled, infinity). get_uuid() -> - gen_server:call(?MODULE, get_uuid). + gen_server:call(?MODULE, get_uuid, infinity). get_telemetry() -> - gen_server:call(?MODULE, get_telemetry). + gen_server:call(?MODULE, get_telemetry, infinity). %%-------------------------------------------------------------------- %% gen_server callbacks @@ -353,15 +355,18 @@ report_telemetry(State = #state{url = URL}) -> Data = get_telemetry(State), case emqx_json:safe_encode(Data) of {ok, Bin} -> - httpc_request(post, URL, [], Bin), + _ = httpc_request(post, URL, [], Bin), ?tp(debug, telemetry_data_reported, #{}); {error, Reason} -> %% debug? why? ?tp(debug, telemetry_data_encode_error, #{data => Data, reason => Reason}) end. +%% we might set url = undefined in testcase +httpc_request(_, undefined, _, _) -> + ignore; httpc_request(Method, URL, Headers, Body) -> - HTTPOptions = [{timeout, timer:seconds(10)}, {ssl, [{verify, verify_none}]}], + HTTPOptions = [{timeout, timer:seconds(?HTTP_TIMEOUT)}, {ssl, [{verify, verify_none}]}], Options = [], httpc:request(Method, {URL, Headers, "application/json", Body}, HTTPOptions, Options). diff --git a/lib-ce/emqx_telemetry/test/emqx_telemetry_SUITE.erl b/lib-ce/emqx_telemetry/test/emqx_telemetry_SUITE.erl index ec9a764ff..d018ad3e9 100644 --- a/lib-ce/emqx_telemetry/test/emqx_telemetry_SUITE.erl +++ b/lib-ce/emqx_telemetry/test/emqx_telemetry_SUITE.erl @@ -42,7 +42,7 @@ t_uuid(_) -> {ok, UUID2} = emqx_telemetry:get_uuid(), emqx_telemetry:stop(), emqx_telemetry:start_link([{enabled, true}, - {url, "https://telemetry.emqx.io/api/telemetry"}, + {url, undefined}, {report_interval, 7 * 24 * 60 * 60}]), {ok, UUID3} = emqx_telemetry:get_uuid(), ?assertEqual(UUID2, UUID3). @@ -80,7 +80,7 @@ t_send_after_enable(_) -> ok = snabbkaffe:start_trace(), try ok = emqx_telemetry:enable(), - ?assertMatch({ok, _}, ?block_until(#{?snk_kind := telemetry_data_reported}, 2000, 100)) + ?assertMatch({ok, _}, ?block_until(#{?snk_kind := telemetry_data_reported}, 15000, 100)) after ok = snabbkaffe:stop() end. From c06984d847f2cb77f58173b0b3f052adff2034e7 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Wed, 8 Mar 2023 14:31:54 +0800 Subject: [PATCH 15/34] fix: avoid replacing newlines with commas in log msg --- src/emqx_packet.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/emqx_packet.erl b/src/emqx_packet.erl index d91ac6f44..293d32121 100644 --- a/src/emqx_packet.erl +++ b/src/emqx_packet.erl @@ -438,7 +438,7 @@ format_variable(undefined, _) -> format_variable(Variable, undefined) -> format_variable(Variable); format_variable(Variable, Payload) -> - [format_variable(Variable), ", Payload=", Payload]. + [format_variable(Variable), io_lib:format(", Payload=~0p", [Payload])]. format_variable(#mqtt_packet_connect{ proto_ver = ProtoVer, From 53e04fc9502a7c0cb9b2a415245eee33c3806858 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Wed, 8 Mar 2023 14:40:38 +0800 Subject: [PATCH 16/34] chore: update the emqx.appup.src --- changes/v4.4.16-en.md | 5 +++++ changes/v4.4.16-zh.md | 5 +++++ src/emqx.app.src | 2 +- src/emqx.appup.src | 12 ++++++++++-- 4 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 changes/v4.4.16-en.md create mode 100644 changes/v4.4.16-zh.md diff --git a/changes/v4.4.16-en.md b/changes/v4.4.16-en.md new file mode 100644 index 000000000..089ae46b3 --- /dev/null +++ b/changes/v4.4.16-en.md @@ -0,0 +1,5 @@ +# v4.4.16 + +## Enhancements + +## Bug fixes diff --git a/changes/v4.4.16-zh.md b/changes/v4.4.16-zh.md new file mode 100644 index 000000000..b111846d9 --- /dev/null +++ b/changes/v4.4.16-zh.md @@ -0,0 +1,5 @@ +# v4.4.16 + +## 增强 + +## 修复 diff --git a/src/emqx.app.src b/src/emqx.app.src index 4c082b971..5c59f8957 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.4.15"}, % strict semver, bump manually! + {vsn, "4.4.16"}, % strict semver, bump manually! {modules, []}, {registered, []}, {applications, [ kernel diff --git a/src/emqx.appup.src b/src/emqx.appup.src index 3711c84d5..002878638 100644 --- a/src/emqx.appup.src +++ b/src/emqx.appup.src @@ -1,7 +1,11 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.4.14", + [{"4.4.15", + [{load_module,emqx_packet,brutal_purge,soft_purge,[]}, + {load_module,emqx_relup,brutal_purge,soft_purge,[]}, + {load_module,emqx_app,brutal_purge,soft_purge,[]}]}, + {"4.4.14", [{load_module,emqx_vm,brutal_purge,soft_purge,[]}, {load_module,emqx_keepalive,brutal_purge,soft_purge,[]}, {load_module,emqx_broker,brutal_purge,soft_purge,[]}, @@ -494,7 +498,11 @@ {apply,{application,set_env, [gen_rpc,insecure_auth_fallback_allowed,true]}}]}, {<<".*">>,[]}], - [{"4.4.14", + [{"4.4.15", + [{load_module,emqx_packet,brutal_purge,soft_purge,[]}, + {load_module,emqx_relup,brutal_purge,soft_purge,[]}, + {load_module,emqx_app,brutal_purge,soft_purge,[]}]}, + {"4.4.14", [{load_module,emqx_vm,brutal_purge,soft_purge,[]}, {load_module,emqx_keepalive,brutal_purge,soft_purge,[]}, {load_module,emqx_broker,brutal_purge,soft_purge,[]}, From 42288f6998ac453a5a49fdfd1932cdd37f763bf1 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Wed, 8 Mar 2023 14:56:01 +0800 Subject: [PATCH 17/34] chore: bump version for emqx_dashboard --- lib-ce/emqx_dashboard/src/emqx_dashboard.app.src | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib-ce/emqx_dashboard/src/emqx_dashboard.app.src b/lib-ce/emqx_dashboard/src/emqx_dashboard.app.src index a870ede61..53a7e3a77 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, "EMQX Web Dashboard"}, - {vsn, "4.4.14"}, % strict semver, bump manually! + {vsn, "4.4.15"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_dashboard_sup]}, {applications, [kernel,stdlib,mnesia,minirest]}, From 2c22b7d8e9b1494a0c28fa2f6b6c486f29ee83cd Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Wed, 8 Mar 2023 16:00:05 +0800 Subject: [PATCH 18/34] chore: update the change logs --- changes/v4.4.16-en.md | 10 ++++++++++ changes/v4.4.16-zh.md | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/changes/v4.4.16-en.md b/changes/v4.4.16-en.md index 089ae46b3..cb727c09c 100644 --- a/changes/v4.4.16-en.md +++ b/changes/v4.4.16-en.md @@ -3,3 +3,13 @@ ## Enhancements ## Bug fixes + +- Avoid changing the payload of MQTT messages when printing debug logs [#10091](https://github.com/emqx/emqx/pull/10091). + Before this fix, if EMQX receives a message with Payload "e\ne\nc\nc\n2\n\n\n", the log message will be as follows: + ``` + 2023-03-08T13:28:04.320622+08:00 [debug] mqttx_e34bd582@127.0.0.1:54020 [MQTT] RECV PUBLISH(Q1, R0, D0, Topic=t/1, PacketId=39467, Payload=e, e, c, c, 2, , , ) + ``` + This is the corresponding log message now: + ``` + 2023-03-08T14:26:50.935575+08:00 [debug] mqttx_e34bd582@127.0.0.1:54020 [MQTT] RECV PUBLISH(Q1, R0, D0, Topic=t/1, PacketId=39467, Payload=<<"e\ne\nc\nc\n2\n\n\n">>) + ``` diff --git a/changes/v4.4.16-zh.md b/changes/v4.4.16-zh.md index b111846d9..a9dd5e93b 100644 --- a/changes/v4.4.16-zh.md +++ b/changes/v4.4.16-zh.md @@ -3,3 +3,13 @@ ## 增强 ## 修复 + +- 避免打印 debug 日志的时候改动 MQTT 消息的 Payload 的内容 [#10091](https://github.com/emqx/emqx/pull/10091) + 在这个修复之前,如果 EMQX 收到一个 Payload 为 "e\ne\nc\nc\n2\n\n\n" 的消息,日志打印会变成这样: + ``` + 2023-03-08T13:28:04.320622+08:00 [debug] mqttx_e34bd582@127.0.0.1:54020 [MQTT] RECV PUBLISH(Q1, R0, D0, Topic=t/1, PacketId=39467, Payload=e, e, c, c, 2, , , ) + ``` + 这是此修复之后的样子: + ``` + 2023-03-08T14:26:50.935575+08:00 [debug] mqttx_e34bd582@127.0.0.1:54020 [MQTT] RECV PUBLISH(Q1, R0, D0, Topic=t/1, PacketId=39467, Payload=<<"e\ne\nc\nc\n2\n\n\n">>) + ``` From 753f70bab852cac179b79afaf058e882a1262445 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Thu, 9 Mar 2023 01:58:40 +0800 Subject: [PATCH 19/34] chore: final EMQ X -> EMQX --- .ci/fvt_tests/relup.lux | 4 ++-- CHANGES-4.4.md | 6 +++--- apps/emqx_auth_http/src/emqx_auth_http.app.src | 4 ++-- apps/emqx_auth_jwt/src/emqx_auth_jwt.app.src | 2 +- apps/emqx_auth_ldap/src/emqx_auth_ldap.app.src | 4 ++-- apps/emqx_auth_mnesia/src/emqx_auth_mnesia.app.src | 4 ++-- apps/emqx_auth_mongo/src/emqx_auth_mongo.app.src | 4 ++-- apps/emqx_auth_mysql/src/emqx_auth_mysql.app.src | 4 ++-- apps/emqx_auth_pgsql/src/emqx_auth_pgsql.app.src | 4 ++-- apps/emqx_auth_redis/src/emqx_auth_redis.app.src | 4 ++-- apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.app.src | 4 ++-- apps/emqx_coap/src/emqx_coap.app.src | 4 ++-- apps/emqx_exhook/src/emqx_exhook.app.src | 4 ++-- apps/emqx_exproto/src/emqx_exproto.app.src | 4 ++-- apps/emqx_lua_hook/src/emqx_lua_hook.app.src | 4 ++-- apps/emqx_lwm2m/src/emqx_lwm2m.app.src | 2 +- apps/emqx_management/src/emqx_management.app.src | 4 ++-- apps/emqx_plugin_libs/src/emqx_plugin_libs.app.src | 2 +- apps/emqx_prometheus/src/emqx_prometheus.app.src | 4 ++-- apps/emqx_psk_file/src/emqx_psk_file.app.src | 2 +- apps/emqx_recon/src/emqx_recon.app.src | 4 ++-- apps/emqx_retainer/src/emqx_retainer.app.src | 4 ++-- apps/emqx_rule_engine/src/emqx_rule_engine.app.src | 4 ++-- apps/emqx_sasl/src/emqx_sasl.app.src | 4 ++-- apps/emqx_sn/src/emqx_sn.app.src | 4 ++-- apps/emqx_stomp/src/emqx_stomp.app.src | 4 ++-- apps/emqx_web_hook/src/emqx_web_hook.app.src | 4 ++-- build | 2 +- lib-ce/emqx_dashboard/src/emqx_dashboard.app.src | 2 +- lib-ce/emqx_modules/src/emqx_modules.app.src | 2 +- lib-ce/emqx_telemetry/src/emqx_telemetry.app.src | 4 ++-- rebar.config.erl | 6 +++--- scripts/buildx.sh | 6 +++--- src/emqx.app.src | 4 ++-- src/emqx.appup.src | 6 ++++-- src/emqx.erl | 2 +- .../emqx_mini_plugin/src/emqx_mini_plugin.app.src | 2 +- 37 files changed, 70 insertions(+), 68 deletions(-) diff --git a/.ci/fvt_tests/relup.lux b/.ci/fvt_tests/relup.lux index d7ed957d9..b6491e9fa 100644 --- a/.ci/fvt_tests/relup.lux +++ b/.ci/fvt_tests/relup.lux @@ -29,7 +29,7 @@ !export EMQX_LOG__LEVEL=debug !./bin/emqx start - ?EMQ X .* is started successfully! + ?EMQX .* is started successfully! ?SH-PROMPT [shell emqx2] @@ -43,7 +43,7 @@ !export EMQX_LOG__LEVEL=debug !./bin/emqx start - ?EMQ X .* is started successfully! + ?EMQX .* is started successfully! ?SH-PROMPT !./bin/emqx_ctl cluster join emqx@127.0.0.1 diff --git a/CHANGES-4.4.md b/CHANGES-4.4.md index 47d37d0a3..11c3c83da 100644 --- a/CHANGES-4.4.md +++ b/CHANGES-4.4.md @@ -235,8 +235,8 @@ This patch release is only to fix windows build which failed on v4.4.0. ### Important changes -- **For Debian/Ubuntu users**, Debian/Ubuntu package (deb) installed EMQ X is now started from systemd. - This is to use systemd's supervision functionality to ensure that EMQ X service restarts after a crash. +- **For Debian/Ubuntu users**, Debian/Ubuntu package (deb) installed EMQX is now started from systemd. + This is to use systemd's supervision functionality to ensure that EMQX service restarts after a crash. The package installation service upgrade from init.d to systemd has been verified, it is still recommended that you verify and confirm again before deploying to the production environment, at least to ensure that systemd is available in your system @@ -280,7 +280,7 @@ This patch release is only to fix windows build which failed on v4.4.0. - Improve the error log content when the Proxy Protocol message is received without `proxy_protocol` configured. - Add additional message attributes to the message reported by the gateway. - Messages from gateways such as CoAP, LwM2M, Stomp, ExProto, etc., when converted to EMQ X messages, + Messages from gateways such as CoAP, LwM2M, Stomp, ExProto, etc., when converted to EMQX messages, add fields such as protocol name, protocol version, user name, client IP, etc., which can be used for multi-language hook extension (ExHook) diff --git a/apps/emqx_auth_http/src/emqx_auth_http.app.src b/apps/emqx_auth_http/src/emqx_auth_http.app.src index a870575ce..c34a21107 100644 --- a/apps/emqx_auth_http/src/emqx_auth_http.app.src +++ b/apps/emqx_auth_http/src/emqx_auth_http.app.src @@ -1,5 +1,5 @@ {application, emqx_auth_http, - [{description, "EMQ X Authentication/ACL with HTTP API"}, + [{description, "EMQX Authentication/ACL with HTTP API"}, {vsn, "4.3.11"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_auth_http_sup]}, @@ -7,7 +7,7 @@ {mod, {emqx_auth_http_app, []}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-auth-http"} ]} 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 ab6dd53e7..1a71f6d73 100644 --- a/apps/emqx_auth_jwt/src/emqx_auth_jwt.app.src +++ b/apps/emqx_auth_jwt/src/emqx_auth_jwt.app.src @@ -1,5 +1,5 @@ {application, emqx_auth_jwt, - [{description, "EMQ X Authentication with JWT"}, + [{description, "EMQX Authentication with JWT"}, {vsn, "4.4.9"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_auth_jwt_sup]}, diff --git a/apps/emqx_auth_ldap/src/emqx_auth_ldap.app.src b/apps/emqx_auth_ldap/src/emqx_auth_ldap.app.src index 4bee1aefa..3035fd6dc 100644 --- a/apps/emqx_auth_ldap/src/emqx_auth_ldap.app.src +++ b/apps/emqx_auth_ldap/src/emqx_auth_ldap.app.src @@ -1,5 +1,5 @@ {application, emqx_auth_ldap, - [{description, "EMQ X Authentication/ACL with LDAP"}, + [{description, "EMQX Authentication/ACL with LDAP"}, {vsn, "4.3.7"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_auth_ldap_sup]}, @@ -7,7 +7,7 @@ {mod, {emqx_auth_ldap_app,[]}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-auth-ldap"} ]} diff --git a/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.app.src b/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.app.src index c8298c146..1ff3127ee 100644 --- a/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.app.src +++ b/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.app.src @@ -1,5 +1,5 @@ {application, emqx_auth_mnesia, - [{description, "EMQ X Authentication with Mnesia"}, + [{description, "EMQX Authentication with Mnesia"}, {vsn, "4.3.11"}, % strict semver, bump manually {modules, []}, {registered, []}, @@ -7,7 +7,7 @@ {mod, {emqx_auth_mnesia_app,[]}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-auth-mnesia"} ]} diff --git a/apps/emqx_auth_mongo/src/emqx_auth_mongo.app.src b/apps/emqx_auth_mongo/src/emqx_auth_mongo.app.src index 0677f118b..274a40a16 100644 --- a/apps/emqx_auth_mongo/src/emqx_auth_mongo.app.src +++ b/apps/emqx_auth_mongo/src/emqx_auth_mongo.app.src @@ -1,5 +1,5 @@ {application, emqx_auth_mongo, - [{description, "EMQ X Authentication/ACL with MongoDB"}, + [{description, "EMQX Authentication/ACL with MongoDB"}, {vsn, "4.4.6"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_auth_mongo_sup]}, @@ -7,7 +7,7 @@ {mod, {emqx_auth_mongo_app,[]}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-auth-mongo"} ]} diff --git a/apps/emqx_auth_mysql/src/emqx_auth_mysql.app.src b/apps/emqx_auth_mysql/src/emqx_auth_mysql.app.src index abfa86c5f..8ab6e5262 100644 --- a/apps/emqx_auth_mysql/src/emqx_auth_mysql.app.src +++ b/apps/emqx_auth_mysql/src/emqx_auth_mysql.app.src @@ -1,5 +1,5 @@ {application, emqx_auth_mysql, - [{description, "EMQ X Authentication/ACL with MySQL"}, + [{description, "EMQX Authentication/ACL with MySQL"}, {vsn, "4.3.5"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_auth_mysql_sup]}, @@ -7,7 +7,7 @@ {mod, {emqx_auth_mysql_app,[]}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-auth-mysql"} ]} diff --git a/apps/emqx_auth_pgsql/src/emqx_auth_pgsql.app.src b/apps/emqx_auth_pgsql/src/emqx_auth_pgsql.app.src index 96a810d7c..90e81425e 100644 --- a/apps/emqx_auth_pgsql/src/emqx_auth_pgsql.app.src +++ b/apps/emqx_auth_pgsql/src/emqx_auth_pgsql.app.src @@ -1,5 +1,5 @@ {application, emqx_auth_pgsql, - [{description, "EMQ X Authentication/ACL with PostgreSQL"}, + [{description, "EMQX Authentication/ACL with PostgreSQL"}, {vsn, "4.4.5"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_auth_pgsql_sup]}, @@ -7,7 +7,7 @@ {mod, {emqx_auth_pgsql_app,[]}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-auth-pgsql"} ]} diff --git a/apps/emqx_auth_redis/src/emqx_auth_redis.app.src b/apps/emqx_auth_redis/src/emqx_auth_redis.app.src index 0fb0ecaff..591e03d28 100644 --- a/apps/emqx_auth_redis/src/emqx_auth_redis.app.src +++ b/apps/emqx_auth_redis/src/emqx_auth_redis.app.src @@ -1,5 +1,5 @@ {application, emqx_auth_redis, - [{description, "EMQ X Authentication/ACL with Redis"}, + [{description, "EMQX Authentication/ACL with Redis"}, {vsn, "4.3.5"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_auth_redis_sup]}, @@ -7,7 +7,7 @@ {mod, {emqx_auth_redis_app, []}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-auth-redis"} ]} diff --git a/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.app.src b/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.app.src index b58be5d2e..8d19e32fb 100644 --- a/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.app.src +++ b/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.app.src @@ -1,5 +1,5 @@ {application, emqx_bridge_mqtt, - [{description, "EMQ X Bridge to MQTT Broker"}, + [{description, "EMQX Bridge to MQTT Broker"}, {vsn, "4.3.8"}, % strict semver, bump manually! {modules, []}, {registered, []}, @@ -7,7 +7,7 @@ {mod, {emqx_bridge_mqtt_app, []}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-bridge-mqtt"} ]} diff --git a/apps/emqx_coap/src/emqx_coap.app.src b/apps/emqx_coap/src/emqx_coap.app.src index c0648d715..856255b23 100644 --- a/apps/emqx_coap/src/emqx_coap.app.src +++ b/apps/emqx_coap/src/emqx_coap.app.src @@ -1,5 +1,5 @@ {application, emqx_coap, - [{description, "EMQ X CoAP Gateway"}, + [{description, "EMQX CoAP Gateway"}, {vsn, "4.3.3"}, % strict semver, bump manually! {modules, []}, {registered, []}, @@ -7,7 +7,7 @@ {mod, {emqx_coap_app, []}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-coap"} ]} diff --git a/apps/emqx_exhook/src/emqx_exhook.app.src b/apps/emqx_exhook/src/emqx_exhook.app.src index 839d83b96..8bb6559d1 100644 --- a/apps/emqx_exhook/src/emqx_exhook.app.src +++ b/apps/emqx_exhook/src/emqx_exhook.app.src @@ -1,6 +1,6 @@ %% -*- mode: erlang -*- {application, emqx_exhook, - [{description, "EMQ X Extension for Hook"}, + [{description, "EMQX Extension for Hook"}, {vsn, "4.4.6"}, {modules, []}, {registered, []}, @@ -8,6 +8,6 @@ {applications, [kernel,stdlib,grpc]}, {env,[]}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}]} ]}. diff --git a/apps/emqx_exproto/src/emqx_exproto.app.src b/apps/emqx_exproto/src/emqx_exproto.app.src index ef4f7a8ff..898233c9a 100644 --- a/apps/emqx_exproto/src/emqx_exproto.app.src +++ b/apps/emqx_exproto/src/emqx_exproto.app.src @@ -1,5 +1,5 @@ {application, emqx_exproto, - [{description, "EMQ X Extension for Protocol"}, + [{description, "EMQX Extension for Protocol"}, {vsn, "4.3.15"}, %% 4.3.3 is used by ee {modules, []}, {registered, []}, @@ -7,6 +7,6 @@ {applications, [kernel,stdlib,grpc]}, {env,[]}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}]} ]}. diff --git a/apps/emqx_lua_hook/src/emqx_lua_hook.app.src b/apps/emqx_lua_hook/src/emqx_lua_hook.app.src index 550981b70..e9212029a 100644 --- a/apps/emqx_lua_hook/src/emqx_lua_hook.app.src +++ b/apps/emqx_lua_hook/src/emqx_lua_hook.app.src @@ -1,5 +1,5 @@ {application, emqx_lua_hook, - [{description, "EMQ X Lua Hooks"}, + [{description, "EMQX Lua Hooks"}, {vsn, "4.3.2"}, % strict semver, bump manually! {modules, []}, {registered, []}, @@ -7,7 +7,7 @@ {mod, {emqx_lua_hook_app,[]}}, {env,[]}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-lua-hook"} ]} diff --git a/apps/emqx_lwm2m/src/emqx_lwm2m.app.src b/apps/emqx_lwm2m/src/emqx_lwm2m.app.src index 6b0e6bd92..e62fd544e 100644 --- a/apps/emqx_lwm2m/src/emqx_lwm2m.app.src +++ b/apps/emqx_lwm2m/src/emqx_lwm2m.app.src @@ -1,5 +1,5 @@ {application,emqx_lwm2m, - [{description,"EMQ X LwM2M Gateway"}, + [{description,"EMQX LwM2M Gateway"}, {vsn, "4.3.8"}, % strict semver, bump manually! {modules,[]}, {registered,[emqx_lwm2m_sup]}, diff --git a/apps/emqx_management/src/emqx_management.app.src b/apps/emqx_management/src/emqx_management.app.src index b505e2c69..3b75d8587 100644 --- a/apps/emqx_management/src/emqx_management.app.src +++ b/apps/emqx_management/src/emqx_management.app.src @@ -1,5 +1,5 @@ {application, emqx_management, - [{description, "EMQ X Management API and CLI"}, + [{description, "EMQX Management API and CLI"}, {vsn, "4.4.13"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_management_sup]}, @@ -7,7 +7,7 @@ {mod, {emqx_mgmt_app,[]}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-management"} ]} diff --git a/apps/emqx_plugin_libs/src/emqx_plugin_libs.app.src b/apps/emqx_plugin_libs/src/emqx_plugin_libs.app.src index 39eb2f0fe..2fc942c4b 100644 --- a/apps/emqx_plugin_libs/src/emqx_plugin_libs.app.src +++ b/apps/emqx_plugin_libs/src/emqx_plugin_libs.app.src @@ -1,5 +1,5 @@ {application, emqx_plugin_libs, - [{description, "EMQ X Plugin utility libs"}, + [{description, "EMQX Plugin utility libs"}, {vsn, "4.4.7"}, {modules, []}, {applications, [kernel,stdlib]}, diff --git a/apps/emqx_prometheus/src/emqx_prometheus.app.src b/apps/emqx_prometheus/src/emqx_prometheus.app.src index 6e7d7400f..231e23e90 100644 --- a/apps/emqx_prometheus/src/emqx_prometheus.app.src +++ b/apps/emqx_prometheus/src/emqx_prometheus.app.src @@ -1,5 +1,5 @@ {application, emqx_prometheus, - [{description, "Prometheus for EMQ X"}, + [{description, "Prometheus for EMQX"}, {vsn, "4.3.2"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_prometheus_sup]}, @@ -7,7 +7,7 @@ {mod, {emqx_prometheus_app,[]}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-prometheus"} ]} diff --git a/apps/emqx_psk_file/src/emqx_psk_file.app.src b/apps/emqx_psk_file/src/emqx_psk_file.app.src index ef18c8b69..e87307d0c 100644 --- a/apps/emqx_psk_file/src/emqx_psk_file.app.src +++ b/apps/emqx_psk_file/src/emqx_psk_file.app.src @@ -7,7 +7,7 @@ {mod,{emqx_psk_file_app,[]}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-psk-file"} ]} diff --git a/apps/emqx_recon/src/emqx_recon.app.src b/apps/emqx_recon/src/emqx_recon.app.src index 061ed8e93..55b3e31bb 100644 --- a/apps/emqx_recon/src/emqx_recon.app.src +++ b/apps/emqx_recon/src/emqx_recon.app.src @@ -1,5 +1,5 @@ {application, emqx_recon, - [{description, "EMQ X Recon Plugin"}, + [{description, "EMQX Recon Plugin"}, {vsn, "4.3.0"}, % strict semver, bump manually! {modules, []}, {registered, []}, @@ -7,7 +7,7 @@ {mod, {emqx_recon,[]}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-recon"} ]} diff --git a/apps/emqx_retainer/src/emqx_retainer.app.src b/apps/emqx_retainer/src/emqx_retainer.app.src index 941038d73..76abc5935 100644 --- a/apps/emqx_retainer/src/emqx_retainer.app.src +++ b/apps/emqx_retainer/src/emqx_retainer.app.src @@ -1,5 +1,5 @@ {application, emqx_retainer, - [{description, "EMQ X Retainer"}, + [{description, "EMQX Retainer"}, {vsn, "4.4.4"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_retainer_sup]}, @@ -7,7 +7,7 @@ {mod, {emqx_retainer_app,[]}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-retainer"} ]} 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 af8276a86..0bed9cc70 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.app.src +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.app.src @@ -1,5 +1,5 @@ {application, emqx_rule_engine, - [{description, "EMQ X Rule Engine"}, + [{description, "EMQX Rule Engine"}, {vsn, "4.4.15"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_rule_engine_sup, emqx_rule_registry, emqx_rule_engine_jwt_sup]}, @@ -7,7 +7,7 @@ {mod, {emqx_rule_engine_app, []}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-rule-engine"} ]} diff --git a/apps/emqx_sasl/src/emqx_sasl.app.src b/apps/emqx_sasl/src/emqx_sasl.app.src index b079376d9..dbf1291f2 100644 --- a/apps/emqx_sasl/src/emqx_sasl.app.src +++ b/apps/emqx_sasl/src/emqx_sasl.app.src @@ -1,5 +1,5 @@ {application, emqx_sasl, - [{description, "EMQ X SASL"}, + [{description, "EMQX SASL"}, {vsn, "4.3.0"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_sasl_sup]}, @@ -7,7 +7,7 @@ {mod, {emqx_sasl_app,[]}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-sasl"} ]} diff --git a/apps/emqx_sn/src/emqx_sn.app.src b/apps/emqx_sn/src/emqx_sn.app.src index 46c2df084..2fa72acd8 100644 --- a/apps/emqx_sn/src/emqx_sn.app.src +++ b/apps/emqx_sn/src/emqx_sn.app.src @@ -1,5 +1,5 @@ {application, emqx_sn, - [{description, "EMQ X MQTT-SN Plugin"}, + [{description, "EMQX MQTT-SN Plugin"}, {vsn, "4.3.8"}, % strict semver, bump manually! {modules, []}, {registered, []}, @@ -7,7 +7,7 @@ {mod, {emqx_sn_app,[]}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-sn"} ]} diff --git a/apps/emqx_stomp/src/emqx_stomp.app.src b/apps/emqx_stomp/src/emqx_stomp.app.src index 13afb9e67..60c42221d 100644 --- a/apps/emqx_stomp/src/emqx_stomp.app.src +++ b/apps/emqx_stomp/src/emqx_stomp.app.src @@ -1,5 +1,5 @@ {application, emqx_stomp, - [{description, "EMQ X Stomp Protocol Plugin"}, + [{description, "EMQX Stomp Protocol Plugin"}, {vsn, "4.3.7"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_stomp_sup]}, @@ -7,7 +7,7 @@ {mod, {emqx_stomp,[]}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-stomp"} ]} diff --git a/apps/emqx_web_hook/src/emqx_web_hook.app.src b/apps/emqx_web_hook/src/emqx_web_hook.app.src index b3ac93ef2..43b9e060c 100644 --- a/apps/emqx_web_hook/src/emqx_web_hook.app.src +++ b/apps/emqx_web_hook/src/emqx_web_hook.app.src @@ -1,5 +1,5 @@ {application, emqx_web_hook, - [{description, "EMQ X WebHook Plugin"}, + [{description, "EMQX WebHook Plugin"}, {vsn, "4.3.17"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_web_hook_sup]}, @@ -7,7 +7,7 @@ {mod, {emqx_web_hook_app,[]}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-web-hook"} ]} diff --git a/build b/build index 59a237c46..febceafa2 100755 --- a/build +++ b/build @@ -304,7 +304,7 @@ make_docker() { ## This function accepts any base docker image, ## a emqx zip-image, and a image tag (for the image to be built), -## to build a docker image which runs EMQ X +## to build a docker image which runs EMQX ## ## Export below variables to quickly build an image ## diff --git a/lib-ce/emqx_dashboard/src/emqx_dashboard.app.src b/lib-ce/emqx_dashboard/src/emqx_dashboard.app.src index 53a7e3a77..ce59a046c 100644 --- a/lib-ce/emqx_dashboard/src/emqx_dashboard.app.src +++ b/lib-ce/emqx_dashboard/src/emqx_dashboard.app.src @@ -7,7 +7,7 @@ {mod, {emqx_dashboard_app,[]}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-dashboard"} ]} diff --git a/lib-ce/emqx_modules/src/emqx_modules.app.src b/lib-ce/emqx_modules/src/emqx_modules.app.src index a2694a5e6..cc05b7e00 100644 --- a/lib-ce/emqx_modules/src/emqx_modules.app.src +++ b/lib-ce/emqx_modules/src/emqx_modules.app.src @@ -1,5 +1,5 @@ {application, emqx_modules, - [{description, "EMQ X Module Management"}, + [{description, "EMQX Module Management"}, {vsn, "4.4.9"}, {modules, []}, {applications, [kernel,stdlib]}, diff --git a/lib-ce/emqx_telemetry/src/emqx_telemetry.app.src b/lib-ce/emqx_telemetry/src/emqx_telemetry.app.src index 27852ba7b..d88bc2742 100644 --- a/lib-ce/emqx_telemetry/src/emqx_telemetry.app.src +++ b/lib-ce/emqx_telemetry/src/emqx_telemetry.app.src @@ -1,5 +1,5 @@ {application, emqx_telemetry, - [{description, "EMQ X Telemetry"}, + [{description, "EMQX Telemetry"}, {vsn, "4.3.5"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_telemetry_sup]}, @@ -7,7 +7,7 @@ {mod, {emqx_telemetry_app,[]}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx-telemetry"} ]} diff --git a/rebar.config.erl b/rebar.config.erl index 9485bb38e..b3e4bf5bb 100644 --- a/rebar.config.erl +++ b/rebar.config.erl @@ -186,9 +186,9 @@ distro() -> _ -> false end. -emqx_description(cloud, true) -> "EMQ X Enterprise"; -emqx_description(cloud, false) -> "EMQ X Broker"; -emqx_description(edge, _) -> "EMQ X Edge". +emqx_description(cloud, true) -> "EMQX Enterprise"; +emqx_description(cloud, false) -> "EMQX Broker"; +emqx_description(edge, _) -> "EMQX Edge". overlay_vars(_RelType, PkgType, true) -> ee_overlay_vars(PkgType); diff --git a/scripts/buildx.sh b/scripts/buildx.sh index 5df4cc3fe..b1134b964 100755 --- a/scripts/buildx.sh +++ b/scripts/buildx.sh @@ -15,10 +15,10 @@ set -euo pipefail help() { echo echo "-h|--help: To display this usage information" - echo "--profile : EMQ X profile to build, e.g. emqx, emqx-edge" + echo "--profile : EMQX profile to build, e.g. emqx, emqx-edge" echo "--pkgtype zip|pkg: Specify which package to build, zip for .zip and pkg for .rpm or .deb" - echo "--arch amd64|arm64: Target arch to build the EMQ X package for" - echo "--src_dir : EMQ X source ode in this dir, default to PWD" + echo "--arch amd64|arm64: Target arch to build the EMQX package for" + echo "--src_dir : EMQX source ode in this dir, default to PWD" echo "--builder : Builder image to pull" echo " E.g. ghcr.io/emqx/emqx-builder/4.4-20:24.3.4.2-1-debian11" echo "--ssh: Pass ssh agent to the builder." diff --git a/src/emqx.app.src b/src/emqx.app.src index 5c59f8957..715d9d554 100644 --- a/src/emqx.app.src +++ b/src/emqx.app.src @@ -1,6 +1,6 @@ {application, emqx, [{id, "emqx"}, - {description, "EMQ X"}, + {description, "EMQX"}, %% Note: this version is not the same as the release version! This %% is simply the emqx `application' version, which is separate from %% the emqx `release' version, which in turn is comprised of several @@ -21,7 +21,7 @@ {mod, {emqx_app,[]}}, {env, []}, {licenses, ["Apache-2.0"]}, - {maintainers, ["EMQ X Team "]}, + {maintainers, ["EMQX Team "]}, {links, [{"Homepage", "https://emqx.io/"}, {"Github", "https://github.com/emqx/emqx"} ]} diff --git a/src/emqx.appup.src b/src/emqx.appup.src index 002878638..8dc543d4d 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.4.15", - [{load_module,emqx_packet,brutal_purge,soft_purge,[]}, + [{load_module,emqx,brutal_purge,soft_purge,[]}, + {load_module,emqx_packet,brutal_purge,soft_purge,[]}, {load_module,emqx_relup,brutal_purge,soft_purge,[]}, {load_module,emqx_app,brutal_purge,soft_purge,[]}]}, {"4.4.14", @@ -499,7 +500,8 @@ [gen_rpc,insecure_auth_fallback_allowed,true]}}]}, {<<".*">>,[]}], [{"4.4.15", - [{load_module,emqx_packet,brutal_purge,soft_purge,[]}, + [{load_module,emqx,brutal_purge,soft_purge,[]}, + {load_module,emqx_packet,brutal_purge,soft_purge,[]}, {load_module,emqx_relup,brutal_purge,soft_purge,[]}, {load_module,emqx_app,brutal_purge,soft_purge,[]}]}, {"4.4.14", diff --git a/src/emqx.erl b/src/emqx.erl index 85d154023..2d6894374 100644 --- a/src/emqx.erl +++ b/src/emqx.erl @@ -20,7 +20,7 @@ -include("logger.hrl"). -include("types.hrl"). --logger_header("[EMQ X]"). +-logger_header("[EMQX]"). %% Start/Stop the application -export([ start/0 diff --git a/test/emqx_plugins_SUITE_data/emqx_mini_plugin/src/emqx_mini_plugin.app.src b/test/emqx_plugins_SUITE_data/emqx_mini_plugin/src/emqx_mini_plugin.app.src index 413b4e1fd..28a7ae5cb 100644 --- a/test/emqx_plugins_SUITE_data/emqx_mini_plugin/src/emqx_mini_plugin.app.src +++ b/test/emqx_plugins_SUITE_data/emqx_mini_plugin/src/emqx_mini_plugin.app.src @@ -1,5 +1,5 @@ {application, emqx_mini_plugin, - [{description, "An EMQ X plugin for testcase"}, + [{description, "An EMQX plugin for testcase"}, {vsn, "0.1"}, {modules, []}, {registered, []}, From 12748ce0cf7a6ac2ad4e55cf47ac6b0fe5b8c40f Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Thu, 9 Mar 2023 08:51:26 +0800 Subject: [PATCH 20/34] fix: update test cases for relup --- .ci/fvt_tests/relup.lux | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.ci/fvt_tests/relup.lux b/.ci/fvt_tests/relup.lux index b6491e9fa..58ba882fa 100644 --- a/.ci/fvt_tests/relup.lux +++ b/.ci/fvt_tests/relup.lux @@ -29,7 +29,7 @@ !export EMQX_LOG__LEVEL=debug !./bin/emqx start - ?EMQX .* is started successfully! + ?EMQ.* is started successfully! ?SH-PROMPT [shell emqx2] @@ -43,7 +43,7 @@ !export EMQX_LOG__LEVEL=debug !./bin/emqx start - ?EMQX .* is started successfully! + ?EMQ.* is started successfully! ?SH-PROMPT !./bin/emqx_ctl cluster join emqx@127.0.0.1 From 2e8d2075586b40723b23e44475e5c36aaac8a668 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Thu, 9 Mar 2023 09:06:41 +0800 Subject: [PATCH 21/34] chore: bump versions for apps --- apps/emqx_auth_http/src/emqx_auth_http.app.src | 2 +- apps/emqx_auth_jwt/src/emqx_auth_jwt.app.src | 2 +- apps/emqx_auth_ldap/src/emqx_auth_ldap.app.src | 2 +- apps/emqx_auth_mnesia/src/emqx_auth_mnesia.app.src | 2 +- apps/emqx_auth_mongo/src/emqx_auth_mongo.app.src | 2 +- apps/emqx_auth_mysql/src/emqx_auth_mysql.app.src | 2 +- apps/emqx_auth_pgsql/src/emqx_auth_pgsql.app.src | 2 +- apps/emqx_auth_redis/src/emqx_auth_redis.app.src | 2 +- apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.app.src | 2 +- apps/emqx_coap/src/emqx_coap.app.src | 2 +- apps/emqx_exhook/src/emqx_exhook.app.src | 2 +- apps/emqx_exproto/src/emqx_exproto.app.src | 2 +- apps/emqx_lua_hook/src/emqx_lua_hook.app.src | 2 +- apps/emqx_lwm2m/src/emqx_lwm2m.app.src | 2 +- apps/emqx_management/src/emqx_management.app.src | 2 +- apps/emqx_plugin_libs/src/emqx_plugin_libs.app.src | 2 +- apps/emqx_prometheus/src/emqx_prometheus.app.src | 2 +- apps/emqx_psk_file/src/emqx_psk_file.app.src | 2 +- apps/emqx_recon/src/emqx_recon.app.src | 2 +- apps/emqx_retainer/src/emqx_retainer.app.src | 2 +- apps/emqx_rule_engine/src/emqx_rule_engine.app.src | 2 +- apps/emqx_sasl/src/emqx_sasl.app.src | 2 +- apps/emqx_sn/src/emqx_sn.app.src | 2 +- apps/emqx_stomp/src/emqx_stomp.app.src | 2 +- apps/emqx_web_hook/src/emqx_web_hook.app.src | 2 +- lib-ce/emqx_modules/src/emqx_modules.app.src | 2 +- lib-ce/emqx_telemetry/src/emqx_telemetry.app.src | 2 +- 27 files changed, 27 insertions(+), 27 deletions(-) diff --git a/apps/emqx_auth_http/src/emqx_auth_http.app.src b/apps/emqx_auth_http/src/emqx_auth_http.app.src index c34a21107..94c446b6f 100644 --- a/apps/emqx_auth_http/src/emqx_auth_http.app.src +++ b/apps/emqx_auth_http/src/emqx_auth_http.app.src @@ -1,6 +1,6 @@ {application, emqx_auth_http, [{description, "EMQX Authentication/ACL with HTTP API"}, - {vsn, "4.3.11"}, % strict semver, bump manually! + {vsn, "4.3.12"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_auth_http_sup]}, {applications, [kernel,stdlib,ehttpc]}, 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 1a71f6d73..398e0bc34 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, "EMQX Authentication with JWT"}, - {vsn, "4.4.9"}, % strict semver, bump manually! + {vsn, "4.4.10"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_auth_jwt_sup]}, {applications, [kernel,stdlib,jose]}, diff --git a/apps/emqx_auth_ldap/src/emqx_auth_ldap.app.src b/apps/emqx_auth_ldap/src/emqx_auth_ldap.app.src index 3035fd6dc..01fe97a06 100644 --- a/apps/emqx_auth_ldap/src/emqx_auth_ldap.app.src +++ b/apps/emqx_auth_ldap/src/emqx_auth_ldap.app.src @@ -1,6 +1,6 @@ {application, emqx_auth_ldap, [{description, "EMQX Authentication/ACL with LDAP"}, - {vsn, "4.3.7"}, % strict semver, bump manually! + {vsn, "4.3.8"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_auth_ldap_sup]}, {applications, [kernel,stdlib,eldap2,ecpool]}, diff --git a/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.app.src b/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.app.src index 1ff3127ee..09ad7b779 100644 --- a/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.app.src +++ b/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.app.src @@ -1,6 +1,6 @@ {application, emqx_auth_mnesia, [{description, "EMQX Authentication with Mnesia"}, - {vsn, "4.3.11"}, % strict semver, bump manually + {vsn, "4.3.12"}, % strict semver, bump manually {modules, []}, {registered, []}, {applications, [kernel,stdlib,mnesia]}, diff --git a/apps/emqx_auth_mongo/src/emqx_auth_mongo.app.src b/apps/emqx_auth_mongo/src/emqx_auth_mongo.app.src index 274a40a16..5476a4977 100644 --- a/apps/emqx_auth_mongo/src/emqx_auth_mongo.app.src +++ b/apps/emqx_auth_mongo/src/emqx_auth_mongo.app.src @@ -1,6 +1,6 @@ {application, emqx_auth_mongo, [{description, "EMQX Authentication/ACL with MongoDB"}, - {vsn, "4.4.6"}, % strict semver, bump manually! + {vsn, "4.4.7"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_auth_mongo_sup]}, {applications, [kernel,stdlib,mongodb,ecpool]}, diff --git a/apps/emqx_auth_mysql/src/emqx_auth_mysql.app.src b/apps/emqx_auth_mysql/src/emqx_auth_mysql.app.src index 8ab6e5262..0c4c44ef5 100644 --- a/apps/emqx_auth_mysql/src/emqx_auth_mysql.app.src +++ b/apps/emqx_auth_mysql/src/emqx_auth_mysql.app.src @@ -1,6 +1,6 @@ {application, emqx_auth_mysql, [{description, "EMQX Authentication/ACL with MySQL"}, - {vsn, "4.3.5"}, % strict semver, bump manually! + {vsn, "4.3.6"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_auth_mysql_sup]}, {applications, [kernel,stdlib,mysql,ecpool]}, diff --git a/apps/emqx_auth_pgsql/src/emqx_auth_pgsql.app.src b/apps/emqx_auth_pgsql/src/emqx_auth_pgsql.app.src index 90e81425e..edbbcba9f 100644 --- a/apps/emqx_auth_pgsql/src/emqx_auth_pgsql.app.src +++ b/apps/emqx_auth_pgsql/src/emqx_auth_pgsql.app.src @@ -1,6 +1,6 @@ {application, emqx_auth_pgsql, [{description, "EMQX Authentication/ACL with PostgreSQL"}, - {vsn, "4.4.5"}, % strict semver, bump manually! + {vsn, "4.4.6"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_auth_pgsql_sup]}, {applications, [kernel,stdlib,epgsql,ecpool]}, diff --git a/apps/emqx_auth_redis/src/emqx_auth_redis.app.src b/apps/emqx_auth_redis/src/emqx_auth_redis.app.src index 591e03d28..04493152e 100644 --- a/apps/emqx_auth_redis/src/emqx_auth_redis.app.src +++ b/apps/emqx_auth_redis/src/emqx_auth_redis.app.src @@ -1,6 +1,6 @@ {application, emqx_auth_redis, [{description, "EMQX Authentication/ACL with Redis"}, - {vsn, "4.3.5"}, % strict semver, bump manually! + {vsn, "4.3.6"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_auth_redis_sup]}, {applications, [kernel,stdlib,eredis,eredis_cluster,ecpool]}, diff --git a/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.app.src b/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.app.src index 8d19e32fb..5a6988a5a 100644 --- a/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.app.src +++ b/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.app.src @@ -1,6 +1,6 @@ {application, emqx_bridge_mqtt, [{description, "EMQX Bridge to MQTT Broker"}, - {vsn, "4.3.8"}, % strict semver, bump manually! + {vsn, "4.3.9"}, % strict semver, bump manually! {modules, []}, {registered, []}, {applications, [kernel,stdlib,replayq,emqtt]}, diff --git a/apps/emqx_coap/src/emqx_coap.app.src b/apps/emqx_coap/src/emqx_coap.app.src index 856255b23..c32b45425 100644 --- a/apps/emqx_coap/src/emqx_coap.app.src +++ b/apps/emqx_coap/src/emqx_coap.app.src @@ -1,6 +1,6 @@ {application, emqx_coap, [{description, "EMQX CoAP Gateway"}, - {vsn, "4.3.3"}, % strict semver, bump manually! + {vsn, "4.3.4"}, % strict semver, bump manually! {modules, []}, {registered, []}, {applications, [kernel,stdlib,gen_coap]}, diff --git a/apps/emqx_exhook/src/emqx_exhook.app.src b/apps/emqx_exhook/src/emqx_exhook.app.src index 8bb6559d1..f5c0664ee 100644 --- a/apps/emqx_exhook/src/emqx_exhook.app.src +++ b/apps/emqx_exhook/src/emqx_exhook.app.src @@ -1,7 +1,7 @@ %% -*- mode: erlang -*- {application, emqx_exhook, [{description, "EMQX Extension for Hook"}, - {vsn, "4.4.6"}, + {vsn, "4.4.7"}, {modules, []}, {registered, []}, {mod, {emqx_exhook_app, []}}, diff --git a/apps/emqx_exproto/src/emqx_exproto.app.src b/apps/emqx_exproto/src/emqx_exproto.app.src index 898233c9a..6b508b338 100644 --- a/apps/emqx_exproto/src/emqx_exproto.app.src +++ b/apps/emqx_exproto/src/emqx_exproto.app.src @@ -1,6 +1,6 @@ {application, emqx_exproto, [{description, "EMQX Extension for Protocol"}, - {vsn, "4.3.15"}, %% 4.3.3 is used by ee + {vsn, "4.3.16"}, %% 4.3.3 is used by ee {modules, []}, {registered, []}, {mod, {emqx_exproto_app, []}}, diff --git a/apps/emqx_lua_hook/src/emqx_lua_hook.app.src b/apps/emqx_lua_hook/src/emqx_lua_hook.app.src index e9212029a..20ed9a221 100644 --- a/apps/emqx_lua_hook/src/emqx_lua_hook.app.src +++ b/apps/emqx_lua_hook/src/emqx_lua_hook.app.src @@ -1,6 +1,6 @@ {application, emqx_lua_hook, [{description, "EMQX Lua Hooks"}, - {vsn, "4.3.2"}, % strict semver, bump manually! + {vsn, "4.3.3"}, % strict semver, bump manually! {modules, []}, {registered, []}, {applications, [kernel,stdlib]}, diff --git a/apps/emqx_lwm2m/src/emqx_lwm2m.app.src b/apps/emqx_lwm2m/src/emqx_lwm2m.app.src index e62fd544e..489fe982e 100644 --- a/apps/emqx_lwm2m/src/emqx_lwm2m.app.src +++ b/apps/emqx_lwm2m/src/emqx_lwm2m.app.src @@ -1,6 +1,6 @@ {application,emqx_lwm2m, [{description,"EMQX LwM2M Gateway"}, - {vsn, "4.3.8"}, % strict semver, bump manually! + {vsn, "4.3.9"}, % strict semver, bump manually! {modules,[]}, {registered,[emqx_lwm2m_sup]}, {applications,[kernel,stdlib,lwm2m_coap]}, diff --git a/apps/emqx_management/src/emqx_management.app.src b/apps/emqx_management/src/emqx_management.app.src index 3b75d8587..888ff2aee 100644 --- a/apps/emqx_management/src/emqx_management.app.src +++ b/apps/emqx_management/src/emqx_management.app.src @@ -1,6 +1,6 @@ {application, emqx_management, [{description, "EMQX Management API and CLI"}, - {vsn, "4.4.13"}, % strict semver, bump manually! + {vsn, "4.4.14"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_management_sup]}, {applications, [kernel,stdlib,emqx_plugin_libs,minirest]}, diff --git a/apps/emqx_plugin_libs/src/emqx_plugin_libs.app.src b/apps/emqx_plugin_libs/src/emqx_plugin_libs.app.src index 2fc942c4b..dc0d2b86f 100644 --- a/apps/emqx_plugin_libs/src/emqx_plugin_libs.app.src +++ b/apps/emqx_plugin_libs/src/emqx_plugin_libs.app.src @@ -1,6 +1,6 @@ {application, emqx_plugin_libs, [{description, "EMQX Plugin utility libs"}, - {vsn, "4.4.7"}, + {vsn, "4.4.8"}, {modules, []}, {applications, [kernel,stdlib]}, {env, []} diff --git a/apps/emqx_prometheus/src/emqx_prometheus.app.src b/apps/emqx_prometheus/src/emqx_prometheus.app.src index 231e23e90..79bd4738a 100644 --- a/apps/emqx_prometheus/src/emqx_prometheus.app.src +++ b/apps/emqx_prometheus/src/emqx_prometheus.app.src @@ -1,6 +1,6 @@ {application, emqx_prometheus, [{description, "Prometheus for EMQX"}, - {vsn, "4.3.2"}, % strict semver, bump manually! + {vsn, "4.3.3"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_prometheus_sup]}, {applications, [kernel,stdlib,prometheus]}, diff --git a/apps/emqx_psk_file/src/emqx_psk_file.app.src b/apps/emqx_psk_file/src/emqx_psk_file.app.src index e87307d0c..ada1410f5 100644 --- a/apps/emqx_psk_file/src/emqx_psk_file.app.src +++ b/apps/emqx_psk_file/src/emqx_psk_file.app.src @@ -1,6 +1,6 @@ {application, emqx_psk_file, [{description,"EMQX PSK Plugin from File"}, - {vsn, "4.3.1"}, % strict semver, bump manually! + {vsn, "4.3.2"}, % strict semver, bump manually! {modules,[]}, {registered,[emqx_psk_file_sup]}, {applications,[kernel,stdlib]}, diff --git a/apps/emqx_recon/src/emqx_recon.app.src b/apps/emqx_recon/src/emqx_recon.app.src index 55b3e31bb..c2bbfba56 100644 --- a/apps/emqx_recon/src/emqx_recon.app.src +++ b/apps/emqx_recon/src/emqx_recon.app.src @@ -1,6 +1,6 @@ {application, emqx_recon, [{description, "EMQX Recon Plugin"}, - {vsn, "4.3.0"}, % strict semver, bump manually! + {vsn, "4.3.1"}, % strict semver, bump manually! {modules, []}, {registered, []}, {applications, [kernel,stdlib,recon]}, diff --git a/apps/emqx_retainer/src/emqx_retainer.app.src b/apps/emqx_retainer/src/emqx_retainer.app.src index 76abc5935..1f1e5821b 100644 --- a/apps/emqx_retainer/src/emqx_retainer.app.src +++ b/apps/emqx_retainer/src/emqx_retainer.app.src @@ -1,6 +1,6 @@ {application, emqx_retainer, [{description, "EMQX Retainer"}, - {vsn, "4.4.4"}, % strict semver, bump manually! + {vsn, "4.4.5"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_retainer_sup]}, {applications, [kernel,stdlib]}, 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 0bed9cc70..e315403ca 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, "EMQX Rule Engine"}, - {vsn, "4.4.15"}, % strict semver, bump manually! + {vsn, "4.4.16"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_rule_engine_sup, emqx_rule_registry, emqx_rule_engine_jwt_sup]}, {applications, [kernel,stdlib,rulesql,getopt,jose]}, diff --git a/apps/emqx_sasl/src/emqx_sasl.app.src b/apps/emqx_sasl/src/emqx_sasl.app.src index dbf1291f2..eb86d156b 100644 --- a/apps/emqx_sasl/src/emqx_sasl.app.src +++ b/apps/emqx_sasl/src/emqx_sasl.app.src @@ -1,6 +1,6 @@ {application, emqx_sasl, [{description, "EMQX SASL"}, - {vsn, "4.3.0"}, % strict semver, bump manually! + {vsn, "4.3.1"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_sasl_sup]}, {applications, [kernel,stdlib,pbkdf2]}, diff --git a/apps/emqx_sn/src/emqx_sn.app.src b/apps/emqx_sn/src/emqx_sn.app.src index 2fa72acd8..7101dc00e 100644 --- a/apps/emqx_sn/src/emqx_sn.app.src +++ b/apps/emqx_sn/src/emqx_sn.app.src @@ -1,6 +1,6 @@ {application, emqx_sn, [{description, "EMQX MQTT-SN Plugin"}, - {vsn, "4.3.8"}, % strict semver, bump manually! + {vsn, "4.3.9"}, % strict semver, bump manually! {modules, []}, {registered, []}, {applications, [kernel,stdlib,esockd]}, diff --git a/apps/emqx_stomp/src/emqx_stomp.app.src b/apps/emqx_stomp/src/emqx_stomp.app.src index 60c42221d..57cf6acca 100644 --- a/apps/emqx_stomp/src/emqx_stomp.app.src +++ b/apps/emqx_stomp/src/emqx_stomp.app.src @@ -1,6 +1,6 @@ {application, emqx_stomp, [{description, "EMQX Stomp Protocol Plugin"}, - {vsn, "4.3.7"}, % strict semver, bump manually! + {vsn, "4.3.8"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_stomp_sup]}, {applications, [kernel,stdlib]}, diff --git a/apps/emqx_web_hook/src/emqx_web_hook.app.src b/apps/emqx_web_hook/src/emqx_web_hook.app.src index 43b9e060c..cf1d53984 100644 --- a/apps/emqx_web_hook/src/emqx_web_hook.app.src +++ b/apps/emqx_web_hook/src/emqx_web_hook.app.src @@ -1,6 +1,6 @@ {application, emqx_web_hook, [{description, "EMQX WebHook Plugin"}, - {vsn, "4.3.17"}, % strict semver, bump manually! + {vsn, "4.3.18"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_web_hook_sup]}, {applications, [kernel,stdlib,ehttpc]}, diff --git a/lib-ce/emqx_modules/src/emqx_modules.app.src b/lib-ce/emqx_modules/src/emqx_modules.app.src index cc05b7e00..e1f075344 100644 --- a/lib-ce/emqx_modules/src/emqx_modules.app.src +++ b/lib-ce/emqx_modules/src/emqx_modules.app.src @@ -1,6 +1,6 @@ {application, emqx_modules, [{description, "EMQX Module Management"}, - {vsn, "4.4.9"}, + {vsn, "4.4.10"}, {modules, []}, {applications, [kernel,stdlib]}, {mod, {emqx_modules_app, []}}, diff --git a/lib-ce/emqx_telemetry/src/emqx_telemetry.app.src b/lib-ce/emqx_telemetry/src/emqx_telemetry.app.src index d88bc2742..ed1174653 100644 --- a/lib-ce/emqx_telemetry/src/emqx_telemetry.app.src +++ b/lib-ce/emqx_telemetry/src/emqx_telemetry.app.src @@ -1,6 +1,6 @@ {application, emqx_telemetry, [{description, "EMQX Telemetry"}, - {vsn, "4.3.5"}, % strict semver, bump manually! + {vsn, "4.3.6"}, % strict semver, bump manually! {modules, []}, {registered, [emqx_telemetry_sup]}, {applications, [kernel,stdlib]}, From 5d3946fe23b899e999b95c98567baef971d69211 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Thu, 9 Mar 2023 10:53:53 +0800 Subject: [PATCH 22/34] fix: add catch-all clauses in appups --- .../emqx_lua_hook/src/emqx_lua_hook.appup.src | 6 ++- apps/emqx_lwm2m/src/emqx_lwm2m.appup.src | 50 ++++++++++--------- .../emqx_psk_file/src/emqx_psk_file.appup.src | 6 ++- apps/emqx_sn/src/emqx_sn.appup.src | 6 ++- 4 files changed, 38 insertions(+), 30 deletions(-) diff --git a/apps/emqx_lua_hook/src/emqx_lua_hook.appup.src b/apps/emqx_lua_hook/src/emqx_lua_hook.appup.src index c4178c620..166d5eb54 100644 --- a/apps/emqx_lua_hook/src/emqx_lua_hook.appup.src +++ b/apps/emqx_lua_hook/src/emqx_lua_hook.appup.src @@ -2,6 +2,8 @@ %% Unless you know what you are doing, DO NOT edit manually!! {VSN, [{"4.3.1",[{load_module,emqx_lua_script,brutal_purge,soft_purge,[]}]}, - {"4.3.0",[{load_module,emqx_lua_script,brutal_purge,soft_purge,[]}]}], + {"4.3.0",[{load_module,emqx_lua_script,brutal_purge,soft_purge,[]}]}, + {<<".*">>,[]}], [{"4.3.1",[{load_module,emqx_lua_script,brutal_purge,soft_purge,[]}]}, - {"4.3.0",[{load_module,emqx_lua_script,brutal_purge,soft_purge,[]}]}]}. + {"4.3.0",[{load_module,emqx_lua_script,brutal_purge,soft_purge,[]}]}, + {<<".*">>,[]}]}. diff --git a/apps/emqx_lwm2m/src/emqx_lwm2m.appup.src b/apps/emqx_lwm2m/src/emqx_lwm2m.appup.src index 793feecd1..c172ca572 100644 --- a/apps/emqx_lwm2m/src/emqx_lwm2m.appup.src +++ b/apps/emqx_lwm2m/src/emqx_lwm2m.appup.src @@ -7,14 +7,18 @@ {load_module,emqx_lwm2m_message,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_json,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_cmd_handler,brutal_purge,soft_purge,[]}]}, - {<<"4\\.3\\.[0-1]">>,[{restart_application,emqx_lwm2m}]}, - {"4.3.2", + {"4.3.6", [{load_module,emqx_lwm2m_xml_object_db,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_xml_object,brutal_purge,soft_purge,[]}, + {load_module,emqx_lwm2m_message,brutal_purge,soft_purge,[]}, + {load_module,emqx_lwm2m_json,brutal_purge,soft_purge,[]}, + {load_module,emqx_lwm2m_cmd_handler,brutal_purge,soft_purge,[]}]}, + {"4.3.5", + [{load_module,emqx_lwm2m_xml_object_db,brutal_purge,soft_purge,[]}, + {load_module,emqx_lwm2m_xml_object,brutal_purge,soft_purge,[]}, + {load_module,emqx_lwm2m_message,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_json,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_cmd_handler,brutal_purge,soft_purge,[]}, - {load_module,emqx_lwm2m_protocol,brutal_purge,soft_purge,[]}, - {load_module,emqx_lwm2m_message,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_api,brutal_purge,soft_purge,[]}]}, {<<"4\\.3\\.[3-4]">>, [{load_module,emqx_lwm2m_xml_object_db,brutal_purge,soft_purge,[]}, @@ -24,33 +28,34 @@ {load_module,emqx_lwm2m_cmd_handler,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_protocol,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_api,brutal_purge,soft_purge,[]}]}, - {"4.3.5", + {"4.3.2", [{load_module,emqx_lwm2m_xml_object_db,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_xml_object,brutal_purge,soft_purge,[]}, - {load_module,emqx_lwm2m_message,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_json,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_cmd_handler,brutal_purge,soft_purge,[]}, - {load_module,emqx_lwm2m_api,brutal_purge,soft_purge,[]}]}, - {"4.3.6", - [{load_module,emqx_lwm2m_xml_object_db,brutal_purge,soft_purge,[]}, - {load_module,emqx_lwm2m_xml_object,brutal_purge,soft_purge,[]}, + {load_module,emqx_lwm2m_protocol,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_message,brutal_purge,soft_purge,[]}, - {load_module,emqx_lwm2m_json,brutal_purge,soft_purge,[]}, - {load_module,emqx_lwm2m_cmd_handler,brutal_purge,soft_purge,[]}]}], + {load_module,emqx_lwm2m_api,brutal_purge,soft_purge,[]}]}, + {<<"4\\.3\\.[0-1]">>,[{restart_application,emqx_lwm2m}]}, + {<<".*">>,[]}], [{"4.3.7", [{load_module,emqx_lwm2m_xml_object_db,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_xml_object,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_message,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_json,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_cmd_handler,brutal_purge,soft_purge,[]}]}, - {<<"4\\.3\\.[0-1]">>,[{restart_application,emqx_lwm2m}]}, - {"4.3.2", + {"4.3.6", [{load_module,emqx_lwm2m_xml_object_db,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_xml_object,brutal_purge,soft_purge,[]}, + {load_module,emqx_lwm2m_message,brutal_purge,soft_purge,[]}, + {load_module,emqx_lwm2m_json,brutal_purge,soft_purge,[]}, + {load_module,emqx_lwm2m_cmd_handler,brutal_purge,soft_purge,[]}]}, + {"4.3.5", + [{load_module,emqx_lwm2m_xml_object_db,brutal_purge,soft_purge,[]}, + {load_module,emqx_lwm2m_xml_object,brutal_purge,soft_purge,[]}, + {load_module,emqx_lwm2m_message,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_json,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_cmd_handler,brutal_purge,soft_purge,[]}, - {load_module,emqx_lwm2m_protocol,brutal_purge,soft_purge,[]}, - {load_module,emqx_lwm2m_message,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_api,brutal_purge,soft_purge,[]}]}, {<<"4\\.3\\.[3-4]">>, [{load_module,emqx_lwm2m_xml_object_db,brutal_purge,soft_purge,[]}, @@ -60,16 +65,13 @@ {load_module,emqx_lwm2m_cmd_handler,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_protocol,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_api,brutal_purge,soft_purge,[]}]}, - {"4.3.5", + {"4.3.2", [{load_module,emqx_lwm2m_xml_object_db,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_xml_object,brutal_purge,soft_purge,[]}, - {load_module,emqx_lwm2m_message,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_json,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_cmd_handler,brutal_purge,soft_purge,[]}, - {load_module,emqx_lwm2m_api,brutal_purge,soft_purge,[]}]}, - {"4.3.6", - [{load_module,emqx_lwm2m_xml_object_db,brutal_purge,soft_purge,[]}, - {load_module,emqx_lwm2m_xml_object,brutal_purge,soft_purge,[]}, + {load_module,emqx_lwm2m_protocol,brutal_purge,soft_purge,[]}, {load_module,emqx_lwm2m_message,brutal_purge,soft_purge,[]}, - {load_module,emqx_lwm2m_json,brutal_purge,soft_purge,[]}, - {load_module,emqx_lwm2m_cmd_handler,brutal_purge,soft_purge,[]}]}]}. + {load_module,emqx_lwm2m_api,brutal_purge,soft_purge,[]}]}, + {<<"4\\.3\\.[0-1]">>,[{restart_application,emqx_lwm2m}]}, + {<<".*">>,[]}]}. diff --git a/apps/emqx_psk_file/src/emqx_psk_file.appup.src b/apps/emqx_psk_file/src/emqx_psk_file.appup.src index c782000b5..6d70231ce 100644 --- a/apps/emqx_psk_file/src/emqx_psk_file.appup.src +++ b/apps/emqx_psk_file/src/emqx_psk_file.appup.src @@ -2,9 +2,11 @@ {VSN, [{"4.3.0", [{load_module,emqx_psk_file,brutal_purge,soft_purge,[]}, - {load_module,emqx_psk_file_sup,brutal_purge,soft_purge,[]}]} + {load_module,emqx_psk_file_sup,brutal_purge,soft_purge,[]}]}, + {<<".*">>,[]} ], [{"4.3.0", [{load_module,emqx_psk_file,brutal_purge,soft_purge,[]}, - {load_module,emqx_psk_file_sup,brutal_purge,soft_purge,[]}]} + {load_module,emqx_psk_file_sup,brutal_purge,soft_purge,[]}]}, + {<<".*">>,[]} ]}. diff --git a/apps/emqx_sn/src/emqx_sn.appup.src b/apps/emqx_sn/src/emqx_sn.appup.src index c87bbb0a1..8f429ee6f 100644 --- a/apps/emqx_sn/src/emqx_sn.appup.src +++ b/apps/emqx_sn/src/emqx_sn.appup.src @@ -29,7 +29,8 @@ {load_module,emqx_sn_app,brutal_purge,soft_purge,[]}, {update,emqx_sn_gateway,{advanced,["4.3.2"]}} ]}, - {<<"4\\.3\\.[0-1]">>, [{restart_application,emqx_sn}]} + {<<"4\\.3\\.[0-1]">>, [{restart_application,emqx_sn}]}, + {<<".*">>,[]} ], [ {"4.3.7",[ @@ -60,5 +61,6 @@ {load_module,emqx_sn_app,brutal_purge,soft_purge,[]}, {update,emqx_sn_gateway,{advanced,["4.3.2"]}} ]}, - {<<"4\\.3\\.[0-1]">>, [{restart_application,emqx_sn}]} + {<<"4\\.3\\.[0-1]">>, [{restart_application,emqx_sn}]}, + {<<".*">>,[]} ]}. From c8a65472fd60726c1a6fdd7476427ed760640156 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Thu, 9 Mar 2023 15:10:20 +0800 Subject: [PATCH 23/34] chore: update change logs for v4.4.16 --- changes/v4.4.16-en.md | 2 ++ changes/v4.4.16-zh.md | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/changes/v4.4.16-en.md b/changes/v4.4.16-en.md index cb727c09c..10fe78043 100644 --- a/changes/v4.4.16-en.md +++ b/changes/v4.4.16-en.md @@ -2,6 +2,8 @@ ## Enhancements +- Change "EMQ X" to "EMQX" from the outputs of CLIs and names of plugins [#10099](https://github.com/emqx/emqx/pull/10099). + ## Bug fixes - Avoid changing the payload of MQTT messages when printing debug logs [#10091](https://github.com/emqx/emqx/pull/10091). diff --git a/changes/v4.4.16-zh.md b/changes/v4.4.16-zh.md index a9dd5e93b..44750de95 100644 --- a/changes/v4.4.16-zh.md +++ b/changes/v4.4.16-zh.md @@ -2,9 +2,11 @@ ## 增强 +- 从命令行的输出里和插件的名字中,把 "EMQ X" 改成 "EMQX" [#10099](https://github.com/emqx/emqx/pull/10099)。 + ## 修复 -- 避免打印 debug 日志的时候改动 MQTT 消息的 Payload 的内容 [#10091](https://github.com/emqx/emqx/pull/10091) +- 避免打印 debug 日志的时候改动 MQTT 消息的 Payload 的内容 [#10091](https://github.com/emqx/emqx/pull/10091)。 在这个修复之前,如果 EMQX 收到一个 Payload 为 "e\ne\nc\nc\n2\n\n\n" 的消息,日志打印会变成这样: ``` 2023-03-08T13:28:04.320622+08:00 [debug] mqttx_e34bd582@127.0.0.1:54020 [MQTT] RECV PUBLISH(Q1, R0, D0, Topic=t/1, PacketId=39467, Payload=e, e, c, c, 2, , , ) From 822ca2e26c33cf10bea55e2088487357c1738bfb Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Thu, 9 Mar 2023 15:19:00 +0800 Subject: [PATCH 24/34] chore: release v4.4.16-alpha.1 --- data/relup-paths.eterm | 8 +++++++- deploy/charts/emqx/Chart.yaml | 4 ++-- include/emqx_release.hrl | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/data/relup-paths.eterm b/data/relup-paths.eterm index 3d2946eca..fd93fb19b 100644 --- a/data/relup-paths.eterm +++ b/data/relup-paths.eterm @@ -69,8 +69,14 @@ <<"4.4.13">>,<<"4.4.14">>,<<"4.4.2">>,<<"4.4.3">>,<<"4.4.4">>,<<"4.4.5">>, <<"4.4.6">>,<<"4.4.7">>,<<"4.4.8">>,<<"4.4.9">>], otp => <<"24.3.4.2-1">>}}. +{<<"4.4.16">>, + #{from_versions => + [<<"4.4.0">>,<<"4.4.1">>,<<"4.4.10">>,<<"4.4.11">>,<<"4.4.12">>, + <<"4.4.13">>,<<"4.4.14">>,<<"4.4.15">>,<<"4.4.2">>,<<"4.4.3">>,<<"4.4.4">>,<<"4.4.5">>, + <<"4.4.6">>,<<"4.4.7">>,<<"4.4.8">>,<<"4.4.9">>], + otp => <<"24.3.4.2-1">>}}. {<<"4.5.0">>, #{from_versions => - [<<"4.4.10">>,<<"4.4.11">>,<<"4.4.13">>,<<"4.4.14">>,<<"4.4.15">>,<<"4.4.8">>, + [<<"4.4.10">>,<<"4.4.11">>,<<"4.4.13">>,<<"4.4.14">>,<<"4.4.15">>,<<"4.4.16">>,<<"4.4.8">>, <<"4.4.9">>], otp => <<"24.3.4.2-1">>}}. diff --git a/deploy/charts/emqx/Chart.yaml b/deploy/charts/emqx/Chart.yaml index c9c7f07bc..5adffeb03 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.4.15 +version: 4.4.16 # 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.4.15 +appVersion: 4.4.16 diff --git a/include/emqx_release.hrl b/include/emqx_release.hrl index 847c45271..75b8a3bfb 100644 --- a/include/emqx_release.hrl +++ b/include/emqx_release.hrl @@ -29,7 +29,7 @@ -ifndef(EMQX_ENTERPRISE). --define(EMQX_RELEASE, {opensource, "4.4.15"}). +-define(EMQX_RELEASE, {opensource, "4.4.16-alpha.1"}). -else. From 5402ff7fd888dd5d666b252c7b1e0fe9e886eddd Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Thu, 9 Mar 2023 20:16:55 +0800 Subject: [PATCH 25/34] chore: port changes from e4.4 back to v4.4 --- .../src/emqx_auth_redis.appup.src | 12 +++-- apps/emqx_auth_redis/src/emqx_auth_redis.erl | 1 + .../src/emqx_bridge_mqtt.appup.src | 8 ++- .../src/emqx_bridge_mqtt_actions.erl | 1 - .../src/emqx_plugin_libs.appup.src | 8 +-- .../src/emqx_plugin_libs_ssl.erl | 10 +++- .../src/emqx_rule_engine.appup.src | 49 ++++++++++++------- .../emqx_rule_engine/src/emqx_rule_engine.erl | 9 +++- .../src/emqx_rule_runtime.erl | 8 ++- .../emqx_web_hook/src/emqx_web_hook.appup.src | 8 +-- .../src/emqx_web_hook_actions.erl | 1 - src/emqx_app.erl | 8 ++- src/emqx_relup.erl | 42 +++++++++++----- 13 files changed, 114 insertions(+), 51 deletions(-) diff --git a/apps/emqx_auth_redis/src/emqx_auth_redis.appup.src b/apps/emqx_auth_redis/src/emqx_auth_redis.appup.src index c3c25571a..9e99fa763 100644 --- a/apps/emqx_auth_redis/src/emqx_auth_redis.appup.src +++ b/apps/emqx_auth_redis/src/emqx_auth_redis.appup.src @@ -1,8 +1,10 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.3.4", - [{load_module,emqx_acl_redis,brutal_purge,soft_purge,[]}]}, + [{"4.3.5",[{load_module,emqx_auth_redis,brutal_purge,soft_purge,[]}]}, + {"4.3.4", + [{load_module,emqx_auth_redis,brutal_purge,soft_purge,[]}, + {load_module,emqx_acl_redis,brutal_purge,soft_purge,[]}]}, {"4.3.3", [{load_module,emqx_acl_redis,brutal_purge,soft_purge,[]}, {load_module,emqx_auth_redis,brutal_purge,soft_purge,[]}, @@ -18,8 +20,10 @@ {load_module,emqx_auth_redis,brutal_purge,soft_purge,[]}, {load_module,emqx_acl_redis,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], - [{"4.3.4", - [{load_module,emqx_acl_redis,brutal_purge,soft_purge,[]}]}, + [{"4.3.5",[{load_module,emqx_auth_redis,brutal_purge,soft_purge,[]}]}, + {"4.3.4", + [{load_module,emqx_auth_redis,brutal_purge,soft_purge,[]}, + {load_module,emqx_acl_redis,brutal_purge,soft_purge,[]}]}, {"4.3.3", [{load_module,emqx_acl_redis,brutal_purge,soft_purge,[]}, {load_module,emqx_auth_redis,brutal_purge,soft_purge,[]}, diff --git a/apps/emqx_auth_redis/src/emqx_auth_redis.erl b/apps/emqx_auth_redis/src/emqx_auth_redis.erl index fae22f3f1..2b8f75574 100644 --- a/apps/emqx_auth_redis/src/emqx_auth_redis.erl +++ b/apps/emqx_auth_redis/src/emqx_auth_redis.erl @@ -47,6 +47,7 @@ check(ClientInfo = #{password := Password}, AuthResult, end, case CheckPass of ok -> + ?LOG_SENSITIVE(debug, "[Redis] Auth from redis succeeded, Client: ~p", [ClientInfo]), IsSuperuser = is_superuser(Pool, Type, SuperCmd, ClientInfo, Timeout), {stop, AuthResult#{is_superuser => IsSuperuser, anonymous => false, diff --git a/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.appup.src b/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.appup.src index 013371592..a488502a0 100644 --- a/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.appup.src +++ b/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt.appup.src @@ -1,7 +1,9 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.3.7", + [{"4.3.8", + [{load_module,emqx_bridge_mqtt_actions,brutal_purge,soft_purge,[]}]}, + {"4.3.7", [{load_module,emqx_bridge_mqtt_actions,brutal_purge,soft_purge,[]}]}, {"4.3.6", [{load_module,emqx_bridge_connect,brutal_purge,soft_purge,[]}, @@ -23,7 +25,9 @@ {load_module,emqx_bridge_worker,brutal_purge,soft_purge,[]}, {load_module,emqx_bridge_mqtt_actions,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], - [{"4.3.7", + [{"4.3.8", + [{load_module,emqx_bridge_mqtt_actions,brutal_purge,soft_purge,[]}]}, + {"4.3.7", [{load_module,emqx_bridge_mqtt_actions,brutal_purge,soft_purge,[]}]}, {"4.3.6", [{load_module,emqx_bridge_connect,brutal_purge,soft_purge,[]}, diff --git a/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt_actions.erl b/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt_actions.erl index 67b5a7a2e..b43d44eac 100644 --- a/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt_actions.erl +++ b/apps/emqx_bridge_mqtt/src/emqx_bridge_mqtt_actions.erl @@ -482,7 +482,6 @@ on_resource_destroy(ResId, #{<<"pool">> := PoolName}) -> ?LOG(info, "Destroying Resource ~p, ResId: ~p", [?RESOURCE_TYPE_MQTT, ResId]), case ecpool:stop_sup_pool(PoolName) of ok -> - emqx_plugin_libs_ssl:maybe_delete_dir("rules", ResId), ?LOG(info, "Destroyed Resource ~p Successfully, ResId: ~p", [?RESOURCE_TYPE_MQTT, ResId]); {error, Reason} -> ?LOG(error, "Destroy Resource ~p failed, ResId: ~p, ~p", [?RESOURCE_TYPE_MQTT, ResId, Reason]), diff --git a/apps/emqx_plugin_libs/src/emqx_plugin_libs.appup.src b/apps/emqx_plugin_libs/src/emqx_plugin_libs.appup.src index cbc9eaed3..f463631fd 100644 --- a/apps/emqx_plugin_libs/src/emqx_plugin_libs.appup.src +++ b/apps/emqx_plugin_libs/src/emqx_plugin_libs.appup.src @@ -1,8 +1,8 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.4.6", - [{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}]}, + [{"4.4.7",[{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}]}, + {"4.4.6",[{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}]}, {<<"4\\.4\\.[3-5]">>, [{load_module,emqx_trace,brutal_purge,soft_purge,[]}, {load_module,emqx_trace_api,brutal_purge,soft_purge,[]}, @@ -22,8 +22,8 @@ {update,emqx_slow_subs,{advanced,["4.4.0"]}}, {load_module,emqx_slow_subs_api,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], - [{"4.4.6", - [{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}]}, + [{"4.4.7",[{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}]}, + {"4.4.6",[{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}]}, {<<"4\\.4\\.[3-5]">>, [{load_module,emqx_trace,brutal_purge,soft_purge,[]}, {load_module,emqx_trace_api,brutal_purge,soft_purge,[]}, diff --git a/apps/emqx_plugin_libs/src/emqx_plugin_libs_ssl.erl b/apps/emqx_plugin_libs/src/emqx_plugin_libs_ssl.erl index 4526dfb37..15588ab76 100644 --- a/apps/emqx_plugin_libs/src/emqx_plugin_libs_ssl.erl +++ b/apps/emqx_plugin_libs/src/emqx_plugin_libs_ssl.erl @@ -18,6 +18,7 @@ -export([save_files_return_opts/2, save_files_return_opts/3, + save_files_return_opts/4, save_file/2 ]). @@ -42,11 +43,18 @@ -type opt_key() :: keyfile | certfile | cacertfile | verify | versions | ciphers. -type opt_value() :: term(). -type opts() :: [{opt_key(), opt_value()}]. +-type dirname() :: atom() | string() | binary(). %% @doc Parse ssl options input. %% If the input contains file content, save the files in the given dir. %% Returns ssl options for Erlang's ssl application. --spec save_files_return_opts(opts_input(), atom() | string() | binary(), +-spec save_files_return_opts(opts_input(), dirname(), + string() | binary(), dirname()) -> opts(). +save_files_return_opts(Options, SubDir, ResId, ResSubdir) -> + Dir = filename:join([emqx:get_env(data_dir), SubDir, ResId, ResSubdir]), + save_files_return_opts(Options, Dir). + +-spec save_files_return_opts(opts_input(), dirname(), string() | binary()) -> opts(). save_files_return_opts(Options, SubDir, ResId) -> Dir = filename:join([emqx:get_env(data_dir), SubDir, ResId]), 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 cdf8fb959..2b0493d3b 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.appup.src @@ -1,14 +1,18 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{<<"4\\.4\\.1[3-4]">>, - [{load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, + [{"4.4.15", + [{load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}]}, + {<<"4\\.4\\.1[3-4]">>, + [{load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_monitor,brutal_purge,soft_purge,[]}, - {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]} - ]}, + {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}]}, {"4.4.12", - [{load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_monitor,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, @@ -16,7 +20,8 @@ {update,emqx_rule_engine_jwt_sup,supervisor}, {load_module,emqx_rule_engine_jwt,brutal_purge,soft_purge,[]}]}, {"4.4.11", - [{load_module,emqx_rule_engine_jwt_worker,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_engine_jwt_worker,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_monitor,brutal_purge,soft_purge,[]}, {update,emqx_rule_engine_jwt_sup,supervisor}, @@ -25,10 +30,10 @@ {load_module,emqx_rule_engine_sup,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}, {apply,{emqx_rule_engine_sup,ensure_api_delegator_started,[]}}, - {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]} - ]}, + {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}]}, {"4.4.10", - [{add_module,emqx_rule_engine_jwt}, + [{load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, + {add_module,emqx_rule_engine_jwt}, {add_module,emqx_rule_engine_jwt_worker}, {add_module,emqx_rule_engine_jwt_sup}, {load_module,emqx_rule_actions,brutal_purge,soft_purge,[]}, @@ -45,7 +50,8 @@ {load_module,emqx_rule_funcs,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}]}, {"4.4.9", - [{add_module,emqx_rule_engine_jwt}, + [{load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, + {add_module,emqx_rule_engine_jwt}, {add_module,emqx_rule_engine_jwt_worker}, {add_module,emqx_rule_engine_jwt_sup}, {load_module,emqx_rule_actions,brutal_purge,soft_purge,[]}, @@ -232,14 +238,18 @@ {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], - [{<<"4\\.4\\.1[3-4]">>, - [{load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, + [{"4.4.15", + [{load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}]}, + {<<"4\\.4\\.1[3-4]">>, + [{load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_monitor,brutal_purge,soft_purge,[]}, - {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]} - ]}, + {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}]}, {"4.4.12", - [{load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_registry,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_monitor,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}, @@ -247,7 +257,8 @@ {update,emqx_rule_engine_jwt_sup,supervisor}, {load_module,emqx_rule_engine_jwt,brutal_purge,soft_purge,[]}]}, {"4.4.11", - [{load_module,emqx_rule_engine_jwt_worker,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_engine_jwt_worker,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_events,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_monitor,brutal_purge,soft_purge,[]}, {update,emqx_rule_engine_jwt_sup,supervisor}, @@ -258,7 +269,8 @@ {load_module,emqx_rule_engine_api,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_engine,brutal_purge,soft_purge,[]}]}, {"4.4.10", - [{load_module,emqx_rule_actions,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_actions,brutal_purge,soft_purge,[]}, {apply,{emqx_rule_engine_sup,ensure_api_delegator_stopped,[]}}, {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_monitor,brutal_purge,soft_purge,[]}, @@ -276,7 +288,8 @@ {delete_module,emqx_rule_engine_jwt_worker}, {delete_module,emqx_rule_engine_jwt}]}, {"4.4.9", - [{load_module,emqx_rule_actions,brutal_purge,soft_purge,[]}, + [{load_module,emqx_rule_runtime,brutal_purge,soft_purge,[]}, + {load_module,emqx_rule_actions,brutal_purge,soft_purge,[]}, {apply,{emqx_rule_engine_sup,ensure_api_delegator_stopped,[]}}, {load_module,emqx_rule_utils,brutal_purge,soft_purge,[]}, {load_module,emqx_rule_monitor,brutal_purge,soft_purge,[]}, diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine.erl b/apps/emqx_rule_engine/src/emqx_rule_engine.erl index a3bb4f992..03ae80bd9 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.erl @@ -493,13 +493,16 @@ delete_resource(ResId) -> case emqx_rule_registry:remove_resource(ResId) of ok -> _ = ?CLUSTER_CALL(clear_resource, [ModD, Destroy, ResId, ResType]), - ok; + emqx_plugin_libs_ssl:maybe_delete_dir("rules", ResId); {error, _} = R -> R end catch throw:Reason -> {error, Reason} end; not_found -> + %% always try to remove the dir as the resource might be created but have + %% not been initialized yet. + emqx_plugin_libs_ssl:maybe_delete_dir("rules", ResId), {error, not_found} end. @@ -712,7 +715,9 @@ action_instance_id(ActionName) -> iolist_to_binary([atom_to_list(ActionName), "_", integer_to_list(erlang:system_time())]). init_resource(Module, OnCreate, ResId, Config) -> - Params = ?RAISE(Module:OnCreate(ResId, Config), {Module, OnCreate}), + Params = ?RAISE(Module:OnCreate(ResId, Config), + emqx_plugin_libs_ssl:maybe_delete_dir("rules", ResId), + {Module, OnCreate}), ResParams = #resource_params{id = ResId, params = Params, status = #{is_alive => true}}, diff --git a/apps/emqx_rule_engine/src/emqx_rule_runtime.erl b/apps/emqx_rule_engine/src/emqx_rule_runtime.erl index d83731765..f8927dd05 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_runtime.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_runtime.erl @@ -265,6 +265,8 @@ take_action(#action_instance{id = Id, name = ActName, fallbacks = Fallbacks} = A emqx_rule_metrics:inc_actions_taken(Id), apply_action_func(Selected, Envs, Apply, ActName) of + badact_quiet -> + handle_action_failure(OnFailed, Id, Fallbacks, Selected, Envs, badact_quiet); {badact, Reason} -> handle_action_failure(OnFailed, Id, Fallbacks, Selected, Envs, Reason); Result -> Result @@ -320,11 +322,13 @@ wait_action_on(Id, RetryN) -> end. handle_action_failure(continue, _Id, Fallbacks, Selected, Envs = #{metadata := Metadata}, Reason) -> - ?LOG_RULE_ACTION(error, Metadata, "Continue next action, reason: ~0p", [Reason]), + Reason =/= badact_quiet andalso + ?LOG_RULE_ACTION(error, Metadata, "Continue next action, reason: ~0p", [Reason]), _ = take_actions(Fallbacks, Selected, Envs, continue), failed; handle_action_failure(stop, Id, Fallbacks, Selected, Envs = #{metadata := Metadata}, Reason) -> - ?LOG_RULE_ACTION(error, Metadata, "Skip all actions, reason: ~0p", [Reason]), + Reason =/= badact_quiet andalso + ?LOG_RULE_ACTION(error, Metadata, "Skip all actions, reason: ~0p", [Reason]), _ = take_actions(Fallbacks, Selected, Envs, continue), error({take_action_failed, {Id, Reason}}). diff --git a/apps/emqx_web_hook/src/emqx_web_hook.appup.src b/apps/emqx_web_hook/src/emqx_web_hook.appup.src index b9ed1f687..cf4f5235d 100644 --- a/apps/emqx_web_hook/src/emqx_web_hook.appup.src +++ b/apps/emqx_web_hook/src/emqx_web_hook.appup.src @@ -1,8 +1,8 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.3.16", - [{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, + [{"4.3.17",[{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, + {"4.3.16",[{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, {"4.3.15", [{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]}, {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, @@ -34,8 +34,8 @@ [{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]}, {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], - [{"4.3.16", - [{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, + [{"4.3.17",[{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, + {"4.3.16",[{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, {"4.3.15", [{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]}, {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, diff --git a/apps/emqx_web_hook/src/emqx_web_hook_actions.erl b/apps/emqx_web_hook/src/emqx_web_hook_actions.erl index e8e96748e..351a8ba2b 100644 --- a/apps/emqx_web_hook/src/emqx_web_hook_actions.erl +++ b/apps/emqx_web_hook/src/emqx_web_hook_actions.erl @@ -238,7 +238,6 @@ on_resource_destroy(ResId, #{<<"pool">> := PoolName}) -> ?LOG(info, "Destroying Resource ~p, ResId: ~p", [?RESOURCE_TYPE_WEBHOOK, ResId]), case ehttpc_pool:stop_pool(PoolName) of ok -> - emqx_plugin_libs_ssl:maybe_delete_dir("rules", ResId), ?LOG(info, "Destroyed Resource ~p Successfully, ResId: ~p", [?RESOURCE_TYPE_WEBHOOK, ResId]); {error, Reason} -> ?LOG(error, "Destroy Resource ~p failed, ResId: ~p, ~p", [?RESOURCE_TYPE_WEBHOOK, ResId, Reason]), diff --git a/src/emqx_app.erl b/src/emqx_app.erl index 6efa5325d..abbe755f0 100644 --- a/src/emqx_app.erl +++ b/src/emqx_app.erl @@ -156,7 +156,10 @@ get_description() -> case os:getenv("EMQX_DESCRIPTION") of false -> Descr0; "" -> Descr0; - Str -> string:strip(Str, both, $\n) + Str -> + %% We replace the "EMQ X" to "EMQX" incase the description has been + %% loaded to the OS Envs and cannot be changed without reboot. + replace_emq_x_to_emqx(string:strip(Str, both, $\n)) end. get_release() -> @@ -183,3 +186,6 @@ start_autocluster() -> ekka:callback(reboot, fun emqx:reboot/0), _ = ekka:autocluster(?APP), %% returns 'ok' or a pid or 'any()' as in spec ok. + +replace_emq_x_to_emqx(Str) -> + re:replace(Str, "\\bEMQ X\\b", "EMQX", [{return,list}]). diff --git a/src/emqx_relup.erl b/src/emqx_relup.erl index dc453e7ff..33501b8cf 100644 --- a/src/emqx_relup.erl +++ b/src/emqx_relup.erl @@ -33,6 +33,7 @@ post_release_upgrade(FromRelVsn, _) -> ?INFO("emqx has been upgraded from ~s to ~s!", [FromRelVsn, CurrRelVsn]), maybe_refresh_jwt_module(FromRelVsn), _ = maybe_restart_oracle_resources(FromRelVsn), + _ = maybe_start_schema_registry(FromRelVsn), reload_components(). %% What to do after downgraded to an old release vsn. @@ -98,17 +99,9 @@ maybe_refresh_jwt_module(_) -> -ifdef(EMQX_ENTERPRISE). maybe_restart_oracle_resources("4.4." ++ PatchVsn0) -> - try - case list_to_integer(PatchVsn0) of - PatchVsn when PatchVsn =< 14 -> - emqx_rule_engine:start_all_resources_of_type(backend_oracle); - _ -> ok - end - catch - Err:Reason:ST -> - ?INFO("maybe_restart_oracle_resources failed: ~p", [{Err, Reason, ST}]), - ok - end; + do_when_vsn_lte(PatchVsn0, 14, ?FUNCTION_NAME, fun() -> + emqx_rule_engine:start_all_resources_of_type(backend_oracle) + end); maybe_restart_oracle_resources(_) -> ok. @@ -118,3 +111,30 @@ maybe_restart_oracle_resources(_) -> ok. -endif. + +-ifdef(EMQX_ENTERPRISE). +maybe_start_schema_registry("4.4." ++ PatchVsn0) -> + do_when_vsn_lte(PatchVsn0, 15, ?FUNCTION_NAME, fun() -> + emqx_plugins:load(emqx_schema_registry) + end); +maybe_start_schema_registry(_) -> + ok. +-else. +maybe_start_schema_registry(_) -> + ok. +-endif. + +do_when_vsn_lte(SrcVsnStr, TargetVsn, ActionName, Action) -> + try + case list_to_integer(SrcVsnStr) of + Vsn when Vsn =< TargetVsn -> + ?INFO("doing ~p", [ActionName]), + _ = Action(), + ok; + _ -> ok + end + catch + Err:Reason:ST -> + ?INFO("~p failed: ~p", [ActionName, {Err, Reason, ST}]), + ok + end. From 993a18d5087221d3662d6c90a488bf9955e5cd37 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Thu, 9 Mar 2023 20:26:08 +0800 Subject: [PATCH 26/34] fix: nowarn unexported do_when_vsn_lte/4 --- src/emqx_relup.erl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/emqx_relup.erl b/src/emqx_relup.erl index 33501b8cf..b5290963c 100644 --- a/src/emqx_relup.erl +++ b/src/emqx_relup.erl @@ -124,6 +124,7 @@ maybe_start_schema_registry(_) -> ok. -endif. +-compile([{nowarn_unused_function, [{do_when_vsn_lte, 4}]}]). do_when_vsn_lte(SrcVsnStr, TargetVsn, ActionName, Action) -> try case list_to_integer(SrcVsnStr) of From 2ea29feeb7f73aab182e03c7b7583f1be4587858 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Fri, 10 Mar 2023 00:53:02 +0800 Subject: [PATCH 27/34] chore: release v4.4.16-alpha.2 --- 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 75b8a3bfb..ac13b9421 100644 --- a/include/emqx_release.hrl +++ b/include/emqx_release.hrl @@ -29,7 +29,7 @@ -ifndef(EMQX_ENTERPRISE). --define(EMQX_RELEASE, {opensource, "4.4.16-alpha.1"}). +-define(EMQX_RELEASE, {opensource, "4.4.16-alpha.2"}). -else. From 5e67508033316af79156906bbf94a58215af4a35 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Mon, 13 Mar 2023 17:02:27 +0800 Subject: [PATCH 28/34] chore: fix typos --- .github/workflows/build_packages.yaml | 4 ++-- .github/workflows/build_slim_packages.yaml | 4 ++-- src/emqx_vm.erl | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build_packages.yaml b/.github/workflows/build_packages.yaml index bb7cd82cf..4cfa31466 100644 --- a/.github/workflows/build_packages.yaml +++ b/.github/workflows/build_packages.yaml @@ -93,9 +93,9 @@ jobs: ./_build/${{ matrix.profile }}/rel/emqx/bin/emqx stop echo "EMQX stopped" ./_build/${{ matrix.profile }}/rel/emqx/bin/emqx install - echo "EQMX installed" + echo "EMQX installed" ./_build/${{ matrix.profile }}/rel/emqx/bin/emqx uninstall - echo "EQMX uninstaled" + echo "EMQX uninstaled" - uses: actions/upload-artifact@v3 with: name: ${{ matrix.profile }} diff --git a/.github/workflows/build_slim_packages.yaml b/.github/workflows/build_slim_packages.yaml index bb1fca468..089be83a6 100644 --- a/.github/workflows/build_slim_packages.yaml +++ b/.github/workflows/build_slim_packages.yaml @@ -109,9 +109,9 @@ jobs: ./_build/${{ matrix.profile }}/rel/emqx/bin/emqx stop echo "EMQX stopped" ./_build/${{ matrix.profile }}/rel/emqx/bin/emqx install - echo "EQMX installed" + echo "EMQX installed" ./_build/${{ matrix.profile }}/rel/emqx/bin/emqx uninstall - echo "EQMX uninstaled" + echo "EMQX uninstaled" mac: strategy: diff --git a/src/emqx_vm.erl b/src/emqx_vm.erl index b62dba96a..295e4d927 100644 --- a/src/emqx_vm.erl +++ b/src/emqx_vm.erl @@ -380,7 +380,7 @@ read_otp_version() -> Filename = filename:join([ReleasesDir, emqx_app:get_release(), "BUILT_ON"]), case file:read_file(Filename) of {ok, BuiltOn} -> - %% running on EQMX release + %% running on EMQX release BuiltOn; {error, enoent} -> OtpMajor = erlang:system_info(otp_release), From 1b53274fbc14a3a2e0839a7647655d927df5c4c2 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Mon, 13 Mar 2023 17:29:20 +0800 Subject: [PATCH 29/34] chore: make xref happy --- src/emqx_relup.erl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/emqx_relup.erl b/src/emqx_relup.erl index b5290963c..ba74d7b46 100644 --- a/src/emqx_relup.erl +++ b/src/emqx_relup.erl @@ -124,7 +124,7 @@ maybe_start_schema_registry(_) -> ok. -endif. --compile([{nowarn_unused_function, [{do_when_vsn_lte, 4}]}]). +-ifdef(EMQX_ENTERPRISE). do_when_vsn_lte(SrcVsnStr, TargetVsn, ActionName, Action) -> try case list_to_integer(SrcVsnStr) of @@ -139,3 +139,4 @@ do_when_vsn_lte(SrcVsnStr, TargetVsn, ActionName, Action) -> ?INFO("~p failed: ~p", [ActionName, {Err, Reason, ST}]), ok end. +-endif. From 7407b1b6edc9641aebc4541c285f0a67cb22abee Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Tue, 14 Mar 2023 14:42:00 +0800 Subject: [PATCH 30/34] fix: topic rewrite failed if clientid is an atom() --- lib-ce/emqx_modules/src/emqx_mod_rewrite.erl | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib-ce/emqx_modules/src/emqx_mod_rewrite.erl b/lib-ce/emqx_modules/src/emqx_mod_rewrite.erl index c21211d78..c387710f1 100644 --- a/lib-ce/emqx_modules/src/emqx_mod_rewrite.erl +++ b/lib-ce/emqx_modules/src/emqx_mod_rewrite.erl @@ -155,11 +155,11 @@ rewrite(Topic, MP, Dest, Binds) -> NewTopic. fill_client_binds(#{clientid := ClientId, username := Username}) -> - filter_client_binds([{"%c", ClientId}, {"%u", Username}]); + filter_client_binds([{"%c", bin(ClientId)}, {"%u", bin(Username)}]); fill_client_binds(#message{from = ClientId, headers = Headers}) -> Username = maps:get(username, Headers, undefined), - filter_client_binds([{"%c", ClientId}, {"%u", Username}]). + filter_client_binds([{"%c", bin(ClientId)}, {"%u", bin(Username)}]). filter_client_binds(Binds) -> lists:filter(fun({_, undefined}) -> false; @@ -184,3 +184,7 @@ validate_topic(Type, Topic) -> error:Reason -> {error, Reason} end. + +bin(S) when is_binary(S) -> S; +bin(S) when is_list(S) -> list_to_binary(S); +bin(S) when is_atom(S) -> atom_to_binary(S, utf8). From 0c670262e7537126ba051cc5fe54c7ce41d14c9a Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Tue, 14 Mar 2023 16:22:35 +0800 Subject: [PATCH 31/34] chore: update emqx_modules.appup.src --- lib-ce/emqx_modules/src/emqx_modules.appup.src | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib-ce/emqx_modules/src/emqx_modules.appup.src b/lib-ce/emqx_modules/src/emqx_modules.appup.src index 15e5acd2e..46a8822c7 100644 --- a/lib-ce/emqx_modules/src/emqx_modules.appup.src +++ b/lib-ce/emqx_modules/src/emqx_modules.appup.src @@ -1,7 +1,8 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{<<"4\\.4\\.[6-8]">>, + [{"4.4.9",[{load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]}]}, + {<<"4\\.4\\.[6-8]">>, [{load_module,emqx_modules,brutal_purge,soft_purge,[]}, {load_module,emqx_mod_acl_internal,brutal_purge,soft_purge,[]}, {load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}, @@ -38,7 +39,8 @@ {load_module,emqx_mod_sup,brutal_purge,soft_purge,[]} ]}, {<<".*">>,[]}], - [{<<"4\\.4\\.[6-8]">>, + [{"4.4.9",[{load_module,emqx_mod_rewrite,brutal_purge,soft_purge,[]}]}, + {<<"4\\.4\\.[6-8]">>, [{load_module,emqx_modules,brutal_purge,soft_purge,[]}, {load_module,emqx_mod_acl_internal,brutal_purge,soft_purge,[]}, {load_module,emqx_mod_delayed,brutal_purge,soft_purge,[]}, From a6cf261e66c33c8a992ee5693c773436117893ff Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Tue, 14 Mar 2023 21:56:58 +0800 Subject: [PATCH 32/34] chore: add debug logs when auth/acl ignored --- apps/emqx_auth_http/src/emqx_acl_http.erl | 4 +++- apps/emqx_auth_http/src/emqx_auth_http.appup.src | 10 ++++++++-- apps/emqx_auth_http/src/emqx_auth_http.erl | 2 +- apps/emqx_auth_jwt/src/emqx_auth_jwt.appup.src | 6 ++++-- apps/emqx_auth_jwt/src/emqx_auth_jwt.erl | 8 ++++---- apps/emqx_auth_ldap/src/emqx_acl_ldap.erl | 4 +++- apps/emqx_auth_ldap/src/emqx_auth_ldap.appup.src | 10 ++++++++-- apps/emqx_auth_ldap/src/emqx_auth_ldap.erl | 8 +++++--- apps/emqx_auth_mnesia/src/emqx_acl_mnesia.erl | 4 +++- apps/emqx_auth_mnesia/src/emqx_auth_mnesia.appup.src | 10 ++++++++-- apps/emqx_auth_mnesia/src/emqx_auth_mnesia.erl | 8 +++----- apps/emqx_auth_mongo/src/emqx_acl_mongo.erl | 6 ++++-- apps/emqx_auth_mongo/src/emqx_auth_mongo.appup.src | 10 ++++++++-- apps/emqx_auth_mongo/src/emqx_auth_mongo.erl | 7 ++++--- apps/emqx_auth_mysql/src/emqx_acl_mysql.erl | 5 ++++- apps/emqx_auth_mysql/src/emqx_auth_mysql.appup.src | 10 ++++++++-- apps/emqx_auth_mysql/src/emqx_auth_mysql.erl | 8 +++----- apps/emqx_auth_pgsql/src/emqx_acl_pgsql.erl | 5 ++++- apps/emqx_auth_pgsql/src/emqx_auth_pgsql.appup.src | 10 ++++++++-- apps/emqx_auth_pgsql/src/emqx_auth_pgsql.erl | 8 +++----- apps/emqx_auth_redis/src/emqx_acl_redis.erl | 5 ++++- apps/emqx_auth_redis/src/emqx_auth_redis.appup.src | 8 ++++++-- apps/emqx_auth_redis/src/emqx_auth_redis.erl | 6 +++--- 23 files changed, 109 insertions(+), 53 deletions(-) diff --git a/apps/emqx_auth_http/src/emqx_acl_http.erl b/apps/emqx_auth_http/src/emqx_acl_http.erl index e18527179..079e623d7 100644 --- a/apps/emqx_auth_http/src/emqx_acl_http.erl +++ b/apps/emqx_auth_http/src/emqx_acl_http.erl @@ -43,7 +43,9 @@ check_acl(ClientInfo, PubSub, Topic, _AclResult, #{acl := ACLParams = #{path := ClientInfo1 = ClientInfo#{access => access(PubSub), topic => Topic}, Username = maps:get(username, ClientInfo1, undefined), case check_acl_request(ACLParams, ClientInfo1) of - {ok, 200, <<"ignore">>} -> ok; + {ok, 200, <<"ignore">>} -> + ?LOG(debug, "ignored, ~s to topic ~ts, username: ~ts", + [PubSub, Topic, Username]); {ok, 200, _Body} -> ?LOG(debug, "Allow ~s to topic ~ts, username: ~ts", [PubSub, Topic, Username]), diff --git a/apps/emqx_auth_http/src/emqx_auth_http.appup.src b/apps/emqx_auth_http/src/emqx_auth_http.appup.src index 3f167d768..f661c36d2 100644 --- a/apps/emqx_auth_http/src/emqx_auth_http.appup.src +++ b/apps/emqx_auth_http/src/emqx_auth_http.appup.src @@ -1,7 +1,10 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.3.10", + [{"4.3.11", + [{load_module,emqx_auth_http,brutal_purge,soft_purge,[]}, + {load_module,emqx_acl_http,brutal_purge,soft_purge,[]}]}, + {"4.3.10", [{load_module,emqx_auth_http,brutal_purge,soft_purge,[]}, {load_module,emqx_acl_http,brutal_purge,soft_purge,[]}]}, {"4.3.9", @@ -45,7 +48,10 @@ {load_module,emqx_auth_http_cli,brutal_purge,soft_purge,[]}]}, {<<"4.3.[0-1]">>,[{restart_application,emqx_auth_http}]}, {<<".*">>,[]}], - [{"4.3.10", + [{"4.3.11", + [{load_module,emqx_auth_http,brutal_purge,soft_purge,[]}, + {load_module,emqx_acl_http,brutal_purge,soft_purge,[]}]}, + {"4.3.10", [{load_module,emqx_auth_http,brutal_purge,soft_purge,[]}, {load_module,emqx_acl_http,brutal_purge,soft_purge,[]}]}, {"4.3.9", diff --git a/apps/emqx_auth_http/src/emqx_auth_http.erl b/apps/emqx_auth_http/src/emqx_auth_http.erl index c7710ae94..7318688fd 100644 --- a/apps/emqx_auth_http/src/emqx_auth_http.erl +++ b/apps/emqx_auth_http/src/emqx_auth_http.erl @@ -39,7 +39,7 @@ check(ClientInfo, AuthResult, #{auth := AuthParms = #{path := Path}, Username = maps:get(username, ClientInfo, undefined), case authenticate(AuthParms, ClientInfo) of {ok, 200, <<"ignore">>} -> - ok; + ?LOG(debug, "Auth ignored, path: ~ts, username: ~ts", [Path, Username]); {ok, 200, Body} -> ?LOG(debug, "Auth succeeded from path: ~ts, username: ~ts", [Path, Username]), IsSuperuser = is_superuser(SuperParams, ClientInfo), 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 1407592b0..bfd53173d 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.4.8", + [{"4.4.9",[{load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]}]}, + {"4.4.8", [{load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]}, {load_module,emqx_auth_jwt_svr,brutal_purge,soft_purge,[]}]}, {<<"4\\.4\\.[2-7]">>, @@ -9,7 +10,8 @@ {load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]}]}, {<<"4\\.4\\.[0-1]">>,[{restart_application,emqx_auth_jwt}]}, {<<".*">>,[]}], - [{"4.4.8", + [{"4.4.9",[{load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]}]}, + {"4.4.8", [{load_module,emqx_auth_jwt,brutal_purge,soft_purge,[]}, {load_module,emqx_auth_jwt_svr,brutal_purge,soft_purge,[]}]}, {<<"4\\.4\\.[2-7]">>, diff --git a/apps/emqx_auth_jwt/src/emqx_auth_jwt.erl b/apps/emqx_auth_jwt/src/emqx_auth_jwt.erl index dd3b2dbc9..4fed0912e 100644 --- a/apps/emqx_auth_jwt/src/emqx_auth_jwt.erl +++ b/apps/emqx_auth_jwt/src/emqx_auth_jwt.erl @@ -41,15 +41,15 @@ check(ClientInfo, AuthResult, State) -> check_auth(ClientInfo, AuthResult, #{from := From, checklists := Checklists}) -> case maps:find(From, ClientInfo) of error -> - ok; + ?LOG(debug, "Auth ignored, ~p not found in Client: ~p", [From, ClientInfo]); {ok, undefined} -> - ok; + ?LOG(debug, "Auth ignored, ~p undefined, Client: ~p", [From, ClientInfo]); {ok, Token} -> case emqx_auth_jwt_svr:verify(Token) of {error, not_found} -> - ok; + ?LOG_SENSITIVE(debug, "Auth ignored, ~p not_found, Client: ~p", [Token, ClientInfo]); {error, not_token} -> - ok; + ?LOG_SENSITIVE(debug, "Auth ignored, ~p not_token, Client: ~p", [Token, ClientInfo]); {error, Reason} -> ?LOG_SENSITIVE(debug, "Auth from JWT failed, Client: ~p, Reason: ~p", diff --git a/apps/emqx_auth_ldap/src/emqx_acl_ldap.erl b/apps/emqx_auth_ldap/src/emqx_acl_ldap.erl index 8faeed913..554f7c5a9 100644 --- a/apps/emqx_auth_ldap/src/emqx_acl_ldap.erl +++ b/apps/emqx_auth_ldap/src/emqx_acl_ldap.erl @@ -28,7 +28,9 @@ check_acl(ClientInfo, PubSub, Topic, NoMatchAction, State) -> case do_check_acl(ClientInfo, PubSub, Topic, NoMatchAction, State) of - ok -> ok; + ok -> ?LOG_SENSITIVE(debug, + "[LDAP] ACL ignored, Topic: ~p, Action: ~p for Client: ~p", + [Topic, PubSub, ClientInfo]); {stop, allow} -> ?LOG_SENSITIVE(debug, "[LDAP] Allow Topic: ~p, Action: ~p for Client: ~p", diff --git a/apps/emqx_auth_ldap/src/emqx_auth_ldap.appup.src b/apps/emqx_auth_ldap/src/emqx_auth_ldap.appup.src index 01b29895f..0104e9620 100644 --- a/apps/emqx_auth_ldap/src/emqx_auth_ldap.appup.src +++ b/apps/emqx_auth_ldap/src/emqx_auth_ldap.appup.src @@ -1,7 +1,10 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.3.6", + [{"4.3.7", + [{load_module,emqx_auth_ldap,brutal_purge,soft_purge,[]}, + {load_module,emqx_acl_ldap,brutal_purge,soft_purge,[]}]}, + {"4.3.6", [{load_module,emqx_acl_ldap,brutal_purge,soft_purge,[]}, {load_module,emqx_auth_ldap,brutal_purge,soft_purge,[]}]}, {"4.3.5", @@ -24,7 +27,10 @@ {load_module,emqx_acl_ldap,brutal_purge,soft_purge,[]}, {load_module,emqx_auth_ldap_cli,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], - [{"4.3.6", + [{"4.3.7", + [{load_module,emqx_auth_ldap,brutal_purge,soft_purge,[]}, + {load_module,emqx_acl_ldap,brutal_purge,soft_purge,[]}]}, + {"4.3.6", [{load_module,emqx_acl_ldap,brutal_purge,soft_purge,[]}, {load_module,emqx_auth_ldap,brutal_purge,soft_purge,[]}]}, {"4.3.5", diff --git a/apps/emqx_auth_ldap/src/emqx_auth_ldap.erl b/apps/emqx_auth_ldap/src/emqx_auth_ldap.erl index d1d73784d..497d98901 100644 --- a/apps/emqx_auth_ldap/src/emqx_auth_ldap.erl +++ b/apps/emqx_auth_ldap/src/emqx_auth_ldap.erl @@ -59,13 +59,15 @@ check(ClientInfo = #{username := Username, password := Password}, AuthResult, case CheckResult of ok -> ?LOG_SENSITIVE(debug, - "[LDAP] Auth from ldap succeeded, Client: ~p", + "[LDAP] Auth succeeded, Client: ~p", [ClientInfo]), {stop, AuthResult#{auth_result => success, anonymous => false}}; {error, not_found} -> - ok; + ?LOG_SENSITIVE(debug, + "[LDAP] Auth ignored, Client: ~p", + [ClientInfo]); {error, ResultCode} -> - ?LOG_SENSITIVE(error, "[LDAP] Auth from ldap failed: ~p", [ResultCode]), + ?LOG_SENSITIVE(error, "[LDAP] Auth failed: ~p", [ResultCode]), {stop, AuthResult#{auth_result => ResultCode, anonymous => false}} end. diff --git a/apps/emqx_auth_mnesia/src/emqx_acl_mnesia.erl b/apps/emqx_auth_mnesia/src/emqx_acl_mnesia.erl index 928dcc608..9ff52ea85 100644 --- a/apps/emqx_auth_mnesia/src/emqx_acl_mnesia.erl +++ b/apps/emqx_auth_mnesia/src/emqx_acl_mnesia.erl @@ -54,7 +54,9 @@ check_acl(ClientInfo = #{ clientid := Clientid }, PubSub, Topic, _NoMatchAction, [Topic, PubSub, ClientInfo]), {stop, deny}; _ -> - ok + ?LOG_SENSITIVE(debug, + "[Mnesia] ACL ignored, Topic: ~p, Action: ~p for Client: ~p", + [Topic, PubSub, ClientInfo]) end. description() -> "Acl with Mnesia". diff --git a/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.appup.src b/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.appup.src index 36e4437fd..74d194dd3 100644 --- a/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.appup.src +++ b/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.appup.src @@ -1,7 +1,10 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.3.10", + [{"4.3.11", + [{load_module,emqx_auth_mnesia,brutal_purge,soft_purge,[]}, + {load_module,emqx_acl_mnesia,brutal_purge,soft_purge,[]}]}, + {"4.3.10", [{load_module,emqx_auth_mnesia,brutal_purge,soft_purge,[]}, {load_module,emqx_acl_mnesia,brutal_purge,soft_purge,[]}]}, {"4.3.9", @@ -47,7 +50,10 @@ {load_module,emqx_acl_mnesia_cli,brutal_purge,soft_purge,[]}, {load_module,emqx_auth_mnesia_app,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], - [{"4.3.10", + [{"4.3.11", + [{load_module,emqx_auth_mnesia,brutal_purge,soft_purge,[]}, + {load_module,emqx_acl_mnesia,brutal_purge,soft_purge,[]}]}, + {"4.3.10", [{load_module,emqx_auth_mnesia,brutal_purge,soft_purge,[]}, {load_module,emqx_acl_mnesia,brutal_purge,soft_purge,[]}]}, {"4.3.9", diff --git a/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.erl b/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.erl index 35bea5fde..bd1215d70 100644 --- a/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.erl +++ b/apps/emqx_auth_mnesia/src/emqx_auth_mnesia.erl @@ -60,19 +60,17 @@ check(ClientInfo = #{ clientid := Clientid MatchSpec = ets:fun2ms(fun({?TABLE, {clientid, X}, Password, InterTime}) when X =:= Clientid-> Password; ({?TABLE, {username, X}, Password, InterTime}) when X =:= Username andalso X =/= undefined -> Password end), + Info = maps:without([password], ClientInfo), case ets:select(?TABLE, MatchSpec) of [] -> - ok; + ?LOG(debug, "[Mnesia] Auth ignored, Client: ~p", [Info]); List -> case match_password(NPassword, HashType, List) of false -> - Info = maps:without([password], ClientInfo), ?LOG(info, "[Mnesia] Auth from mnesia failed: ~p", [Info]), {stop, AuthResult#{anonymous => false, auth_result => password_error}}; _ -> - ?LOG_SENSITIVE(debug, - "[Mnesia] Auth from mnesia succeeded, Client: ~p", - [ClientInfo]), + ?LOG(debug,"[Mnesia] Auth from mnesia succeeded, Client: ~p", [Info]), {stop, AuthResult#{anonymous => false, auth_result => success}} end end. diff --git a/apps/emqx_auth_mongo/src/emqx_acl_mongo.erl b/apps/emqx_auth_mongo/src/emqx_acl_mongo.erl index 2f069478b..aae7532eb 100644 --- a/apps/emqx_auth_mongo/src/emqx_acl_mongo.erl +++ b/apps/emqx_auth_mongo/src/emqx_acl_mongo.erl @@ -35,7 +35,9 @@ check_acl(ClientInfo, PubSub, Topic, _AclResult, Env = #{aclquery := AclQuery}) maps:from_list(emqx_auth_mongo:replvars(Selector, ClientInfo)) end, SelectorList), case emqx_auth_mongo:query_multi(Pool, Coll, SelectorMapList) of - [] -> ok; + [] -> ?LOG_SENSITIVE(debug, + "[MongoDB] ACL ignored, Topic: ~p, Action: ~p for Client: ~p", + [Topic, PubSub, ClientInfo]); Rows -> try match(ClientInfo, Topic, topics(PubSub, Rows)) of matched -> @@ -50,7 +52,7 @@ check_acl(ClientInfo, PubSub, Topic, _AclResult, Env = #{aclquery := AclQuery}) {stop, deny} catch _Err:Reason-> - ?LOG(error, "[MongoDB] Check mongo ~p ACL failed, got ACL config: ~p, error: :~p", + ?LOG(error, "[MongoDB] ACL ignored, check mongo ~p ACL failed, got ACL config: ~p, error: ~p", [PubSub, Rows, Reason]), ignore end diff --git a/apps/emqx_auth_mongo/src/emqx_auth_mongo.appup.src b/apps/emqx_auth_mongo/src/emqx_auth_mongo.appup.src index b3c2b92ef..9d500d005 100644 --- a/apps/emqx_auth_mongo/src/emqx_auth_mongo.appup.src +++ b/apps/emqx_auth_mongo/src/emqx_auth_mongo.appup.src @@ -1,7 +1,10 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.4.5", + [{"4.4.6", + [{load_module,emqx_auth_mongo,brutal_purge,soft_purge,[]}, + {load_module,emqx_acl_mongo,brutal_purge,soft_purge,[]}]}, + {"4.4.5", [{load_module,emqx_acl_mongo,brutal_purge,soft_purge,[]}, {load_module,emqx_auth_mongo,brutal_purge,soft_purge,[]}]}, {"4.4.4", @@ -22,7 +25,10 @@ {load_module,emqx_auth_mongo,brutal_purge,soft_purge,[]}, {load_module,emqx_acl_mongo,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], - [{"4.4.5", + [{"4.4.6", + [{load_module,emqx_auth_mongo,brutal_purge,soft_purge,[]}, + {load_module,emqx_acl_mongo,brutal_purge,soft_purge,[]}]}, + {"4.4.5", [{load_module,emqx_acl_mongo,brutal_purge,soft_purge,[]}, {load_module,emqx_auth_mongo,brutal_purge,soft_purge,[]}]}, {"4.4.4", diff --git a/apps/emqx_auth_mongo/src/emqx_auth_mongo.erl b/apps/emqx_auth_mongo/src/emqx_auth_mongo.erl index 9ca272c65..94bced3fa 100644 --- a/apps/emqx_auth_mongo/src/emqx_auth_mongo.erl +++ b/apps/emqx_auth_mongo/src/emqx_auth_mongo.erl @@ -52,10 +52,11 @@ check(ClientInfo = #{password := Password}, AuthResult, hash = HashType, selector = Selector} = AuthQuery, Pool = maps:get(pool, Env, ?APP), case query(Pool, Collection, maps:from_list(replvars(Selector, ClientInfo))) of - undefined -> ok; + undefined -> + ?LOG_SENSITIVE(debug, "[MongoDB] Auth ignored, Client: ~p", [ClientInfo]); {error, Reason} -> ?tp(emqx_auth_mongo_check_authn_error, #{error => Reason}), - ?LOG_SENSITIVE(error, "[MongoDB] Can't connect to MongoDB server: ~0p", [Reason]), + ?LOG_SENSITIVE(error, "[MongoDB] Auth failed, Can't connect to MongoDB server: ~0p", [Reason]), {stop, AuthResult#{auth_result => not_authorized, anonymous => false}}; UserMap -> Result = case [maps:get(Field, UserMap, undefined) || Field <- Fields] of @@ -69,7 +70,7 @@ check(ClientInfo = #{password := Password}, AuthResult, ok -> ?tp(emqx_auth_mongo_superuser_check_authn_ok, #{}), ?LOG_SENSITIVE(debug, - "[MongoDB] Auth from mongo succeeded, Client: ~p", + "[MongoDB] Auth succeeded, Client: ~p", [ClientInfo]), {stop, AuthResult#{is_superuser => is_superuser(Pool, SuperQuery, ClientInfo), anonymous => false, diff --git a/apps/emqx_auth_mysql/src/emqx_acl_mysql.erl b/apps/emqx_auth_mysql/src/emqx_acl_mysql.erl index a5b0f86b2..81c34b602 100644 --- a/apps/emqx_auth_mysql/src/emqx_acl_mysql.erl +++ b/apps/emqx_auth_mysql/src/emqx_acl_mysql.erl @@ -28,7 +28,10 @@ check_acl(ClientInfo, PubSub, Topic, NoMatchAction, #{pool := Pool} = State) -> case do_check_acl(Pool, ClientInfo, PubSub, Topic, NoMatchAction, State) of - ok -> ok; + ok -> + ?LOG_SENSITIVE(debug, + "[MySQL] ACL ignored, Topic: ~p, Action: ~p for Client: ~p", + [Topic, PubSub, ClientInfo]); {stop, allow} -> ?LOG_SENSITIVE(debug, "[MySQL] Allow Topic: ~p, Action: ~p for Client: ~p", diff --git a/apps/emqx_auth_mysql/src/emqx_auth_mysql.appup.src b/apps/emqx_auth_mysql/src/emqx_auth_mysql.appup.src index a0a6b036d..8c166751a 100644 --- a/apps/emqx_auth_mysql/src/emqx_auth_mysql.appup.src +++ b/apps/emqx_auth_mysql/src/emqx_auth_mysql.appup.src @@ -1,7 +1,10 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.3.4", + [{"4.3.5", + [{load_module,emqx_auth_mysql,brutal_purge,soft_purge,[]}, + {load_module,emqx_acl_mysql,brutal_purge,soft_purge,[]}]}, + {"4.3.4", [{load_module,emqx_auth_mysql,brutal_purge,soft_purge,[]}, {load_module,emqx_acl_mysql,brutal_purge,soft_purge,[]}, {load_module,emqx_auth_mysql_cli,brutal_purge,soft_purge,[]}]}, @@ -20,7 +23,10 @@ {load_module,emqx_auth_mysql,brutal_purge,soft_purge,[]}, {load_module,emqx_acl_mysql,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], - [{"4.3.4", + [{"4.3.5", + [{load_module,emqx_auth_mysql,brutal_purge,soft_purge,[]}, + {load_module,emqx_acl_mysql,brutal_purge,soft_purge,[]}]}, + {"4.3.4", [{load_module,emqx_auth_mysql,brutal_purge,soft_purge,[]}, {load_module,emqx_acl_mysql,brutal_purge,soft_purge,[]}, {load_module,emqx_auth_mysql_cli,brutal_purge,soft_purge,[]}]}, diff --git a/apps/emqx_auth_mysql/src/emqx_auth_mysql.erl b/apps/emqx_auth_mysql/src/emqx_auth_mysql.erl index 94045e1ad..ca991f008 100644 --- a/apps/emqx_auth_mysql/src/emqx_auth_mysql.erl +++ b/apps/emqx_auth_mysql/src/emqx_auth_mysql.erl @@ -46,16 +46,14 @@ check(ClientInfo = #{password := Password}, AuthResult, end, case CheckPass of ok -> - ?LOG_SENSITIVE(debug, - "[MySQL] Auth from mysql succeeded, Client: ~p", - [ClientInfo]), + ?LOG_SENSITIVE(debug, "[MySQL] Auth succeeded, Client: ~p", [ClientInfo]), {stop, AuthResult#{is_superuser => is_superuser(Pool, SuperQuery, ClientInfo), anonymous => false, auth_result => success}}; {error, not_found} -> - ok; + ?LOG_SENSITIVE(debug, "[MySQL] Auth ignored, Client: ~p", [ClientInfo]); {error, ResultCode} -> - ?LOG_SENSITIVE(error, "[MySQL] Auth from mysql failed: ~p", [ResultCode]), + ?LOG_SENSITIVE(error, "[MySQL] Auth failed: ~p", [ResultCode]), {stop, AuthResult#{auth_result => ResultCode, anonymous => false}} end. diff --git a/apps/emqx_auth_pgsql/src/emqx_acl_pgsql.erl b/apps/emqx_auth_pgsql/src/emqx_acl_pgsql.erl index 1afb93975..f4aa3ddfa 100644 --- a/apps/emqx_auth_pgsql/src/emqx_acl_pgsql.erl +++ b/apps/emqx_auth_pgsql/src/emqx_acl_pgsql.erl @@ -32,7 +32,10 @@ do_check_acl(_Pool, #{username := <<$$, _/binary>>}, _PubSub, _Topic, _NoMatchAc ok; do_check_acl(Pool, ClientInfo, PubSub, Topic, _NoMatchAction, #{acl_query := {AclSql, AclParams}}) -> case emqx_auth_pgsql_cli:equery(Pool, AclSql, AclParams, ClientInfo) of - {ok, _, []} -> ok; + {ok, _, []} -> + ?LOG_SENSITIVE(debug, + "[Postgres] ACL ignored, Topic: ~p, Action: ~p for Client: ~p", + [Topic, PubSub, ClientInfo]); {ok, _, Rows} -> Rules = filter(PubSub, compile(Rows)), case match(ClientInfo, Topic, Rules) of diff --git a/apps/emqx_auth_pgsql/src/emqx_auth_pgsql.appup.src b/apps/emqx_auth_pgsql/src/emqx_auth_pgsql.appup.src index 98826f918..7a661c5c7 100644 --- a/apps/emqx_auth_pgsql/src/emqx_auth_pgsql.appup.src +++ b/apps/emqx_auth_pgsql/src/emqx_auth_pgsql.appup.src @@ -1,7 +1,10 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.4.4", + [{"4.4.5", + [{load_module,emqx_auth_pgsql,brutal_purge,soft_purge,[]}, + {load_module,emqx_acl_pgsql,brutal_purge,soft_purge,[]}]}, + {"4.4.4", [{load_module,emqx_acl_pgsql,brutal_purge,soft_purge,[]}, {load_module,emqx_auth_pgsql,brutal_purge,soft_purge,[]}]}, {"4.4.3", @@ -14,7 +17,10 @@ {load_module,emqx_auth_pgsql,brutal_purge,soft_purge,[]}, {load_module,emqx_auth_pgsql_app,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], - [{"4.4.4", + [{"4.4.5", + [{load_module,emqx_auth_pgsql,brutal_purge,soft_purge,[]}, + {load_module,emqx_acl_pgsql,brutal_purge,soft_purge,[]}]}, + {"4.4.4", [{load_module,emqx_acl_pgsql,brutal_purge,soft_purge,[]}, {load_module,emqx_auth_pgsql,brutal_purge,soft_purge,[]}]}, {"4.4.3", diff --git a/apps/emqx_auth_pgsql/src/emqx_auth_pgsql.erl b/apps/emqx_auth_pgsql/src/emqx_auth_pgsql.erl index 8f75c1279..e7826bc49 100644 --- a/apps/emqx_auth_pgsql/src/emqx_auth_pgsql.erl +++ b/apps/emqx_auth_pgsql/src/emqx_auth_pgsql.erl @@ -45,16 +45,14 @@ check(ClientInfo = #{password := Password}, AuthResult, end, case CheckPass of ok -> - ?LOG_SENSITIVE(debug, - "[Postgres] Auth from pgsql succeeded, Client: ~p", - [ClientInfo]), + ?LOG_SENSITIVE(debug, "[Postgres] Auth succeeded, Client: ~p", [ClientInfo]), {stop, AuthResult#{is_superuser => is_superuser(Pool, SuperQuery, ClientInfo), anonymous => false, auth_result => success}}; {error, not_found} -> - ok; + ?LOG_SENSITIVE(debug, "[Postgres] Auth ignored, Client: ~p", [ClientInfo]); {error, ResultCode} -> - ?LOG_SENSITIVE(error, "[Postgres] Auth from pgsql failed: ~p", [ResultCode]), + ?LOG_SENSITIVE(error, "[Postgres] Auth failed: ~p", [ResultCode]), {stop, AuthResult#{auth_result => ResultCode, anonymous => false}} end. diff --git a/apps/emqx_auth_redis/src/emqx_acl_redis.erl b/apps/emqx_auth_redis/src/emqx_acl_redis.erl index 74a68905c..6c41261c5 100644 --- a/apps/emqx_auth_redis/src/emqx_acl_redis.erl +++ b/apps/emqx_auth_redis/src/emqx_acl_redis.erl @@ -30,7 +30,10 @@ check_acl(#{username := <<$$, _/binary>>}, _PubSub, _Topic, _AclResult, _Config) check_acl(ClientInfo, PubSub, Topic, _AclResult, #{acl_cmd := AclCmd, timeout := Timeout, type := Type, pool := Pool}) -> case emqx_auth_redis_cli:q(Pool, Type, AclCmd, ClientInfo, Timeout) of - {ok, []} -> ok; + {ok, []} -> + ?LOG_SENSITIVE(debug, + "[Redis] ACL ignored, Topic: ~p, Action: ~p for Client: ~p", + [Topic, PubSub, ClientInfo]); {ok, Rules} -> case match(ClientInfo, PubSub, Topic, Rules) of allow -> diff --git a/apps/emqx_auth_redis/src/emqx_auth_redis.appup.src b/apps/emqx_auth_redis/src/emqx_auth_redis.appup.src index 9e99fa763..a2728cfee 100644 --- a/apps/emqx_auth_redis/src/emqx_auth_redis.appup.src +++ b/apps/emqx_auth_redis/src/emqx_auth_redis.appup.src @@ -1,7 +1,9 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.3.5",[{load_module,emqx_auth_redis,brutal_purge,soft_purge,[]}]}, + [{"4.3.5", + [{load_module,emqx_acl_redis,brutal_purge,soft_purge,[]}, + {load_module,emqx_auth_redis,brutal_purge,soft_purge,[]}]}, {"4.3.4", [{load_module,emqx_auth_redis,brutal_purge,soft_purge,[]}, {load_module,emqx_acl_redis,brutal_purge,soft_purge,[]}]}, @@ -20,7 +22,9 @@ {load_module,emqx_auth_redis,brutal_purge,soft_purge,[]}, {load_module,emqx_acl_redis,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], - [{"4.3.5",[{load_module,emqx_auth_redis,brutal_purge,soft_purge,[]}]}, + [{"4.3.5", + [{load_module,emqx_acl_redis,brutal_purge,soft_purge,[]}, + {load_module,emqx_auth_redis,brutal_purge,soft_purge,[]}]}, {"4.3.4", [{load_module,emqx_auth_redis,brutal_purge,soft_purge,[]}, {load_module,emqx_acl_redis,brutal_purge,soft_purge,[]}]}, diff --git a/apps/emqx_auth_redis/src/emqx_auth_redis.erl b/apps/emqx_auth_redis/src/emqx_auth_redis.erl index 2b8f75574..711d85667 100644 --- a/apps/emqx_auth_redis/src/emqx_auth_redis.erl +++ b/apps/emqx_auth_redis/src/emqx_auth_redis.erl @@ -47,15 +47,15 @@ check(ClientInfo = #{password := Password}, AuthResult, end, case CheckPass of ok -> - ?LOG_SENSITIVE(debug, "[Redis] Auth from redis succeeded, Client: ~p", [ClientInfo]), + ?LOG_SENSITIVE(debug, "[Redis] Auth succeeded, Client: ~p", [ClientInfo]), IsSuperuser = is_superuser(Pool, Type, SuperCmd, ClientInfo, Timeout), {stop, AuthResult#{is_superuser => IsSuperuser, anonymous => false, auth_result => success}}; {error, not_found} -> - ok; + ?LOG_SENSITIVE(debug, "[Redis] Auth ignored, Client: ~p", [ClientInfo]); {error, ResultCode} -> - ?LOG_SENSITIVE(error, "[Redis] Auth from redis failed: ~p", [ResultCode]), + ?LOG_SENSITIVE(error, "[Redis] Auth failed: ~p", [ResultCode]), {stop, AuthResult#{auth_result => ResultCode, anonymous => false}} end. From 67e5844ccde48e74f677f9ff03f579012089b274 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Tue, 14 Mar 2023 23:23:46 +0800 Subject: [PATCH 33/34] chore: release 4.4.16-alpha.3 --- 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 ac13b9421..7e1e02d0d 100644 --- a/include/emqx_release.hrl +++ b/include/emqx_release.hrl @@ -29,7 +29,7 @@ -ifndef(EMQX_ENTERPRISE). --define(EMQX_RELEASE, {opensource, "4.4.16-alpha.2"}). +-define(EMQX_RELEASE, {opensource, "4.4.16-alpha.3"}). -else. From 00847170c1b3f2590d4f1e34480ba4ea05749077 Mon Sep 17 00:00:00 2001 From: Shawn <506895667@qq.com> Date: Wed, 15 Mar 2023 19:25:28 +0800 Subject: [PATCH 34/34] chore: release v4.4.16 --- 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 7e1e02d0d..5e85d8510 100644 --- a/include/emqx_release.hrl +++ b/include/emqx_release.hrl @@ -29,7 +29,7 @@ -ifndef(EMQX_ENTERPRISE). --define(EMQX_RELEASE, {opensource, "4.4.16-alpha.3"}). +-define(EMQX_RELEASE, {opensource, "4.4.16"}). -else.