File 7973-erts-Avoid-incorrect-exception-trace-of-terminating-.patch of Package erlang
From 5af5d4ff659dcdfd04f1c8cf0c91a908715e768a Mon Sep 17 00:00:00 2001
From: Sverker Eriksson <sverker@erlang.org>
Date: Wed, 1 Feb 2023 18:24:32 +0100
Subject: [PATCH 3/4] erts: Avoid incorrect exception trace of terminating
processes
Add EXF_PANIC flag to skip exception trace in handle_error().
---
erts/emulator/beam/bif.h | 10 +++++-----
erts/emulator/beam/erl_process.c | 2 +-
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/erts/emulator/beam/bif.h b/erts/emulator/beam/bif.h
index bad047b92f..19052d8d2d 100644
--- a/erts/emulator/beam/bif.h
+++ b/erts/emulator/beam/bif.h
@@ -474,13 +474,13 @@ extern Export erts_bif_handle_signals_return_export;
#define ERTS_BIF_PREP_EXITED(RET, PROC) \
do { \
KILL_CATCHES((PROC)); \
- ERTS_BIF_PREP_ERROR((RET), (PROC), EXTAG_EXIT); \
+ ERTS_BIF_PREP_ERROR((RET), (PROC), EXTAG_EXIT | EXF_PANIC); \
} while (0)
-#define ERTS_BIF_EXITED(PROC) \
-do { \
- KILL_CATCHES((PROC)); \
- BIF_ERROR((PROC), EXTAG_EXIT); \
+#define ERTS_BIF_EXITED(PROC) \
+do { \
+ KILL_CATCHES((PROC)); \
+ BIF_ERROR((PROC), EXTAG_EXIT | EXF_PANIC); \
} while (0)
#define ERTS_BIF_CHK_EXITED(PROC) \
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c
index 65a6e1c6ad..a632a7d7dc 100644
--- a/erts/emulator/beam/erl_process.c
+++ b/erts/emulator/beam/erl_process.c
@@ -12796,7 +12796,7 @@ erts_set_self_exiting(Process *c_p, Eterm reason)
erts_proc_lock(c_p, ERTS_PROC_LOCKS_ALL_MINOR);
set_self_exiting(c_p, reason, &enqueue, &enq_prio, &state);
- c_p->freason = EXTAG_EXIT;
+ c_p->freason = EXTAG_EXIT | EXF_PANIC;
KILL_CATCHES(c_p);
c_p->i = beam_exit;
--
2.35.3