File 2261-Additionally-log-message-queue-len-when-process-kill.patch of Package erlang
From 6e714e5b9d40e47c0f7a030709f4fda8f87f9bf9 Mon Sep 17 00:00:00 2001
From: Alexander Petrovsky <askjuise@gmail.com>
Date: Thu, 25 Mar 2021 13:19:39 +0300
Subject: [PATCH] Additionally log message queue len when process killed by
max_heap_size
---
erts/emulator/beam/erl_gc.c | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/erts/emulator/beam/erl_gc.c b/erts/emulator/beam/erl_gc.c
index 7cdb532f75..28b0e80e02 100644
--- a/erts/emulator/beam/erl_gc.c
+++ b/erts/emulator/beam/erl_gc.c
@@ -3477,19 +3477,21 @@ reached_max_heap_size(Process *p, Uint total_heap_size,
Eterm *o_hp, *hp, args = NIL;
/* Build the format message */
- erts_dsprintf(dsbufp, " Process: ~p ");
+ erts_dsprintf(dsbufp, " Process: ~p ");
if (alive)
erts_dsprintf(dsbufp, "on node ~p");
- erts_dsprintf(dsbufp, "~n Context: maximum heap size reached~n");
- erts_dsprintf(dsbufp, " Max Heap Size: ~p~n");
- erts_dsprintf(dsbufp, " Total Heap Size: ~p~n");
- erts_dsprintf(dsbufp, " Kill: ~p~n");
- erts_dsprintf(dsbufp, " Error Logger: ~p~n");
- erts_dsprintf(dsbufp, " GC Info: ~p~n");
+ erts_dsprintf(dsbufp, "~n Context: maximum heap size reached~n");
+ erts_dsprintf(dsbufp, " Max Heap Size: ~p~n");
+ erts_dsprintf(dsbufp, " Total Heap Size: ~p~n");
+ erts_dsprintf(dsbufp, " Kill: ~p~n");
+ erts_dsprintf(dsbufp, " Error Logger: ~p~n");
+ erts_dsprintf(dsbufp, " Message Queue Len: ~p~n");
+ erts_dsprintf(dsbufp, " GC Info: ~p~n");
/* Build the args in reverse order */
- o_hp = hp = erts_alloc(ERTS_ALC_T_TMP, 2*(alive ? 7 : 6) * sizeof(Eterm));
+ o_hp = hp = erts_alloc(ERTS_ALC_T_TMP, 2*(alive ? 8 : 7) * sizeof(Eterm));
args = CONS(hp, msg, args); hp += 2;
+ args = CONS(hp, make_small((p)->sig_inq.len), args); hp += 2;
args = CONS(hp, am_true, args); hp += 2;
args = CONS(hp, (max_heap_flags & MAX_HEAP_SIZE_KILL ? am_true : am_false), args); hp += 2;
args = CONS(hp, make_small(total_heap_size), args); hp += 2;
--
2.26.2