fix(trace api): trace should be ready after create

Fixes:
https://emqx.atlassian.net/browse/EMQX-12276
This commit is contained in:
Kjell Winblad 2024-05-02 11:48:11 +02:00
parent 9576efb716
commit 76ccef7ce3
2 changed files with 8 additions and 6 deletions

View File

@ -405,7 +405,14 @@ code_change(_, State, _Extra) ->
{ok, State}. {ok, State}.
insert_new_trace(Trace) -> insert_new_trace(Trace) ->
transaction(fun emqx_trace_dl:insert_new_trace/1, [Trace]). case transaction(fun emqx_trace_dl:insert_new_trace/1, [Trace]) of
{error, _} = Error ->
Error;
Res ->
%% We call this to ensure the trace is active when we return
check(),
Res
end.
update_trace(Traces) -> update_trace(Traces) ->
Now = now_second(), Now = now_second(),

View File

@ -117,10 +117,7 @@ basic_apply_rule_test_helper(Config, TraceType, StopAfterRender) ->
<<"context">> => Context, <<"context">> => Context,
<<"stop_action_after_template_rendering">> => StopAfterRender <<"stop_action_after_template_rendering">> => StopAfterRender
}, },
emqx_trace:check(),
ok = emqx_trace_handler_SUITE:filesync(TraceName, TraceType),
Now = erlang:system_time(second) - 10, Now = erlang:system_time(second) - 10,
{ok, _} = file:read_file(emqx_trace:log_file(TraceName, Now)),
?assertMatch({ok, _}, call_apply_rule_api(RuleId, Params)), ?assertMatch({ok, _}, call_apply_rule_api(RuleId, Params)),
?retry( ?retry(
_Interval0 = 200, _Interval0 = 200,
@ -239,8 +236,6 @@ t_apply_rule_test_batch_separation_stop_after_render(_Config) ->
SQL SQL
), ),
create_trace(Name, ruleid, RuleID), create_trace(Name, ruleid, RuleID),
emqx_trace:check(),
ok = emqx_trace_handler_SUITE:filesync(Name, ruleid),
Now = erlang:system_time(second) - 10, Now = erlang:system_time(second) - 10,
%% Stop %% Stop
ParmsStopAfterRender = apply_rule_parms(true, Name), ParmsStopAfterRender = apply_rule_parms(true, Name),