From d8fa65ea09ea840c7f53f5bb087b923236745df6 Mon Sep 17 00:00:00 2001 From: William Yang Date: Fri, 13 Jan 2023 14:26:28 +0100 Subject: [PATCH] fix(quic): handle timeout event in data stream --- apps/emqx/src/emqx_quic_connection.erl | 3 +++ apps/emqx/src/emqx_quic_data_stream.erl | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/emqx/src/emqx_quic_connection.erl b/apps/emqx/src/emqx_quic_connection.erl index 39d6a2c2f..a77ec28f2 100644 --- a/apps/emqx/src/emqx_quic_connection.erl +++ b/apps/emqx/src/emqx_quic_connection.erl @@ -280,6 +280,9 @@ handle_info({'EXIT', Pid, Reason}, #{streams := Streams} = S) -> Reason =:= killed -> {ok, S}; + true -> + ?SLOG(info, #{message => "Data stream unexpected exit", reason => Reason}), + {ok, S}; false -> {stop, unknown_pid_down, S} end. diff --git a/apps/emqx/src/emqx_quic_data_stream.erl b/apps/emqx/src/emqx_quic_data_stream.erl index 2e90edcfb..0b89870a8 100644 --- a/apps/emqx/src/emqx_quic_data_stream.erl +++ b/apps/emqx/src/emqx_quic_data_stream.erl @@ -233,7 +233,11 @@ do_handle_appl_msg({event, updated}, S) -> handle_info(Deliver = {deliver, _, _}, S) -> Delivers = [Deliver], - with_channel(handle_deliver, [Delivers], S). + with_channel(handle_deliver, [Delivers], S); +handle_info({timeout, Ref, Msg}, S) -> + with_channel(handle_timeout, [Ref, Msg], S); +handle_info(Info, State) -> + with_channel(handle_info, [Info], State). with_channel(Fun, Args, #{channel := Channel, task_queue := Q} = S) when Channel =/= undefined