Procházet zdrojové kódy

fix: avoid uisng 'pid' as log data field

Since it clashes with log metad data field
Zaiming (Stone) Shi před 2 roky
rodič
revize
19e136bb66

+ 7 - 7
apps/emqx/src/emqx_cm.erl

@@ -465,23 +465,23 @@ request_stepdown(Action, ConnMod, Pid) ->
         catch
             % emqx_ws_connection: call
             _:noproc ->
-                ok = ?tp(debug, "session_already_gone", #{pid => Pid, action => Action}),
+                ok = ?tp(debug, "session_already_gone", #{stale_pid => Pid, action => Action}),
                 {error, noproc};
             % emqx_connection: gen_server:call
             _:{noproc, _} ->
-                ok = ?tp(debug, "session_already_gone", #{pid => Pid, action => Action}),
+                ok = ?tp(debug, "session_already_gone", #{stale_pid => Pid, action => Action}),
                 {error, noproc};
             _:{shutdown, _} ->
-                ok = ?tp(debug, "session_already_shutdown", #{pid => Pid, action => Action}),
+                ok = ?tp(debug, "session_already_shutdown", #{stale_pid => Pid, action => Action}),
                 {error, noproc};
             _:{{shutdown, _}, _} ->
-                ok = ?tp(debug, "session_already_shutdown", #{pid => Pid, action => Action}),
+                ok = ?tp(debug, "session_already_shutdown", #{stale_pid => Pid, action => Action}),
                 {error, noproc};
             _:{timeout, {gen_server, call, _}} ->
                 ?tp(
                     warning,
                     "session_stepdown_request_timeout",
-                    #{pid => Pid, action => Action, stale_channel => stale_channel_info(Pid)}
+                    #{stale_pid => Pid, action => Action, stale_channel => stale_channel_info(Pid)}
                 ),
                 ok = force_kill(Pid),
                 {error, timeout};
@@ -490,7 +490,7 @@ request_stepdown(Action, ConnMod, Pid) ->
                     error,
                     "session_stepdown_request_exception",
                     #{
-                        pid => Pid,
+                        stale_pid => Pid,
                         action => Action,
                         reason => Error,
                         stacktrace => St,
@@ -671,7 +671,7 @@ handle_cast(Msg, State) ->
     {noreply, State}.
 
 handle_info({'DOWN', _MRef, process, Pid, _Reason}, State = #{chan_pmon := PMon}) ->
-    ?tp(emqx_cm_process_down, #{pid => Pid, reason => _Reason}),
+    ?tp(emqx_cm_process_down, #{stale_pid => Pid, reason => _Reason}),
     ChanPids = [Pid | emqx_misc:drain_down(?BATCH_SIZE)],
     {Items, PMon1} = emqx_pmon:erase_all(ChanPids, PMon),
     lists:foreach(fun mark_channel_disconnected/1, ChanPids),

+ 6 - 6
apps/emqx_gateway/src/emqx_gateway_cm.erl

@@ -587,24 +587,24 @@ request_stepdown(Action, ConnMod, Pid) ->
         catch
             % emqx_ws_connection: call
             _:noproc ->
-                ok = ?tp(debug, "session_already_gone", #{pid => Pid, action => Action}),
+                ok = ?tp(debug, "session_already_gone", #{stale_pid => Pid, action => Action}),
                 {error, noproc};
             % emqx_connection: gen_server:call
             _:{noproc, _} ->
-                ok = ?tp(debug, "session_already_gone", #{pid => Pid, action => Action}),
+                ok = ?tp(debug, "session_already_gone", #{stale_pid => Pid, action => Action}),
                 {error, noproc};
             _:Reason = {shutdown, _} ->
-                ok = ?tp(debug, "session_already_shutdown", #{pid => Pid, action => Action}),
+                ok = ?tp(debug, "session_already_shutdown", #{stale_pid => Pid, action => Action}),
                 {error, Reason};
             _:Reason = {{shutdown, _}, _} ->
-                ok = ?tp(debug, "session_already_shutdown", #{pid => Pid, action => Action}),
+                ok = ?tp(debug, "session_already_shutdown", #{stale_pid => Pid, action => Action}),
                 {error, Reason};
             _:{timeout, {gen_server, call, _}} ->
                 ?tp(
                     warning,
                     "session_stepdown_request_timeout",
                     #{
-                        pid => Pid,
+                        stale_pid => Pid,
                         action => Action,
                         stale_channel => stale_channel_info(Pid)
                     }
@@ -616,7 +616,7 @@ request_stepdown(Action, ConnMod, Pid) ->
                     error,
                     "session_stepdown_request_exception",
                     #{
-                        pid => Pid,
+                        stale_pid => Pid,
                         action => Action,
                         reason => Error,
                         stacktrace => St,

+ 2 - 0
changes/ce/fix-10242.en.md

@@ -0,0 +1,2 @@
+Fixed a log data field name clash.
+Piror to this fix, some debug logs may report a wrong Erlang PID which may affect troubleshooting session takeover issues.

+ 2 - 0
changes/ce/fix-10242.zh.md

@@ -0,0 +1,2 @@
+修复log数据字段名称冲突。
+在这个修复之前,一些调试日志可能会报告一个错误的Erlang PID,这可能会影响会话接管问题的故障调查。

+ 1 - 1
lib-ee/emqx_license/src/emqx_license.app.src

@@ -1,6 +1,6 @@
 {application, emqx_license, [
     {description, "EMQX License"},
-    {vsn, "5.0.7"},
+    {vsn, "5.0.8"},
     {modules, []},
     {registered, [emqx_license_sup]},
     {applications, [kernel, stdlib, emqx_ctl]},

+ 3 - 3
lib-ee/emqx_license/src/emqx_license_installer.erl

@@ -74,13 +74,13 @@ ensure_timer(#{interval := Interval} = State) ->
 check_pid(#{name := Name, pid := OldPid, callback := Callback} = State) ->
     case whereis(Name) of
         undefined ->
-            ?tp(debug, emqx_license_installer_noproc, #{pid => OldPid}),
+            ?tp(debug, emqx_license_installer_noproc, #{old_pid => OldPid}),
             State;
         OldPid ->
-            ?tp(debug, emqx_license_installer_nochange, #{pid => OldPid}),
+            ?tp(debug, emqx_license_installer_nochange, #{old_pid => OldPid}),
             State;
         NewPid ->
             _ = Callback(),
-            ?tp(debug, emqx_license_installer_called, #{pid => OldPid}),
+            ?tp(debug, emqx_license_installer_called, #{old_pid => OldPid}),
             State#{pid => NewPid}
     end.