From b7fe87d76108c35a75da98d94a9aee7c424cf9ef Mon Sep 17 00:00:00 2001 From: Thales Macedo Garitezi Date: Wed, 14 Sep 2022 16:17:16 -0300 Subject: [PATCH 1/4] ci: enable running test cases and cover for main-v4.x An attempt to make Coveralls bot to identify and report coverage changes in `main-v4.{3,4}`-based PRs. Currently, `master`-based PRs get their reports correctly. When one checks such a report, e.g.: https://coveralls.io/builds/52535695 , it identifies if coverage increased or decreased relative to the base branch. `main-v4.x`-based PRs, however, always seem to report as "first builds", so it doesn't report if coverage increased or decreased. E.g.: https://coveralls.io/builds/52541065 . The reason _could be_ that, currently, `main-v4.x` branches do not build themselves. That is, PRs run the test + cover analysis, as usual, but once they're merged, tests (and thus coverage analysis) do not run. And that _could be_ why the tool can't see if coverage increased or decreased with such PR. --- .github/workflows/build_slim_packages.yaml | 2 +- .github/workflows/run_test_cases.yaml | 4 ++++ rebar.config.erl | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_slim_packages.yaml b/.github/workflows/build_slim_packages.yaml index b5a8623ef..18d2d5a54 100644 --- a/.github/workflows/build_slim_packages.yaml +++ b/.github/workflows/build_slim_packages.yaml @@ -59,7 +59,7 @@ jobs: with: name: rebar3.crashdump path: ./rebar3.crashdump - - name: pakcages test + - name: packages test run: | export CODE_PATH=$GITHUB_WORKSPACE .ci/build_packages/tests.sh diff --git a/.github/workflows/run_test_cases.yaml b/.github/workflows/run_test_cases.yaml index 96cce885a..04391f06c 100644 --- a/.github/workflows/run_test_cases.yaml +++ b/.github/workflows/run_test_cases.yaml @@ -5,6 +5,8 @@ on: tags: - v* - e* + branches: + - 'main-v4.?' pull_request: jobs: @@ -26,6 +28,7 @@ jobs: run_common_test: runs-on: ${{ matrix.runs-on }} strategy: + fail-fast: false matrix: runs-on: - aws-amd64 @@ -110,6 +113,7 @@ jobs: - name: run cover run: | printenv > .env + docker exec -i erlang bash -c "git config --global --add safe.directory /emqx" docker exec -i erlang bash -c "make cover" docker exec --env-file .env -i erlang bash -c "make coveralls" - name: cat rebar.crashdump diff --git a/rebar.config.erl b/rebar.config.erl index 841399a73..1f7731462 100644 --- a/rebar.config.erl +++ b/rebar.config.erl @@ -103,7 +103,7 @@ plugins(HasElixir) -> test_plugins() -> [ rebar3_proper, - {coveralls, {git, "https://github.com/emqx/coveralls-erl", {branch, "fix-git-info"}}} + {coveralls, {git, "https://github.com/emqx/coveralls-erl", {tag, "v2.2.0-emqx-1"}}} ]. test_deps() -> From cb607f760aca92fba653b143557db119924b7b89 Mon Sep 17 00:00:00 2001 From: William Yang Date: Fri, 16 Sep 2022 21:33:07 +0200 Subject: [PATCH 2/4] perf(TLS): hibernate TLS process after 5s --- etc/emqx.conf | 6 ++++++ priv/emqx.schema | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/etc/emqx.conf b/etc/emqx.conf index f7dccfd27..19f85a877 100644 --- a/etc/emqx.conf +++ b/etc/emqx.conf @@ -1651,6 +1651,12 @@ listener.ssl.external.reuseaddr = true ## Value: true | false ## listener.ssl.external.gc_after_handshake = false +## hibernate the SSL process after idling for amount of time +## Default: undefined (off) +## +## Value: Duration +## listener.ssl.external.hibernate_after = 5s + ##-------------------------------------------------------------------- ## External WebSocket listener for MQTT protocol diff --git a/priv/emqx.schema b/priv/emqx.schema index b6b267abf..1b5232b51 100644 --- a/priv/emqx.schema +++ b/priv/emqx.schema @@ -1604,6 +1604,11 @@ end}. {datatype, {enum, [true, false]}} ]}. +{mapping, "listener.ssl.$name.hibernate_after", "emqx.listeners", [ + {default, undefined}, + {datatype, {duration, ms}} +]}. + %%-------------------------------------------------------------------- %% MQTT/WebSocket Listeners @@ -2228,7 +2233,8 @@ end}. {reuse_sessions, cuttlefish:conf_get(Prefix ++ ".reuse_sessions", Conf, undefined)}, {honor_cipher_order, cuttlefish:conf_get(Prefix ++ ".honor_cipher_order", Conf, undefined)}, {log_level, cuttlefish:conf_get(Prefix ++ ".log_level", Conf, undefined)}, - {gc_after_handshake, cuttlefish:conf_get(Prefix ++ ".gc_after_handshake", Conf, undefined)} + {gc_after_handshake, cuttlefish:conf_get(Prefix ++ ".gc_after_handshake", Conf, undefined)}, + {hibernate_after, cuttlefish:conf_get(Prefix ++ ".hibernate_after", Conf, undefined)} ]) end, From fae590b95771017994efc7a6b63e84f463ba3f46 Mon Sep 17 00:00:00 2001 From: William Yang Date: Fri, 16 Sep 2022 21:42:03 +0200 Subject: [PATCH 3/4] docs(TLS): update change log --- CHANGES-4.3.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGES-4.3.md b/CHANGES-4.3.md index 247e15dd7..e14b7371e 100644 --- a/CHANGES-4.3.md +++ b/CHANGES-4.3.md @@ -9,6 +9,12 @@ File format: - Use weight-2 heading for releases - One list item per change topic Change log ends with a list of GitHub PRs +## v4.3.21 + +### Enhancements + +- TLS listener memory usage optimization + new option 'hibernate_after' to hibernate TLS process after idling ## v4.3.20 From cdadc8ad448169b1dc9614e57aa5db10bed378f3 Mon Sep 17 00:00:00 2001 From: William Yang Date: Mon, 19 Sep 2022 09:30:35 +0200 Subject: [PATCH 4/4] chore: update appup src --- src/emqx.appup.src | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/src/emqx.appup.src b/src/emqx.appup.src index ecad06bf9..600c87d8d 100644 --- a/src/emqx.appup.src +++ b/src/emqx.appup.src @@ -26,7 +26,8 @@ {load_module,emqx_message,brutal_purge,soft_purge,[]}, {load_module,emqx_cm,brutal_purge,soft_purge,[]}]}, {"4.3.19", - [{load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, + [{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, + {load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, {load_module,emqx_router,brutal_purge,soft_purge,[]}, {load_module,emqx_tracer,brutal_purge,soft_purge,[]}, {load_module,emqx_ws_connection,brutal_purge,soft_purge,[]}, @@ -40,7 +41,8 @@ {load_module,emqx_plugins,brutal_purge,soft_purge,[]}, {load_module,emqx_channel,brutal_purge,soft_purge,[]}]}, {"4.3.18", - [{load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, + [{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, + {load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, {load_module,emqx_router,brutal_purge,soft_purge,[]}, {load_module,emqx_tracer,brutal_purge,soft_purge,[]}, {load_module,emqx_ws_connection,brutal_purge,soft_purge,[]}, @@ -54,7 +56,8 @@ {load_module,emqx_app,brutal_purge,soft_purge,[]}, {load_module,emqx_plugins,brutal_purge,soft_purge,[]}]}, {"4.3.17", - [{load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, + [{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, + {load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, {load_module,emqx_router,brutal_purge,soft_purge,[]}, {load_module,emqx_tracer,brutal_purge,soft_purge,[]}, {load_module,emqx_ws_connection,brutal_purge,soft_purge,[]}, @@ -73,7 +76,8 @@ {load_module,emqx_plugins,brutal_purge,soft_purge,[]}, {load_module,emqx_access_control,brutal_purge,soft_purge,[]}]}, {"4.3.16", - [{load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, + [{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, + {load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, {load_module,emqx_router,brutal_purge,soft_purge,[]}, {load_module,emqx_tracer,brutal_purge,soft_purge,[]}, {load_module,emqx_ws_connection,brutal_purge,soft_purge,[]}, @@ -99,7 +103,8 @@ {load_module,emqx_mqtt_caps,brutal_purge,soft_purge,[]}, {load_module,emqx_topic,brutal_purge,soft_purge,[]}]}, {"4.3.15", - [{load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, + [{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, + {load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, {load_module,emqx_router,brutal_purge,soft_purge,[]}, {load_module,emqx_tracer,brutal_purge,soft_purge,[]}, {load_module,emqx_ws_connection,brutal_purge,soft_purge,[]}, @@ -132,7 +137,8 @@ {update,emqx_os_mon,{advanced,[]}}, {load_module,emqx_app,brutal_purge,soft_purge,[]}]}, {"4.3.14", - [{load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, + [{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, + {load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, {load_module,emqx_router,brutal_purge,soft_purge,[]}, {load_module,emqx_tracer,brutal_purge,soft_purge,[]}, {load_module,emqx_ws_connection,brutal_purge,soft_purge,[]}, @@ -838,7 +844,8 @@ {load_module,emqx_message,brutal_purge,soft_purge,[]}, {load_module,emqx_cm,brutal_purge,soft_purge,[]}]}, {"4.3.19", - [{load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, + [{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, + {load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, {load_module,emqx_router,brutal_purge,soft_purge,[]}, {load_module,emqx_tracer,brutal_purge,soft_purge,[]}, {load_module,emqx_ws_connection,brutal_purge,soft_purge,[]}, @@ -852,7 +859,8 @@ {load_module,emqx_plugins,brutal_purge,soft_purge,[]}, {load_module,emqx_channel,brutal_purge,soft_purge,[]}]}, {"4.3.18", - [{load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, + [{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, + {load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, {load_module,emqx_router,brutal_purge,soft_purge,[]}, {load_module,emqx_tracer,brutal_purge,soft_purge,[]}, {load_module,emqx_ws_connection,brutal_purge,soft_purge,[]}, @@ -866,7 +874,8 @@ {load_module,emqx_app,brutal_purge,soft_purge,[]}, {load_module,emqx_plugins,brutal_purge,soft_purge,[]}]}, {"4.3.17", - [{load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, + [{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, + {load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, {load_module,emqx_router,brutal_purge,soft_purge,[]}, {load_module,emqx_tracer,brutal_purge,soft_purge,[]}, {load_module,emqx_ws_connection,brutal_purge,soft_purge,[]}, @@ -885,7 +894,8 @@ {load_module,emqx_plugins,brutal_purge,soft_purge,[]}, {load_module,emqx_access_control,brutal_purge,soft_purge,[]}]}, {"4.3.16", - [{load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, + [{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, + {load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, {load_module,emqx_router,brutal_purge,soft_purge,[]}, {load_module,emqx_tracer,brutal_purge,soft_purge,[]}, {load_module,emqx_ws_connection,brutal_purge,soft_purge,[]}, @@ -911,7 +921,8 @@ {apply,{emqx_exclusive_subscription,on_delete_module,[]}}, {delete_module,emqx_exclusive_subscription}]}, {"4.3.15", - [{load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, + [{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, + {load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, {load_module,emqx_router,brutal_purge,soft_purge,[]}, {load_module,emqx_tracer,brutal_purge,soft_purge,[]}, {load_module,emqx_ws_connection,brutal_purge,soft_purge,[]}, @@ -943,7 +954,8 @@ {load_module,emqx_os_mon,brutal_purge,soft_purge,[]}, {load_module,emqx_app,brutal_purge,soft_purge,[]}]}, {"4.3.14", - [{load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, + [{load_module,emqx_listeners,brutal_purge,soft_purge,[]}, + {load_module,emqx_router_helper,brutal_purge,soft_purge,[]}, {load_module,emqx_router,brutal_purge,soft_purge,[]}, {load_module,emqx_tracer,brutal_purge,soft_purge,[]}, {load_module,emqx_ws_connection,brutal_purge,soft_purge,[]},