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

openSUSE Build Service is sponsored by