From 5a4dd3a5e523378ae9718c086940a674220eca17 Mon Sep 17 00:00:00 2001 From: zhongwencool Date: Thu, 10 Aug 2023 09:35:12 +0800 Subject: [PATCH] fix: truncate large payload --- apps/emqx/src/emqx_packet.erl | 8 ++++---- apps/emqx/src/emqx_trace/emqx_trace_formatter.erl | 8 ++++---- changes/ce/fix-11279.en.md | 1 + 3 files changed, 9 insertions(+), 8 deletions(-) create mode 100644 changes/ce/fix-11279.en.md diff --git a/apps/emqx/src/emqx_packet.erl b/apps/emqx/src/emqx_packet.erl index e3e2229d9..1f7aaa4c9 100644 --- a/apps/emqx/src/emqx_packet.erl +++ b/apps/emqx/src/emqx_packet.erl @@ -620,13 +620,13 @@ format_payload(Payload, hex) when ?MAX_PAYLOAD_FORMAT_LIMIT(Payload) -> ["Payload(hex)=", binary:encode_hex(Payload)]; format_payload(_, hidden) -> "Payload=******"; -format_payload(<> = Payload, _) -> +format_payload(<> = Payload, _) -> [ "Payload=", Part, - "...The ", - integer_to_list(byte_size(Payload) - ?MAX_PAYLOAD_FORMAT_SIZE), - "bytes of this log are truncated" + "... The ", + integer_to_list(byte_size(Payload) - 100), + " bytes of this log are truncated" ]. i(true) -> 1; diff --git a/apps/emqx/src/emqx_trace/emqx_trace_formatter.erl b/apps/emqx/src/emqx_trace/emqx_trace_formatter.erl index 843b502d5..42623e91a 100644 --- a/apps/emqx/src/emqx_trace/emqx_trace_formatter.erl +++ b/apps/emqx/src/emqx_trace/emqx_trace_formatter.erl @@ -76,12 +76,12 @@ format_payload(_, hidden) -> format_payload(Payload, text) when ?MAX_PAYLOAD_FORMAT_LIMIT(Payload) -> unicode:characters_to_list(Payload); format_payload(Payload, hex) when ?MAX_PAYLOAD_FORMAT_LIMIT(Payload) -> binary:encode_hex(Payload); -format_payload(<> = Payload, _) -> +format_payload(<> = Payload, _) -> [ Part, - "...The ", - integer_to_list(byte_size(Payload) - ?MAX_PAYLOAD_FORMAT_SIZE), - "bytes of this log are truncated" + "... The ", + integer_to_list(byte_size(Payload) - 100), + " bytes of this log are truncated" ]. to_iolist(Atom) when is_atom(Atom) -> atom_to_list(Atom); diff --git a/changes/ce/fix-11279.en.md b/changes/ce/fix-11279.en.md new file mode 100644 index 000000000..9f56bf543 --- /dev/null +++ b/changes/ce/fix-11279.en.md @@ -0,0 +1 @@ +Prevent client disconnected when sending large payloads with debug/trace logging is enabled.