File 6621-erts-Fix-erlang-is_alive-0-to-not-call-net_kernel.patch of Package erlang
From 7fd016388ba8facc563e74dc7b9792fafa244fe6 Mon Sep 17 00:00:00 2001
From: Sverker Eriksson <sverker@erlang.org>
Date: Tue, 22 Feb 2022 13:09:57 +0100
Subject: [PATCH] erts: Fix erlang:is_alive/0 to not call net_kernel
Module erlang is preloaded and not allowed to call non-preloaded
modules like net_kernel.
Have been seen to cause spinning beam.smp when piped STDIN
and STDOUT.
Bug introduced by c4d92b48e27aa8ed550d02e3511e2bc288847579
and included in OTP-25.0-rc1.
---
erts/preloaded/ebin/erlang.beam | Bin 131440 -> 131496 bytes
erts/preloaded/src/erlang.erl | 2 +-
lib/kernel/src/net_kernel.erl | 4 ----
3 files changed, 1 insertion(+), 5 deletions(-)
diff --git a/erts/preloaded/src/erlang.erl b/erts/preloaded/src/erlang.erl
index af6f1e1946..c2fe2a41c2 100644
--- a/erts/preloaded/src/erlang.erl
+++ b/erts/preloaded/src/erlang.erl
@@ -1276,7 +1276,7 @@ iolist_to_iovec(_IoListOrBinary) ->
%% is_alive/0
-spec is_alive() -> boolean().
is_alive() ->
- net_kernel:is_alive().
+ erlang:whereis(net_kernel) =/= undefined.
%% is_builtin/3
-spec erlang:is_builtin(Module, Function, Arity) -> boolean() when
diff --git a/lib/kernel/src/net_kernel.erl b/lib/kernel/src/net_kernel.erl
index 8d172dbccd..7b15e45912 100644
--- a/lib/kernel/src/net_kernel.erl
+++ b/lib/kernel/src/net_kernel.erl
@@ -70,7 +70,6 @@
nodename/0,
protocol_childspecs/0,
epmd_module/0,
- is_alive/0,
get_state/0,
dist_listen/0]).
@@ -192,9 +191,6 @@ longnames() -> request(longnames).
nodename() -> request(nodename).
-is_alive() ->
- whereis(net_kernel) =/= undefined.
-
get_state() ->
case whereis(net_kernel) of
undefined ->
--
2.34.1