From 985f0e6994431b9fba5d1aa26bda14888617ad06 Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Sun, 17 Sep 2023 19:07:04 +0200 Subject: [PATCH 1/5] chore(gen_rpc): upgrade from 2.8.1 to 3.1.0 --- apps/emqx/rebar.config | 2 +- mix.exs | 2 +- rebar.config | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/emqx/rebar.config b/apps/emqx/rebar.config index b64c2181e..ab7ff5079 100644 --- a/apps/emqx/rebar.config +++ b/apps/emqx/rebar.config @@ -29,7 +29,7 @@ {cowboy, {git, "https://github.com/emqx/cowboy", {tag, "2.9.2"}}}, {esockd, {git, "https://github.com/emqx/esockd", {tag, "5.9.6"}}}, {ekka, {git, "https://github.com/emqx/ekka", {tag, "0.15.13"}}}, - {gen_rpc, {git, "https://github.com/emqx/gen_rpc", {tag, "2.8.1"}}}, + {gen_rpc, {git, "https://github.com/emqx/gen_rpc", {tag, "3.1.0"}}}, {hocon, {git, "https://github.com/emqx/hocon.git", {tag, "0.39.16"}}}, {emqx_http_lib, {git, "https://github.com/emqx/emqx_http_lib.git", {tag, "0.5.3"}}}, {pbkdf2, {git, "https://github.com/emqx/erlang-pbkdf2.git", {tag, "2.0.4"}}}, diff --git a/mix.exs b/mix.exs index 749258f3e..114513b85 100644 --- a/mix.exs +++ b/mix.exs @@ -56,7 +56,7 @@ defmodule EMQXUmbrella.MixProject do {:esockd, github: "emqx/esockd", tag: "5.9.6", override: true}, {:rocksdb, github: "emqx/erlang-rocksdb", tag: "1.8.0-emqx-1", override: true}, {:ekka, github: "emqx/ekka", tag: "0.15.13", override: true}, - {:gen_rpc, github: "emqx/gen_rpc", tag: "2.8.1", override: true}, + {:gen_rpc, github: "emqx/gen_rpc", tag: "3.1.0", override: true}, {:grpc, github: "emqx/grpc-erl", tag: "0.6.8", override: true}, {:minirest, github: "emqx/minirest", tag: "1.3.11", override: true}, {:ecpool, github: "emqx/ecpool", tag: "0.5.4", override: true}, diff --git a/rebar.config b/rebar.config index 7a27a59a1..a430dcf65 100644 --- a/rebar.config +++ b/rebar.config @@ -63,7 +63,7 @@ , {esockd, {git, "https://github.com/emqx/esockd", {tag, "5.9.6"}}} , {rocksdb, {git, "https://github.com/emqx/erlang-rocksdb", {tag, "1.8.0-emqx-1"}}} , {ekka, {git, "https://github.com/emqx/ekka", {tag, "0.15.13"}}} - , {gen_rpc, {git, "https://github.com/emqx/gen_rpc", {tag, "2.8.1"}}} + , {gen_rpc, {git, "https://github.com/emqx/gen_rpc", {tag, "3.1.0"}}} , {grpc, {git, "https://github.com/emqx/grpc-erl", {tag, "0.6.8"}}} , {minirest, {git, "https://github.com/emqx/minirest", {tag, "1.3.11"}}} , {ecpool, {git, "https://github.com/emqx/ecpool", {tag, "0.5.4"}}} From 1960dbd970241cf3e39cad594dd59ede4a3ea6c3 Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Sun, 17 Sep 2023 19:13:22 +0200 Subject: [PATCH 2/5] docs: add changelogs for pr 11622 --- changes/ce/fix-11622.en.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changes/ce/fix-11622.en.md diff --git a/changes/ce/fix-11622.en.md b/changes/ce/fix-11622.en.md new file mode 100644 index 000000000..e601fd39a --- /dev/null +++ b/changes/ce/fix-11622.en.md @@ -0,0 +1 @@ +Upgrade rpc library gen_rpc from 2.8.1 to 3.1.0 From d1e5b69eac257cbeeb321fe4fc9384e174d2d942 Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Mon, 18 Sep 2023 17:33:09 +0200 Subject: [PATCH 3/5] test: increase wait time --- apps/emqx/test/emqx_shared_sub_SUITE.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/emqx/test/emqx_shared_sub_SUITE.erl b/apps/emqx/test/emqx_shared_sub_SUITE.erl index 7a7729878..0105765e4 100644 --- a/apps/emqx/test/emqx_shared_sub_SUITE.erl +++ b/apps/emqx/test/emqx_shared_sub_SUITE.erl @@ -513,7 +513,7 @@ test_two_messages(Strategy, Group) -> ok. last_message(ExpectedPayload, Pids) -> - last_message(ExpectedPayload, Pids, 100). + last_message(ExpectedPayload, Pids, 1000). last_message(ExpectedPayload, Pids, Timeout) -> receive From 99b60849b4d6ce6e8d909de23b795f9c32b660bf Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Mon, 18 Sep 2023 20:44:38 +0200 Subject: [PATCH 4/5] test: fix flaky test emqx_falpping_SUITE:t_conf_update_timer --- apps/emqx/src/emqx_cm_sup.erl | 8 ++++++++ apps/emqx/test/emqx_flapping_SUITE.erl | 4 +++- .../test/emqx_bridge_kafka_impl_producer_SUITE.erl | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/apps/emqx/src/emqx_cm_sup.erl b/apps/emqx/src/emqx_cm_sup.erl index 221e78c40..9db73e8e4 100644 --- a/apps/emqx/src/emqx_cm_sup.erl +++ b/apps/emqx/src/emqx_cm_sup.erl @@ -22,6 +22,9 @@ -export([init/1]). +%% for test +-export([restart_flapping/0]). + %%-------------------------------------------------------------------- %% API %%-------------------------------------------------------------------- @@ -59,3 +62,8 @@ child_spec(Mod, Shutdown, Type) -> type => Type, modules => [Mod] }. + +restart_flapping() -> + ok = supervisor:terminate_child(?MODULE, emqx_flapping), + {ok, _} = supervisor:restart_child(?MODULE, emqx_flapping), + ok. diff --git a/apps/emqx/test/emqx_flapping_SUITE.erl b/apps/emqx/test/emqx_flapping_SUITE.erl index 021eaddbf..e580e58e3 100644 --- a/apps/emqx/test/emqx_flapping_SUITE.erl +++ b/apps/emqx/test/emqx_flapping_SUITE.erl @@ -133,7 +133,9 @@ t_conf_update(_) -> ok. t_conf_update_timer(_Config) -> - _ = emqx_flapping:start_link(), + %% delete all zones + ?assertMatch({ok, _}, emqx:update_config([zones], #{})), + emqx_cm_sup:restart_flapping(), validate_timer([{default, true}]), %% change zones {ok, _} = diff --git a/apps/emqx_bridge_kafka/test/emqx_bridge_kafka_impl_producer_SUITE.erl b/apps/emqx_bridge_kafka/test/emqx_bridge_kafka_impl_producer_SUITE.erl index 432ce8697..1dd5adab2 100644 --- a/apps/emqx_bridge_kafka/test/emqx_bridge_kafka_impl_producer_SUITE.erl +++ b/apps/emqx_bridge_kafka/test/emqx_bridge_kafka_impl_producer_SUITE.erl @@ -29,7 +29,7 @@ -include_lib("eunit/include/eunit.hrl"). -include_lib("emqx/include/emqx.hrl"). --include("emqx_dashboard.hrl"). +-include_lib("emqx_dashboard/include/emqx_dashboard.hrl"). -define(HOST, "http://127.0.0.1:18083"). From de93d7101444ac83a77d038c11f3d22c7cdda2e9 Mon Sep 17 00:00:00 2001 From: "Zaiming (Stone) Shi" Date: Mon, 18 Sep 2023 21:54:43 +0200 Subject: [PATCH 5/5] test: fix emqx_sahred_sub_SUITE:t_remote prior to this fix, the peer ct node is actually node itself --- apps/emqx/test/emqx_shared_sub_SUITE.erl | 25 ++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/apps/emqx/test/emqx_shared_sub_SUITE.erl b/apps/emqx/test/emqx_shared_sub_SUITE.erl index 0105765e4..4b4535cea 100644 --- a/apps/emqx/test/emqx_shared_sub_SUITE.erl +++ b/apps/emqx/test/emqx_shared_sub_SUITE.erl @@ -1234,16 +1234,25 @@ setup_node(Node, Port) -> ok end, - %% Load env before doing anything - [ok = rpc:call(Node, application, load, [App]) || App <- [gen_rpc, emqx, ekka, mria]], - - %% Needs to be set explicitly because ekka:start() (which calls `gen` is called without Handler - %% in emqx_common_test_helpers:start_apps(...) - ok = rpc:call(Node, application, set_env, [gen_rpc, tcp_server_port, Port - 1]), - ok = rpc:call(Node, application, set_env, [gen_rpc, port_discovery, manual]), + MyPort = Port - 1, + PeerPort = Port - 2, + ok = pair_gen_rpc(node(), MyPort, PeerPort), + ok = pair_gen_rpc(Node, PeerPort, MyPort), %% Here we start the node and make it join the cluster ok = rpc:call(Node, emqx_common_test_helpers, start_apps, [[], EnvHandler]), - rpc:call(Node, mria, join, [node()]), + %% warm it up, also assert the peer ndoe name + Node = emqx_rpc:call(Node, erlang, node, []), + rpc:call(Node, mria, join, [node()]), + ok. + +pair_gen_rpc(Node, LocalPort, RemotePort) -> + _ = rpc:call(Node, application, load, [gen_rpc]), + ok = rpc:call(Node, application, set_env, [gen_rpc, port_discovery, manual]), + ok = rpc:call(Node, application, set_env, [gen_rpc, tcp_server_port, LocalPort]), + ok = rpc:call(Node, application, set_env, [gen_rpc, tcp_client_port, RemotePort]), + ok = rpc:call(Node, application, set_env, [gen_rpc, default_client_driver, tcp]), + _ = rpc:call(Node, application, stop, [gen_rpc]), + {ok, _} = rpc:call(Node, application, ensure_all_started, [gen_rpc]), ok.