File 6022-erts-ethr-enomem-should-cause-crash-dump.patch of Package erlang
From 8ff6712031165aab2426ff6bb27b92d342ccdef5 Mon Sep 17 00:00:00 2001
From: Lukas Larsson <lukas@erlang.org>
Date: Tue, 7 Dec 2021 15:40:28 +0100
Subject: [PATCH 2/3] erts: ethr enomem should cause crash dump
---
erts/emulator/beam/erl_init.c | 22 +++++++++++++++-------
1 file changed, 15 insertions(+), 7 deletions(-)
diff --git a/erts/emulator/beam/erl_init.c b/erts/emulator/beam/erl_init.c
index f806d4a697..ad8deb03d9 100644
--- a/erts/emulator/beam/erl_init.c
+++ b/erts/emulator/beam/erl_init.c
@@ -2406,13 +2406,21 @@ erl_start(int argc, char **argv)
__decl_noreturn void erts_thr_fatal_error(int err, char *what)
{
const char *errstr = err ? strerror(err) : NULL;
- erts_fprintf(stderr,
- "Failed to %s: %s%s(%d)\n",
- what,
- errstr ? errstr : "",
- errstr ? " " : "",
- err);
- abort();
+ if (err == ENOMEM) {
+ erts_exit(ERTS_DUMP_EXIT, "Failed to %s: %s%s(%d)\n",
+ what,
+ errstr ? errstr : "",
+ errstr ? " " : "",
+ err);
+ } else {
+ erts_fprintf(stderr,
+ "Failed to %s: %s%s(%d)\n",
+ what,
+ errstr ? errstr : "",
+ errstr ? " " : "",
+ err);
+ abort();
+ }
}
--
2.31.1