From 1021088f5f96296ef84636355e51340a9dec1232 Mon Sep 17 00:00:00 2001 From: zhongwencool Date: Thu, 12 Oct 2023 15:23:23 +0800 Subject: [PATCH] fix: 500 error response when downloading non-existent trace files --- apps/emqx_management/src/emqx_mgmt_api_trace.erl | 2 ++ .../test/emqx_mgmt_api_trace_SUITE.erl | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/apps/emqx_management/src/emqx_mgmt_api_trace.erl b/apps/emqx_management/src/emqx_mgmt_api_trace.erl index bcc21a97b..4aff66efc 100644 --- a/apps/emqx_management/src/emqx_mgmt_api_trace.erl +++ b/apps/emqx_management/src/emqx_mgmt_api_trace.erl @@ -552,6 +552,8 @@ group_trace_files(TraceLog, TraceFiles) -> empty; ({ok, _Node, _Bin}) -> nonempty; + ({error, _Node, enoent}) -> + empty; ({error, Node, Reason}) -> ?SLOG(error, #{ msg => "download_trace_log_error", diff --git a/apps/emqx_management/test/emqx_mgmt_api_trace_SUITE.erl b/apps/emqx_management/test/emqx_mgmt_api_trace_SUITE.erl index f4725b453..9b8222d20 100644 --- a/apps/emqx_management/test/emqx_mgmt_api_trace_SUITE.erl +++ b/apps/emqx_management/test/emqx_mgmt_api_trace_SUITE.erl @@ -389,7 +389,16 @@ t_download_empty_trace(_Config) -> ), {error, {{_, 404, _}, _Headers, Body}} = request_api(get, api_path(<<"trace/", Name/binary, "/download">>), [], #{return_all => true}), - ?assertMatch(#{<<"message">> := <<"Trace is empty">>}, emqx_utils_json:decode(Body)). + ?assertMatch(#{<<"message">> := <<"Trace is empty">>}, emqx_utils_json:decode(Body)), + File = emqx_trace:log_file(Name, Now), + ct:pal("FileName: ~p", [File]), + ?assertEqual({ok, <<>>}, file:read_file(File)), + ?assertEqual(ok, file:delete(File)), + %% return 404 if trace file is not found + {error, {{_, 404, _}, _Headers, Body}} = + request_api(get, api_path(<<"trace/", Name/binary, "/download">>), [], #{return_all => true}), + ?assertMatch(#{<<"message">> := <<"Trace is empty">>}, emqx_utils_json:decode(Body)), + ok. to_rfc3339(Second) -> list_to_binary(calendar:system_time_to_rfc3339(Second)).