Merge pull request #6290 from emqx/sys-mon-more-info-43
feat(sys_mon): Add proc_lib:initial_call/1 and current_stacktrace (4.3) (Same as #6289 ) This adds the information from `proc_lib:initial_call/1` and the current stacktrace from the process info to `emqx_sys_mon:procinfo/1` to aid in debugging some warnings with no context such as the following: ``` 2021-11-23T12:33:59.387818+00:00 [warning] info: [{old_heap_block_size,45988046},{heap_block_size,22177879},{mbuf_size,0},{stack_size,40},{old_heap_size,22354134},{heap_size,7106339}], line: 130, mfa: emqx_sys_mon:handle_info/2, msg: large_heap, procinfo: [{pid,<0.2667.0>},{memory,579763664},{total_heap_size,68510672},{heap_size,22177879},{stack_size,40},{min_heap_size,233},{initial_call,{proc_lib,init_p,5}},{current_function,{gen,do_call,4}},{registered_name,[]},{status,running},{message_queue_len,360945},{group_leader,<0.1660.0>},{priority,normal},{trap_exit,false},{reductions,16493271},{last_calls,false},{catchlevel,4},{trace,0},{suspending,[]},{sequential_trace_token,[]},{error_handler,error_handler}] ```
This commit is contained in:
commit
2e93ec0f3d
|
@ -1,26 +1,16 @@
|
||||||
%% -*-: erlang -*-
|
%% -*- mode: erlang -*-
|
||||||
|
|
||||||
{VSN,
|
{VSN,
|
||||||
[
|
[{"4.3.2",
|
||||||
{"4.3.2", [
|
[{apply,{application,stop,[emqx_auth_http]}},
|
||||||
{apply, {application, stop, [emqx_auth_http]}},
|
|
||||||
{load_module,emqx_auth_http_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_auth_http_app,brutal_purge,soft_purge,[]},
|
||||||
{load_module, emqx_auth_http_cli, brutal_purge, soft_purge,[]}
|
{load_module,emqx_auth_http_cli,brutal_purge,soft_purge,[]}]},
|
||||||
]},
|
{<<"4.3.[0-1]">>,
|
||||||
{<<"4.3.[0-1]">>, [
|
[{restart_application,emqx_auth_http}]},
|
||||||
{restart_application, emqx_auth_http}
|
{<<".*">>,[]}],
|
||||||
]},
|
[{"4.3.2",
|
||||||
{<<".*">>, []}
|
[{apply,{application,stop,[emqx_auth_http]}},
|
||||||
],
|
|
||||||
[
|
|
||||||
{"4.3.2", [
|
|
||||||
{apply, {application, stop, [emqx_auth_http]}},
|
|
||||||
{load_module,emqx_auth_http_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_auth_http_app,brutal_purge,soft_purge,[]},
|
||||||
{load_module, emqx_auth_http_cli, brutal_purge, soft_purge,[]}
|
{load_module,emqx_auth_http_cli,brutal_purge,soft_purge,[]}]},
|
||||||
]},
|
{<<"4.3.[0-1]">>,
|
||||||
{<<"4.3.[0-1]">>, [
|
[{restart_application,emqx_auth_http}]},
|
||||||
{restart_application, emqx_auth_http}
|
{<<".*">>,[]}]}.
|
||||||
]},
|
|
||||||
{<<".*">>, []}
|
|
||||||
]
|
|
||||||
}.
|
|
||||||
|
|
|
@ -1,27 +1,16 @@
|
||||||
%% -*-: erlang -*-
|
%% -*- mode: erlang -*-
|
||||||
{VSN,
|
{VSN,
|
||||||
[
|
[{<<"4\\.3\\.[0-1]">>,
|
||||||
{<<"4\\.3\\.[0-1]">>, [
|
[{restart_application,emqx_lwm2m}]},
|
||||||
{restart_application, emqx_lwm2m}
|
{"4.3.2",
|
||||||
]},
|
[{load_module,emqx_lwm2m_protocol,brutal_purge,soft_purge,[]},
|
||||||
{"4.3.2", [
|
{load_module,emqx_lwm2m_message,brutal_purge,soft_purge,[]}]},
|
||||||
{load_module, emqx_lwm2m_message, brutal_purge, soft_purge, []}
|
{"4.3.3",[{load_module,emqx_lwm2m_protocol,brutal_purge,soft_purge,[]}]},
|
||||||
]},
|
{"4.3.4",[{load_module,emqx_lwm2m_protocol,brutal_purge,soft_purge,[]}]}],
|
||||||
{"4.3.3", []}, %% only config change
|
[{<<"4\\.3\\.[0-1]">>,
|
||||||
{"4.3.4", [
|
[{restart_application,emqx_lwm2m}]},
|
||||||
{load_module, emqx_lwm2m_protocol, brutal_purge, soft_purge, []}
|
{"4.3.2",
|
||||||
]}
|
[{load_module,emqx_lwm2m_protocol,brutal_purge,soft_purge,[]},
|
||||||
],
|
{load_module,emqx_lwm2m_message,brutal_purge,soft_purge,[]}]},
|
||||||
[
|
{"4.3.3",[{load_module,emqx_lwm2m_protocol,brutal_purge,soft_purge,[]}]},
|
||||||
{<<"4\\.3\\.[0-1]">>, [
|
{"4.3.4",[{load_module,emqx_lwm2m_protocol,brutal_purge,soft_purge,[]}]}]}.
|
||||||
{restart_application, emqx_lwm2m}
|
|
||||||
]},
|
|
||||||
{"4.3.2", [
|
|
||||||
{load_module, emqx_lwm2m_message, brutal_purge, soft_purge, []}
|
|
||||||
]},
|
|
||||||
{"4.3.3", []}, %% only config change
|
|
||||||
{"4.3.4", [
|
|
||||||
{load_module, emqx_lwm2m_protocol, brutal_purge, soft_purge, []}
|
|
||||||
]}
|
|
||||||
]
|
|
||||||
}.
|
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
%% -*- mode: erlang -*-
|
%% -*- mode: erlang -*-
|
||||||
{VSN,
|
{VSN,
|
||||||
[{"4.3.2",[{load_module,emqx_stomp_protocol,brutal_purge,soft_purge,[]}]},
|
[{"4.3.2",[{load_module,emqx_stomp_protocol,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.1",[
|
{"4.3.1",
|
||||||
{load_module,emqx_stomp_protocol,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_stomp_protocol,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_stomp_connection,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_stomp_connection,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.0",
|
{"4.3.0",
|
||||||
[{restart_application,emqx_stomp},
|
[{restart_application,emqx_stomp},
|
||||||
{apply,{emqx_stomp,force_clear_after_app_stoped,[]}}]},
|
{apply,{emqx_stomp,force_clear_after_app_stoped,[]}}]},
|
||||||
{<<".*">>,[]}],
|
{<<".*">>,[]}],
|
||||||
[{"4.3.2",[{load_module,emqx_stomp_protocol,brutal_purge,soft_purge,[]}]},
|
[{"4.3.2",[{load_module,emqx_stomp_protocol,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.1",[
|
{"4.3.1",
|
||||||
{load_module,emqx_stomp_protocol,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_stomp_protocol,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_stomp_connection,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_stomp_connection,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.0",
|
{"4.3.0",
|
||||||
[{restart_application,emqx_stomp}]},
|
[{restart_application,emqx_stomp}]},
|
||||||
|
|
|
@ -4,25 +4,31 @@
|
||||||
[{apply,{application,stop,[emqx_web_hook]}},
|
[{apply,{application,stop,[emqx_web_hook]}},
|
||||||
{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.5",[{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
{"4.3.5",
|
||||||
|
[{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
||||||
{<<"4.3.[0-2]">>,
|
{<<"4.3.[0-2]">>,
|
||||||
[{apply,{application,stop,[emqx_web_hook]}},
|
[{apply,{application,stop,[emqx_web_hook]}},
|
||||||
{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_web_hook,brutal_purge,soft_purge,[]},
|
{load_module,emqx_web_hook,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
||||||
{<<"4.3.[3-4]">>,
|
{<<"4.3.[3-4]">>,
|
||||||
[{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
[{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
||||||
{<<".*">>,[]}],
|
{<<".*">>,[]}],
|
||||||
[{"4.3.7",
|
[{"4.3.7",
|
||||||
[{apply,{application,stop,[emqx_web_hook]}},
|
[{apply,{application,stop,[emqx_web_hook]}},
|
||||||
{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.5",[{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
{"4.3.5",
|
||||||
|
[{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
||||||
{<<"4.3.[0-2]">>,
|
{<<"4.3.[0-2]">>,
|
||||||
[{apply,{application,stop,[emqx_web_hook]}},
|
[{apply,{application,stop,[emqx_web_hook]}},
|
||||||
{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_web_hook,brutal_purge,soft_purge,[]},
|
{load_module,emqx_web_hook,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
||||||
{<<"4.3.[3-4]">>,
|
{<<"4.3.[3-4]">>,
|
||||||
[{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
[{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
|
||||||
{<<".*">>,[]}]}.
|
{<<".*">>,[]}]}.
|
||||||
|
|
|
@ -1,13 +1,19 @@
|
||||||
%% -*- mode: erlang -*-
|
%% -*- mode: erlang -*-
|
||||||
{VSN,
|
{VSN,
|
||||||
[{"4.3.11",
|
[{"4.3.11",
|
||||||
[{load_module,emqx_http_lib,brutal_purge,soft_purge,[]}]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.10",
|
{"4.3.10",
|
||||||
[{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_connection,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_connection,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.9",
|
{"4.3.9",
|
||||||
[{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
||||||
|
@ -18,7 +24,9 @@
|
||||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.8",
|
{"4.3.8",
|
||||||
[{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
||||||
|
@ -29,7 +37,9 @@
|
||||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.7",
|
{"4.3.7",
|
||||||
[{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
||||||
|
@ -42,7 +52,9 @@
|
||||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.6",
|
{"4.3.6",
|
||||||
[{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
||||||
|
@ -56,7 +68,9 @@
|
||||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.5",
|
{"4.3.5",
|
||||||
[{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_ws_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_ws_connection,brutal_purge,soft_purge,[]},
|
||||||
|
@ -71,7 +85,9 @@
|
||||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.4",
|
{"4.3.4",
|
||||||
[{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_ws_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_ws_connection,brutal_purge,soft_purge,[]},
|
||||||
|
@ -87,7 +103,9 @@
|
||||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.3",
|
{"4.3.3",
|
||||||
[{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||||
|
@ -104,7 +122,9 @@
|
||||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.2",
|
{"4.3.2",
|
||||||
[{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_packet,brutal_purge,soft_purge,[]},
|
{load_module,emqx_packet,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_shared_sub,brutal_purge,soft_purge,[]},
|
{load_module,emqx_shared_sub,brutal_purge,soft_purge,[]},
|
||||||
|
@ -121,7 +141,9 @@
|
||||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.1",
|
{"4.3.1",
|
||||||
[{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_packet,brutal_purge,soft_purge,[]},
|
{load_module,emqx_packet,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_shared_sub,brutal_purge,soft_purge,[]},
|
{load_module,emqx_shared_sub,brutal_purge,soft_purge,[]},
|
||||||
|
@ -142,7 +164,9 @@
|
||||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.0",
|
{"4.3.0",
|
||||||
[{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||||
|
@ -168,13 +192,19 @@
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||||
{<<".*">>,[]}],
|
{<<".*">>,[]}],
|
||||||
[{"4.3.11",
|
[{"4.3.11",
|
||||||
[{load_module,emqx_http_lib,brutal_purge,soft_purge,[]}]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.10",
|
{"4.3.10",
|
||||||
[{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_connection,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_connection,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.9",
|
{"4.3.9",
|
||||||
[{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
||||||
|
@ -185,7 +215,9 @@
|
||||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.8",
|
{"4.3.8",
|
||||||
[{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
||||||
|
@ -196,7 +228,9 @@
|
||||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.7",
|
{"4.3.7",
|
||||||
[{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
||||||
|
@ -209,7 +243,9 @@
|
||||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.6",
|
{"4.3.6",
|
||||||
[{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
{load_module,emqx_cm,brutal_purge,soft_purge,[]},
|
||||||
|
@ -223,7 +259,9 @@
|
||||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.5",
|
{"4.3.5",
|
||||||
[{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_ws_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_ws_connection,brutal_purge,soft_purge,[]},
|
||||||
|
@ -238,7 +276,9 @@
|
||||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.4",
|
{"4.3.4",
|
||||||
[{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_ws_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_ws_connection,brutal_purge,soft_purge,[]},
|
||||||
|
@ -254,7 +294,9 @@
|
||||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.3",
|
{"4.3.3",
|
||||||
[{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
{load_module,emqx_connection,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
{load_module,emqx_channel,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||||
|
@ -271,7 +313,9 @@
|
||||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.2",
|
{"4.3.2",
|
||||||
[{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||||
|
@ -288,7 +332,9 @@
|
||||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.1",
|
{"4.3.1",
|
||||||
[{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_pqueue,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
{load_module,emqx_mqueue,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||||
|
@ -309,7 +355,9 @@
|
||||||
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_rpc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
{load_module,emqx_app,brutal_purge,soft_purge,[]}]},
|
||||||
{"4.3.0",
|
{"4.3.0",
|
||||||
[{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
[{load_module,emqx_vm,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_sys_mon,brutal_purge,soft_purge,[]},
|
||||||
|
{load_module,emqx_alarm_handler,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
{load_module,emqx_misc,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_packet,brutal_purge,soft_purge,[]},
|
{load_module,emqx_packet,brutal_purge,soft_purge,[]},
|
||||||
{load_module,emqx_shared_sub,brutal_purge,soft_purge,[]},
|
{load_module,emqx_shared_sub,brutal_purge,soft_purge,[]},
|
||||||
|
|
|
@ -182,7 +182,15 @@ procinfo(Pid) ->
|
||||||
case {emqx_vm:get_process_info(Pid), emqx_vm:get_process_gc_info(Pid)} of
|
case {emqx_vm:get_process_info(Pid), emqx_vm:get_process_gc_info(Pid)} of
|
||||||
{undefined, _} -> undefined;
|
{undefined, _} -> undefined;
|
||||||
{_, undefined} -> undefined;
|
{_, undefined} -> undefined;
|
||||||
{Info, GcInfo} -> Info ++ GcInfo
|
{Info, GcInfo} -> get_proc_lib_initial_call(Pid) ++ GcInfo ++ Info
|
||||||
|
end.
|
||||||
|
|
||||||
|
get_proc_lib_initial_call(Pid) ->
|
||||||
|
case proc_lib:initial_call(Pid) of
|
||||||
|
false ->
|
||||||
|
[];
|
||||||
|
InitialCall ->
|
||||||
|
[{proc_lib_initial_call, InitialCall}]
|
||||||
end.
|
end.
|
||||||
|
|
||||||
safe_publish(Event, WarnMsg) ->
|
safe_publish(Event, WarnMsg) ->
|
||||||
|
|
|
@ -62,7 +62,7 @@
|
||||||
]).
|
]).
|
||||||
|
|
||||||
-define(PROCESS_INFO_KEYS, [initial_call,
|
-define(PROCESS_INFO_KEYS, [initial_call,
|
||||||
current_function,
|
current_stacktrace,
|
||||||
registered_name,
|
registered_name,
|
||||||
status,
|
status,
|
||||||
message_queue_len,
|
message_queue_len,
|
||||||
|
|
|
@ -70,23 +70,51 @@ init_per_testcase(t_sys_mon2, Config) ->
|
||||||
(_) -> ok
|
(_) -> ok
|
||||||
end),
|
end),
|
||||||
Config;
|
Config;
|
||||||
|
init_per_testcase(t_procinfo, Config) ->
|
||||||
|
emqx_ct_helpers:boot_modules(all),
|
||||||
|
emqx_ct_helpers:start_apps([]),
|
||||||
|
ok = meck:new(emqx_vm, [passthrough, no_history]),
|
||||||
|
Config;
|
||||||
init_per_testcase(_, Config) ->
|
init_per_testcase(_, Config) ->
|
||||||
emqx_ct_helpers:boot_modules(all),
|
emqx_ct_helpers:boot_modules(all),
|
||||||
emqx_ct_helpers:start_apps([]),
|
emqx_ct_helpers:start_apps([]),
|
||||||
Config.
|
Config.
|
||||||
|
|
||||||
|
end_per_testcase(t_procinfo, _Config) ->
|
||||||
|
ok = meck:unload(emqx_vm),
|
||||||
|
emqx_ct_helpers:stop_apps([]);
|
||||||
end_per_testcase(_, _Config) ->
|
end_per_testcase(_, _Config) ->
|
||||||
emqx_ct_helpers:stop_apps([]).
|
emqx_ct_helpers:stop_apps([]).
|
||||||
|
|
||||||
t_procinfo(_) ->
|
t_procinfo(_) ->
|
||||||
ok = meck:new(emqx_vm, [passthrough, no_history]),
|
|
||||||
ok = meck:expect(emqx_vm, get_process_info, fun(_) -> [] end),
|
ok = meck:expect(emqx_vm, get_process_info, fun(_) -> [] end),
|
||||||
ok = meck:expect(emqx_vm, get_process_gc_info, fun(_) -> [] end),
|
ok = meck:expect(emqx_vm, get_process_gc_info, fun(_) -> [] end),
|
||||||
?assertEqual([], emqx_sys_mon:procinfo([])),
|
?assertEqual([], emqx_sys_mon:procinfo([])),
|
||||||
ok = meck:expect(emqx_vm, get_process_info, fun(_) -> ok end),
|
ok = meck:expect(emqx_vm, get_process_info, fun(_) -> ok end),
|
||||||
ok = meck:expect(emqx_vm, get_process_gc_info, fun(_) -> undefined end),
|
ok = meck:expect(emqx_vm, get_process_gc_info, fun(_) -> undefined end),
|
||||||
?assertEqual(undefined, emqx_sys_mon:procinfo([])),
|
?assertEqual(undefined, emqx_sys_mon:procinfo([])).
|
||||||
ok = meck:unload(emqx_vm).
|
|
||||||
|
t_procinfo_initial_call_and_stacktrace(_) ->
|
||||||
|
SomePid = proc_lib:spawn(?MODULE, some_function, [self(), arg2]),
|
||||||
|
receive
|
||||||
|
{spawned, SomePid} ->
|
||||||
|
ok
|
||||||
|
after 100 ->
|
||||||
|
error(process_not_spawned)
|
||||||
|
end,
|
||||||
|
ProcInfo = emqx_sys_mon:procinfo(SomePid),
|
||||||
|
?assertEqual(
|
||||||
|
{?MODULE, some_function, ['Argument__1','Argument__2']},
|
||||||
|
proplists:get_value(proc_lib_initial_call, ProcInfo)),
|
||||||
|
?assertMatch(
|
||||||
|
[{?MODULE, some_function, 2,
|
||||||
|
[{file, _},
|
||||||
|
{line, _}]},
|
||||||
|
{proc_lib, init_p_do_apply, 3,
|
||||||
|
[{file, _},
|
||||||
|
{line, _}]}],
|
||||||
|
proplists:get_value(current_stacktrace, ProcInfo)),
|
||||||
|
SomePid ! stop.
|
||||||
|
|
||||||
t_sys_mon(_Config) ->
|
t_sys_mon(_Config) ->
|
||||||
lists:foreach(
|
lists:foreach(
|
||||||
|
@ -120,3 +148,10 @@ validate_sys_mon_info(PidOrPort, SysMonName,ValidateInfo, InfoOrPort) ->
|
||||||
concat_str(ValidateInfo, InfoOrPort, Info) ->
|
concat_str(ValidateInfo, InfoOrPort, Info) ->
|
||||||
WarnInfo = io_lib:format(ValidateInfo, [InfoOrPort, Info]),
|
WarnInfo = io_lib:format(ValidateInfo, [InfoOrPort, Info]),
|
||||||
lists:flatten(WarnInfo).
|
lists:flatten(WarnInfo).
|
||||||
|
|
||||||
|
some_function(Parent, _Arg2) ->
|
||||||
|
Parent ! {spawned, self()},
|
||||||
|
receive
|
||||||
|
stop ->
|
||||||
|
ok
|
||||||
|
end.
|
||||||
|
|
Loading…
Reference in New Issue