File 0150-Don-t-crash-group-on-unknown-messages.patch of Package erlang

From 5cde85723852d3282628b5a93f676b0009c43449 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20W=C4=85sowski?= <michal@erlang.org>
Date: Wed, 1 Oct 2025 13:58:47 +0200
Subject: [PATCH] Don't crash group on unknown messages

---
 lib/kernel/src/group.erl        |  2 --
 lib/kernel/test/Makefile        |  1 +
 lib/kernel/test/group_SUITE.erl | 55 +++++++++++++++++++++++++++++++++
 3 files changed, 56 insertions(+), 2 deletions(-)
 create mode 100644 lib/kernel/test/group_SUITE.erl

diff --git a/lib/kernel/src/group.erl b/lib/kernel/src/group.erl
index 32a142a954..91a2f69e4e 100644
--- a/lib/kernel/src/group.erl
+++ b/lib/kernel/src/group.erl
@@ -527,8 +527,6 @@ handle_info(_State, {'EXIT',Shell,R}, #state{ shell = Shell, driver = Drv }) ->
 
 handle_info(_State, _UnknownEvent, _Data) ->
     %% Ignore this unknown message.
-    erlang:display({unknown, _UnknownEvent}),
-    ok = _UnknownEvent,
     keep_state_and_data.
 
 %% When we get an input request while already serving another, we
diff --git a/lib/kernel/test/Makefile b/lib/kernel/test/Makefile
index fffec45314..49e96fb5c3 100644
--- a/lib/kernel/test/Makefile
+++ b/lib/kernel/test/Makefile
@@ -130,6 +130,7 @@ MODULES= \
 	standard_error_SUITE \
 	multi_load_SUITE \
 	shell_test_lib \
+	group_SUITE \
 	zzz_SUITE
 
 APP_FILES = \
diff --git a/lib/kernel/test/group_SUITE.erl b/lib/kernel/test/group_SUITE.erl
new file mode 100644
index 0000000000..d5bb084b45
--- /dev/null
+++ b/lib/kernel/test/group_SUITE.erl
@@ -0,0 +1,55 @@
+%%
+%% %CopyrightBegin%
+%%
+%% SPDX-License-Identifier: Apache-2.0
+%%
+%% Copyright Ericsson AB 2025. All Rights Reserved.
+%%
+%% Licensed under the Apache License, Version 2.0 (the "License");
+%% you may not use this file except in compliance with the License.
+%% You may obtain a copy of the License at
+%%
+%%     http://www.apache.org/licenses/LICENSE-2.0
+%%
+%% Unless required by applicable law or agreed to in writing, software
+%% distributed under the License is distributed on an "AS IS" BASIS,
+%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+%% See the License for the specific language governing permissions and
+%% limitations under the License.
+%%
+%% %CopyrightEnd%
+%%
+
+-module(group_SUITE).
+
+-export([all/0,
+        suite/0,
+        init_per_suite/1,
+        end_per_suite/1]).
+
+-export([check_unknown_message/1]).
+
+suite() ->
+    [{ct_hooks,[ts_install_cth]},
+     {timetrap,{seconds,30}}].
+
+all() -> 
+    [check_unknown_message].
+
+init_per_suite(Config) ->
+    Config.
+
+end_per_suite(Config) ->
+    Config.
+
+check_unknown_message(_Config) ->
+    Drv = spawn_link(fun() -> timer:sleep(infinity) end),
+    Group = group:start(Drv),
+    try
+        Group ! unknown,
+        timer:sleep(100),
+        true = is_process_alive(Group)
+    after
+        ok = gen_statem:stop(Group)
+    end.
+
-- 
2.51.0

openSUSE Build Service is sponsored by