From 796c04e7a8530d97dde5e9e15dcd62e5e05c4f84 Mon Sep 17 00:00:00 2001 From: Thales Macedo Garitezi Date: Thu, 21 Mar 2024 15:47:29 -0300 Subject: [PATCH] test: fix flaky test We should emit the trace event before replying to callers. Example failure: https://github.com/emqx/emqx/actions/runs/8378977952/job/22946318696#step:6:182 ``` =CRITICAL REPORT==== 21-Mar-2024::17:45:37.676024 === "check stage" failed: error {assertMatch,[{module,emqx_ds_storage_bitfield_lts_SUITE}, {line,270}, {expression,"? of_kind ( emqx_ds_replication_layer_egress_flush , Trace )"}, {pattern,"[ # { batch := [ _ , _ , _ ] } ]"}, {value,[]}]} Stacktrace: [{emqx_ds_storage_bitfield_lts_SUITE, '-t_atomic_store_batch/1-fun-1-',1, [{file, "/__w/emqx/emqx/apps/emqx_durable_storage/test/emqx_ds_storage_bitfield_lts_SUITE.erl"}, {line,270}]}, {emqx_ds_storage_bitfield_lts_SUITE,t_atomic_store_batch,1, [{file, "/__w/emqx/emqx/apps/emqx_durable_storage/test/emqx_ds_storage_bitfield_lts_SUITE.erl"}, {line,249}]}] ``` --- .../src/emqx_ds_replication_layer_egress.erl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/emqx_durable_storage/src/emqx_ds_replication_layer_egress.erl b/apps/emqx_durable_storage/src/emqx_ds_replication_layer_egress.erl index 0b0618a80..128aeb380 100644 --- a/apps/emqx_durable_storage/src/emqx_ds_replication_layer_egress.erl +++ b/apps/emqx_durable_storage/src/emqx_ds_replication_layer_egress.erl @@ -161,12 +161,13 @@ do_flush( ) -> case emqx_ds_replication_layer:ra_store_batch(DB, Shard, lists:reverse(Messages)) of ok -> - lists:foreach(fun(From) -> gen_server:reply(From, ok) end, Replies), - true = erlang:garbage_collect(), ?tp( emqx_ds_replication_layer_egress_flush, #{db => DB, shard => Shard, batch => Messages} - ); + ), + lists:foreach(fun(From) -> gen_server:reply(From, ok) end, Replies), + true = erlang:garbage_collect(), + ok; Error -> true = erlang:garbage_collect(), ?tp(