From 773c4645729e57d44eb4b8388ec087f29a63a992 Mon Sep 17 00:00:00 2001 From: zhongwencool Date: Mon, 20 Jun 2022 11:38:51 +0800 Subject: [PATCH 1/4] fix: clean trace zip file after download --- apps/emqx_plugin_libs/src/emqx_plugin_libs.app.src | 2 +- apps/emqx_plugin_libs/src/emqx_plugin_libs.appup.src | 12 ++++++++++-- apps/emqx_plugin_libs/src/emqx_trace/emqx_trace.erl | 5 +++-- .../src/emqx_trace/emqx_trace_api.erl | 4 ++-- 4 files changed, 16 insertions(+), 7 deletions(-) diff --git a/apps/emqx_plugin_libs/src/emqx_plugin_libs.app.src b/apps/emqx_plugin_libs/src/emqx_plugin_libs.app.src index 5fbd21fab..9315f8c53 100644 --- a/apps/emqx_plugin_libs/src/emqx_plugin_libs.app.src +++ b/apps/emqx_plugin_libs/src/emqx_plugin_libs.app.src @@ -1,6 +1,6 @@ {application, emqx_plugin_libs, [{description, "EMQ X Plugin utility libs"}, - {vsn, "4.4.3"}, + {vsn, "4.4.4"}, {modules, []}, {applications, [kernel,stdlib]}, {env, []} diff --git a/apps/emqx_plugin_libs/src/emqx_plugin_libs.appup.src b/apps/emqx_plugin_libs/src/emqx_plugin_libs.appup.src index b183c5e0a..5a8a90d95 100644 --- a/apps/emqx_plugin_libs/src/emqx_plugin_libs.appup.src +++ b/apps/emqx_plugin_libs/src/emqx_plugin_libs.appup.src @@ -1,7 +1,11 @@ %% -*- mode: erlang -*- %% Unless you know what you are doing, DO NOT edit manually!! {VSN, - [{"4.4.2",[{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}]}, + [ + {"4.4.3", + [{load_module,emqx_trace,brutal_purge,soft_purge,[]}, + {load_module,emqx_trace_api,brutal_purge,soft_purge,[]}]}, + {"4.4.2",[{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}]}, {"4.4.1", [{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}, {load_module,emqx_trace,brutal_purge,soft_purge,[]}, @@ -13,7 +17,11 @@ {update,emqx_slow_subs,{advanced,["4.4.0"]}}, {load_module,emqx_slow_subs_api,brutal_purge,soft_purge,[]}]}, {<<".*">>,[]}], - [{"4.4.2",[{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}]}, + [ + {"4.4.3", + [{load_module,emqx_trace,brutal_purge,soft_purge,[]}, + {load_module,emqx_trace_api,brutal_purge,soft_purge,[]}]}, + {"4.4.2",[{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}]}, {"4.4.1", [{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}, {load_module,emqx_trace,brutal_purge,soft_purge,[]}, diff --git a/apps/emqx_plugin_libs/src/emqx_trace/emqx_trace.erl b/apps/emqx_plugin_libs/src/emqx_trace/emqx_trace.erl index 84673b4a7..d2c02d06d 100644 --- a/apps/emqx_plugin_libs/src/emqx_trace/emqx_trace.erl +++ b/apps/emqx_plugin_libs/src/emqx_trace/emqx_trace.erl @@ -226,7 +226,8 @@ handle_info({'DOWN', _Ref, process, Pid, _Reason}, State = #{monitors := Monitor case maps:take(Pid, Monitors) of error -> {noreply, State}; {Files, NewMonitors} -> - lists:foreach(fun file:delete/1, Files), + ZipDir = emqx_trace:zip_dir(), + lists:foreach(fun(F) -> file:delete(filename:join([ZipDir, F])) end, Files), {noreply, State#{monitors => NewMonitors}} end; handle_info({timeout, TRef, update_trace}, @@ -403,7 +404,7 @@ fill_default(Trace = #?TRACE{end_at = undefined, start_at = StartAt}) -> fill_default(Trace#?TRACE{end_at = StartAt + 10 * 60}); fill_default(Trace) -> Trace. --define(NAME_RE, "^[A-Za-z]+[A-Za-z0-9-_]*$"). +-define(NAME_RE, "^[0-9A-Za-z]+[A-Za-z0-9-_]*$"). to_trace(#{name := Name} = Trace, Rec) -> case re:run(Name, ?NAME_RE) of diff --git a/apps/emqx_plugin_libs/src/emqx_trace/emqx_trace_api.erl b/apps/emqx_plugin_libs/src/emqx_trace/emqx_trace_api.erl index b8aa5c059..49321086b 100644 --- a/apps/emqx_plugin_libs/src/emqx_trace/emqx_trace_api.erl +++ b/apps/emqx_plugin_libs/src/emqx_trace/emqx_trace_api.erl @@ -97,9 +97,9 @@ download_zip_log(#{name := Name}, _Param) -> ZipDir = emqx_trace:zip_dir(), Zips = group_trace_file(ZipDir, TraceLog, TraceFiles), ZipFileName0 = binary_to_list(Name) ++ ".zip", - ZipFileName = filename:join([Zips, ZipFileName0]), + ZipFileName = filename:join([ZipDir, ZipFileName0]), {ok, ZipFile} = zip:zip(ZipFileName, Zips, [{cwd, ZipDir}]), - emqx_trace:delete_files_after_send(ZipFileName, Zips), + emqx_trace:delete_files_after_send(ZipFileName0, Zips), {ok, ZipFile}; {error, Reason} -> {error, Reason} From df40e3aaa1144a92ed9cc6edbd8b22a2f35a70e7 Mon Sep 17 00:00:00 2001 From: zhongwencool Date: Mon, 20 Jun 2022 11:41:57 +0800 Subject: [PATCH 2/4] chore: update trace changelog --- CHANGES-4.4.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGES-4.4.md b/CHANGES-4.4.md index dbc42fc3f..cca548ae0 100644 --- a/CHANGES-4.4.md +++ b/CHANGES-4.4.md @@ -5,6 +5,8 @@ ### Enhancements (synced from v4.3.16) * HTTP API `mqtt/publish` support to publish with properties and user_properties. +### Bug fixes +- Clean trace zip files when file has been downloaded. ## v4.4.4 From 040e964956de304994161cf382898df462ef5a5c Mon Sep 17 00:00:00 2001 From: zhongwencool Date: Mon, 20 Jun 2022 14:36:15 +0800 Subject: [PATCH 3/4] fix: appup failed --- apps/emqx_plugin_libs/src/emqx_plugin_libs.appup.src | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/emqx_plugin_libs/src/emqx_plugin_libs.appup.src b/apps/emqx_plugin_libs/src/emqx_plugin_libs.appup.src index 5a8a90d95..3d12e8b8a 100644 --- a/apps/emqx_plugin_libs/src/emqx_plugin_libs.appup.src +++ b/apps/emqx_plugin_libs/src/emqx_plugin_libs.appup.src @@ -5,7 +5,10 @@ {"4.4.3", [{load_module,emqx_trace,brutal_purge,soft_purge,[]}, {load_module,emqx_trace_api,brutal_purge,soft_purge,[]}]}, - {"4.4.2",[{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}]}, + {"4.4.2",[ + {load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}, + {load_module,emqx_trace,brutal_purge,soft_purge,[]}, + {load_module,emqx_trace_api,brutal_purge,soft_purge,[]}]}, {"4.4.1", [{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}, {load_module,emqx_trace,brutal_purge,soft_purge,[]}, @@ -21,7 +24,10 @@ {"4.4.3", [{load_module,emqx_trace,brutal_purge,soft_purge,[]}, {load_module,emqx_trace_api,brutal_purge,soft_purge,[]}]}, - {"4.4.2",[{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}]}, + {"4.4.2", + [{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}, + {load_module,emqx_trace,brutal_purge,soft_purge,[]}, + {load_module,emqx_trace_api,brutal_purge,soft_purge,[]}]}, {"4.4.1", [{load_module,emqx_plugin_libs_ssl,brutal_purge,soft_purge,[]}, {load_module,emqx_trace,brutal_purge,soft_purge,[]}, From d345590206ef3a515c4f40550623730ce102550b Mon Sep 17 00:00:00 2001 From: zhongwencool Date: Wed, 22 Jun 2022 17:35:57 +0800 Subject: [PATCH 4/4] fix: CT failed --- apps/emqx_plugin_libs/test/emqx_trace_SUITE.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/emqx_plugin_libs/test/emqx_trace_SUITE.erl b/apps/emqx_plugin_libs/test/emqx_trace_SUITE.erl index 56b81424e..e444633a7 100644 --- a/apps/emqx_plugin_libs/test/emqx_trace_SUITE.erl +++ b/apps/emqx_plugin_libs/test/emqx_trace_SUITE.erl @@ -133,7 +133,7 @@ t_create_failed(_Config) -> InvalidPackets4 = [{<<"name">>, <<"/test">>}, {<<"clientid">>, <<"t">>}, {<<"type">>, <<"clientid">>}], {error, Reason9} = emqx_trace:create(InvalidPackets4), - ?assertEqual(<<"Name should be ^[A-Za-z]+[A-Za-z0-9-_]*$">>, iolist_to_binary(Reason9)), + ?assertEqual(<<"Name should be ^[0-9A-Za-z]+[A-Za-z0-9-_]*$">>, iolist_to_binary(Reason9)), ?assertEqual({error, "type=[topic,clientid,ip_address] required"}, emqx_trace:create([{<<"name">>, <<"test-name">>}, {<<"clientid">>, <<"good">>}])),