From 0d539e91d16c59c84523fe0ce4590a7cc1d13ffb Mon Sep 17 00:00:00 2001 From: Thales Macedo Garitezi Date: Tue, 30 May 2023 17:32:05 -0300 Subject: [PATCH] test(pulsar_producer): attempt to stabilize flaky test https://github.com/emqx/emqx/actions/runs/5125166433/jobs/9218613872?pr=10886#step:7:679 ``` =CRITICAL REPORT==== 30-May-2023::19:38:58.003170 === Run stage failed: error:{badmatch, {timeout, [#{msg => pulsar_producer_bridge_started, '~meta' => #{gl => <97891.472.0>, location => #Fun, node => 'autocluster_node1@127.0.0.1', pid => <97891.787.0>, time => -576460611692219}}]}} Stacktrace: [{emqx_bridge_pulsar_impl_producer_SUITE,'-t_cluster/1-fun-10-', 6, [{file, "/emqx/apps/emqx_bridge_pulsar/test/emqx_bridge_pulsar_impl_producer_SUITE.erl"}, {line,1073}]}, {emqx_bridge_pulsar_impl_producer_SUITE,t_cluster,1, [{file, "/emqx/apps/emqx_bridge_pulsar/test/emqx_bridge_pulsar_impl_producer_SUITE.erl"}, {line,1064}]}] ``` --- apps/emqx/test/emqx_common_test_helpers.erl | 2 +- apps/emqx_bridge/src/emqx_bridge_app.erl | 3 +++ .../test/emqx_bridge_pulsar_impl_producer_SUITE.erl | 10 +++++++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/apps/emqx/test/emqx_common_test_helpers.erl b/apps/emqx/test/emqx_common_test_helpers.erl index f85ed2599..7aaf93c99 100644 --- a/apps/emqx/test/emqx_common_test_helpers.erl +++ b/apps/emqx/test/emqx_common_test_helpers.erl @@ -756,8 +756,8 @@ start_slave(Name, Opts) when is_map(Opts) -> throw(Other) end, pong = net_adm:ping(Node), - setup_node(Node, Opts), ok = snabbkaffe:forward_trace(Node), + setup_node(Node, Opts), Node. %% Node stopping diff --git a/apps/emqx_bridge/src/emqx_bridge_app.erl b/apps/emqx_bridge/src/emqx_bridge_app.erl index daae15a17..e59259c3e 100644 --- a/apps/emqx_bridge/src/emqx_bridge_app.erl +++ b/apps/emqx_bridge/src/emqx_bridge_app.erl @@ -17,6 +17,8 @@ -behaviour(application). +-include_lib("snabbkaffe/include/snabbkaffe.hrl"). + -export([start/2, stop/1]). -export([ @@ -34,6 +36,7 @@ start(_StartType, _StartArgs) -> ok = emqx_bridge:load_hook(), ok = emqx_config_handler:add_handler(?LEAF_NODE_HDLR_PATH, ?MODULE), ok = emqx_config_handler:add_handler(?TOP_LELVE_HDLR_PATH, emqx_bridge), + ?tp(emqx_bridge_app_started, #{}), {ok, Sup}. stop(_State) -> diff --git a/apps/emqx_bridge_pulsar/test/emqx_bridge_pulsar_impl_producer_SUITE.erl b/apps/emqx_bridge_pulsar/test/emqx_bridge_pulsar_impl_producer_SUITE.erl index a5c04160c..9dc2f05d6 100644 --- a/apps/emqx_bridge_pulsar/test/emqx_bridge_pulsar_impl_producer_SUITE.erl +++ b/apps/emqx_bridge_pulsar/test/emqx_bridge_pulsar_impl_producer_SUITE.erl @@ -1064,9 +1064,17 @@ t_cluster(Config) -> ?check_trace( begin Nodes = [N1, N2 | _] = start_cluster(Cluster), + %% wait until bridge app supervisor is up; by that point, + %% `emqx_config_handler:add_handler' has been called and the node should be + %% ready to create bridges. + NumNodes = length(Nodes), + {ok, _} = snabbkaffe:block_until( + ?match_n_events(NumNodes, #{?snk_kind := emqx_bridge_app_started}), + 15_000 + ), {ok, SRef0} = snabbkaffe:subscribe( ?match_event(#{?snk_kind := pulsar_producer_bridge_started}), - length(Nodes), + NumNodes, 15_000 ), {ok, _} = erpc:call(N1, fun() -> create_bridge(Config) end),