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