File 0963-kernel-esock-Handle-select_sent.patch of Package erlang

From b440138fb19e85196a52d796776503bd00ce28be Mon Sep 17 00:00:00 2001
From: Micael Karlberg <bmk@erlang.org>
Date: Thu, 5 Jun 2025 06:55:48 +0200
Subject: [PATCH 1/2] [kernel|esock] Handle 'select_sent'

The socket nif can actually return the atom 'select_sent'
when calling accept (prim_socket:accept). This is a race,
which is difficult to reproduce. But, this should be
translated into an {error, {invalid, select_sent}}.
This happens when there is already an ongoing accept,
which has just resulted in a select message having been sent
(select_sent).

OTP-19684
---
 lib/kernel/src/socket.erl | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/kernel/src/socket.erl b/lib/kernel/src/socket.erl
index 0c8efa7f2c..9bf35d6e21 100644
--- a/lib/kernel/src/socket.erl
+++ b/lib/kernel/src/socket.erl
@@ -3338,6 +3338,8 @@ accept_deadline(LSockRef, Deadline) ->
 
 accept_result(LSockRef, AccRef, Result) ->
     case Result of
+        select_sent ->
+            {error, {invalid, Result}};
         {ok, SockRef} ->
             Socket = ?socket(SockRef),
             {ok, Socket};
-- 
2.43.0

openSUSE Build Service is sponsored by