File 1555-Handle-more-normal-socket-errors.patch of Package erlang

From 99f943a2765a240af21c304a7b0a68707b291b18 Mon Sep 17 00:00:00 2001
From: Raimo Niskanen <raimo@erlang.org>
Date: Tue, 7 Oct 2025 16:27:34 +0200
Subject: [PATCH 5/6] Handle more "normal" socket errors

---
 lib/ssl/test/inet_epmd_cryptcookie_inet_ktls.erl   | 10 ++++++++--
 lib/ssl/test/inet_epmd_cryptcookie_socket_ktls.erl |  8 ++++++--
 lib/ssl/test/inet_epmd_dist_cryptcookie_inet.erl   | 10 ++++++++--
 lib/ssl/test/inet_epmd_dist_cryptcookie_socket.erl |  8 ++++++--
 4 files changed, 28 insertions(+), 8 deletions(-)

diff --git a/lib/ssl/test/inet_epmd_cryptcookie_inet_ktls.erl b/lib/ssl/test/inet_epmd_cryptcookie_inet_ktls.erl
index fe14fe8928..77679dbd11 100644
--- a/lib/ssl/test/inet_epmd_cryptcookie_inet_ktls.erl
+++ b/lib/ssl/test/inet_epmd_cryptcookie_inet_ktls.erl
@@ -179,7 +179,10 @@ stream_recv(InStream = [_ | Socket], Size) ->
             [Data | InStream];
         {error, timeout} ->
             [<<>> | InStream];
-        {error, closed} ->
+        {error, Reason}
+          when Reason =:= closed;
+               Reason =:= econnreset;
+               Reason =:= epipe ->
             [closed | InStream];
         {error, Reason} ->
             erlang:error({?MODULE, ?FUNCTION_NAME, Reason})
@@ -192,7 +195,10 @@ stream_send(OutStream = [_ | Socket], Data) ->
     case ?DRIVER:send(Socket, Data) of
         ok ->
             OutStream;
-        {error, closed} ->
+        {error, Reason}
+          when Reason =:= closed;
+               Reason =:= econnreset;
+               Reason =:= epipe ->
             [closed | OutStream];
         {error, Reason} ->
             erlang:error({?MODULE, ?FUNCTION_NAME, Reason, [OutStream, Data]})
diff --git a/lib/ssl/test/inet_epmd_cryptcookie_socket_ktls.erl b/lib/ssl/test/inet_epmd_cryptcookie_socket_ktls.erl
index d9c1ff8b8f..d0015c6632 100644
--- a/lib/ssl/test/inet_epmd_cryptcookie_socket_ktls.erl
+++ b/lib/ssl/test/inet_epmd_cryptcookie_socket_ktls.erl
@@ -218,7 +218,8 @@ stream_recv(InStream = [_ | Socket], Size) ->
 stream_recv_error(InStream, Reason) ->
     if
         Reason =:= closed;
-        Reason =:= econnreset ->
+        Reason =:= econnreset;
+        Reason =:= epipe ->
             [closed | InStream];
         true ->
             erlang:error({?MODULE, ?FUNCTION_NAME, Reason})
@@ -233,7 +234,10 @@ stream_send(OutStream = [_ | Socket], Data) ->
     case socket:sendmsg(Socket, #{ iov => Data }) of
         ok ->
             OutStream;
-        {error, closed} ->
+        {error, Reason}
+          when Reason =:= closed;
+               Reason =:= econnreset;
+               Reason =:= epipe ->
             [closed | OutStream];
         {error, Reason} ->
             erlang:error({?MODULE, ?FUNCTION_NAME, Reason, [OutStream, Data]})
diff --git a/lib/ssl/test/inet_epmd_dist_cryptcookie_inet.erl b/lib/ssl/test/inet_epmd_dist_cryptcookie_inet.erl
index ea329df945..21e3f87bad 100644
--- a/lib/ssl/test/inet_epmd_dist_cryptcookie_inet.erl
+++ b/lib/ssl/test/inet_epmd_dist_cryptcookie_inet.erl
@@ -168,7 +168,10 @@ stream_recv(InStream = [_ | Socket], Size) ->
             [Data | InStream];
         {error, timeout} ->
             [<<>> | InStream];
-        {error, closed} ->
+        {error, Reason}
+          when Reason =:= closed;
+               Reason =:= econnreset;
+               Reason =:= epipe ->
             [closed | InStream];
         {error, Reason} ->
             erlang:error({?MODULE, ?FUNCTION_NAME, Reason})
@@ -181,7 +184,10 @@ stream_send(OutStream = [_ | Socket], Data) ->
     case ?DRIVER:send(Socket, Data) of
         ok ->
             OutStream;
-        {error, closed} ->
+        {error, Reason}
+          when Reason =:= closed;
+               Reason =:= econnreset;
+               Reason =:= epipe ->
             [closed | OutStream];
         {error, Reason} ->
             erlang:error({?MODULE, ?FUNCTION_NAME, Reason, [OutStream, Data]})
diff --git a/lib/ssl/test/inet_epmd_dist_cryptcookie_socket.erl b/lib/ssl/test/inet_epmd_dist_cryptcookie_socket.erl
index 4e3ec47680..f9067b33ae 100644
--- a/lib/ssl/test/inet_epmd_dist_cryptcookie_socket.erl
+++ b/lib/ssl/test/inet_epmd_dist_cryptcookie_socket.erl
@@ -204,7 +204,8 @@ stream_recv(InStream = [_ | Socket], Size) ->
 stream_recv_error(InStream, Reason) ->
     if
         Reason =:= closed;
-        Reason =:= econnreset ->
+        Reason =:= econnreset;
+        Reason =:= epipe ->
             [closed | InStream];
         true ->
             erlang:error({?MODULE, ?FUNCTION_NAME, Reason})
@@ -219,7 +220,10 @@ stream_send(OutStream = [_ | Socket], Data) ->
     case socket:sendmsg(Socket, #{ iov => Data }) of
         ok ->
             OutStream;
-        {error, closed} ->
+        {error, Reason}
+          when Reason =:= closed;
+               Reason =:= econnreset;
+               Reason =:= epipe ->
             [closed | OutStream];
         {error, Reason} ->
             erlang:error({?MODULE, ?FUNCTION_NAME, Reason, [OutStream, Data]})
-- 
2.51.0

openSUSE Build Service is sponsored by