diff --git a/src/emqx_session.erl b/src/emqx_session.erl index 8612d9f16..0364bde61 100644 --- a/src/emqx_session.erl +++ b/src/emqx_session.erl @@ -165,6 +165,7 @@ -ifdef(TEST). -define(GET_CLIENT_ID(C), maps:get(clientid, C, <<>>)). +-export([dummy/0]). -else. -define(GET_CLIENT_ID(C), maps:get(clientid, C)). -endif. @@ -200,14 +201,20 @@ init_mqueue(Zone) -> %% @doc uprade from 4.3 upgrade(CInfo, S) -> + ?LOG(warning, "upgrading from 4.3", []), [session | Fields] = tuple_to_list(S), #session{} = list_to_tuple([session, ?GET_CLIENT_ID(CInfo) | Fields] ++ [#{}]). %% @doc Downgrade to 4.3 downgrade(#session{} = S) -> + ?LOG(warning, "downgrading to 4.3", []), [session, _ClientID | Fields] = tuple_to_list(S), list_to_tuple([session | lists:reverse(tl(lists:reverse(Fields)))]). +-ifdef(TEST). +dummy() -> + #session{}. +-endif. %%-------------------------------------------------------------------- %% Info, Stats %%-------------------------------------------------------------------- diff --git a/test/emqx_cm_SUITE.erl b/test/emqx_cm_SUITE.erl index 4fcaaf473..84b362c0a 100644 --- a/test/emqx_cm_SUITE.erl +++ b/test/emqx_cm_SUITE.erl @@ -332,15 +332,17 @@ t_discard_session_race(_) -> t_takeover_session(_) -> #{conninfo := ConnInfo} = ?ChanInfo, {error, not_found} = emqx_cm:takeover_session(<<"clientid">>), + Dummy = emqx_session:dummy(), + Downgraded = emqx_session:downgrade(Dummy), erlang:spawn_link(fun() -> ok = emqx_cm:register_channel(<<"clientid">>, self(), ConnInfo), receive {'$gen_call', From, {takeover, 'begin'}} -> - gen_server:reply(From, test), ok + gen_server:reply(From, Dummy), ok end end), timer:sleep(100), - {ok, emqx_connection, _, test} = emqx_cm:takeover_session(<<"clientid">>), + {ok, emqx_connection, _, Downgraded} = emqx_cm:takeover_session(<<"clientid">>), emqx_cm:unregister_channel(<<"clientid">>). t_all_channels(_) ->