diff --git a/rebar.config b/rebar.config index 7a1444dc1..6df1eacd7 100644 --- a/rebar.config +++ b/rebar.config @@ -8,7 +8,8 @@ {edoc_opts, [{preprocess,true}]}. {erl_opts, [warn_unused_vars,warn_shadow_vars,warn_unused_import, - warn_obsolete_guard,compressed]}. + warn_obsolete_guard,compressed, + {d, snk_kind, msg}]}. {extra_src_dirs, [{"etc", [{recursive,true}]}]}. @@ -53,7 +54,7 @@ , {recon, {git, "https://github.com/ferd/recon", {tag, "2.5.1"}}} , {observer_cli, "1.6.1"} % NOTE: depends on recon 2.5.1 , {getopt, "1.0.1"} - , {snabbkaffe, {git, "https://github.com/kafka4beam/snabbkaffe.git", {tag, "0.12.0"}}} + , {snabbkaffe, {git, "https://github.com/kafka4beam/snabbkaffe.git", {tag, "0.13.0"}}} ]}. {xref_ignores, diff --git a/rebar.config.erl b/rebar.config.erl index c6c9e3409..45a4de818 100644 --- a/rebar.config.erl +++ b/rebar.config.erl @@ -46,6 +46,8 @@ overrides() -> [ {add, [ {extra_src_dirs, [{"etc", [{recursive,true}]}]} , {erl_opts, [{compile_info, [{emqx_vsn, get_vsn()}]}]} ]} + , {add, snabbkaffe, + [{erl_opts, common_compile_opts()}]} ] ++ community_plugin_overrides(). community_plugin_overrides() -> @@ -106,6 +108,7 @@ test_deps() -> common_compile_opts() -> [ debug_info % alwyas include debug_info , {compile_info, [{emqx_vsn, get_vsn()}]} + , {d, snk_kind, msg} ] ++ [{d, 'EMQX_ENTERPRISE'} || is_enterprise()] ++ [{d, 'EMQX_BENCHMARK'} || os:getenv("EMQX_BENCHMARK") =:= "1" ]. diff --git a/src/emqx.appup.src b/src/emqx.appup.src index bfaa63443..5b51723d0 100644 --- a/src/emqx.appup.src +++ b/src/emqx.appup.src @@ -1,6 +1,13 @@ -%% -*-: erlang -*- +%% -*- mode: erlang -*- {VSN, [ + {"4.3.2", [ + {load_module, emqx_logger_textfmt, brutal_purge, soft_purge, []}, + {load_module, emqx_bridge_worker, brutal_purge, soft_purge, []}, + {load_module, emqx_connection, brutal_purge, soft_purge, []}, + {load_module, emqx_cm, brutal_purge, soft_purge, []}, + {load_module, emqx_telemetry, brutal_purge, soft_purge, []} + ]}, {"4.3.1", [ {load_module, emqx_connection, brutal_purge, soft_purge, []}, {load_module, emqx_frame, brutal_purge, soft_purge, []}, diff --git a/src/emqx_logger_textfmt.erl b/src/emqx_logger_textfmt.erl index 3bc9f185a..291153d74 100644 --- a/src/emqx_logger_textfmt.erl +++ b/src/emqx_logger_textfmt.erl @@ -35,15 +35,9 @@ format(#{msg := Msg0, meta := Meta} = Event, Config) -> logger_formatter:format(Event#{msg := Msg}, Config). maybe_merge({report, Report}, Meta) when is_map(Report) -> - {report, maps:merge(rename(Report), filter(Meta))}; + {report, maps:merge(Report, filter(Meta))}; maybe_merge(Report, _Meta) -> Report. filter(Meta) -> maps:without(?WITHOUT_MERGE, Meta). - -rename(#{'$kind' := Kind} = Meta0) -> % snabbkaffe - Meta = maps:remove('$kind', Meta0), - Meta#{msg => Kind}; -rename(Meta) -> - Meta. diff --git a/test/emqx_cm_SUITE.erl b/test/emqx_cm_SUITE.erl index 0cfba4737..eb2c3564f 100644 --- a/test/emqx_cm_SUITE.erl +++ b/test/emqx_cm_SUITE.erl @@ -181,16 +181,20 @@ t_discard_session(_) -> ok = meck:unload(emqx_connection). t_discard_session_race(_) -> - ok = snabbkaffe:start_trace(), - #{conninfo := ConnInfo0} = ?ChanInfo, - ConnInfo = ConnInfo0#{conn_mod := emqx_ws_connection}, - {Pid, Ref} = spawn_monitor(fun() -> receive stop -> exit(normal) end end), - ok = emqx_cm:register_channel(<<"clientid">>, Pid, ConnInfo), - Pid ! stop, - receive {'DOWN', Ref, process, Pid, normal} -> ok end, - ok = emqx_cm:discard_session(<<"clientid">>), - {ok, _} = ?block_until(#{?snk_kind := "session_already_gone", pid := Pid}, 1000), - snabbkaffe:stop(). + ?check_trace( + begin + #{conninfo := ConnInfo0} = ?ChanInfo, + ConnInfo = ConnInfo0#{conn_mod := emqx_ws_connection}, + {Pid, Ref} = spawn_monitor(fun() -> receive stop -> exit(normal) end end), + ok = emqx_cm:register_channel(<<"clientid">>, Pid, ConnInfo), + Pid ! stop, + receive {'DOWN', Ref, process, Pid, normal} -> ok end, + ok = emqx_cm:discard_session(<<"clientid">>), + {ok, _} = ?block_until(#{?snk_kind := "session_already_gone", pid := Pid}, 1000) + end, + fun(_, _) -> + true + end). t_takeover_session(_) -> #{conninfo := ConnInfo} = ?ChanInfo,