Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Please login to access the resource
home:Ledest:erlang:23
erlang
4502-ssl-fix-process-leak-with-TLS-distribution...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 4502-ssl-fix-process-leak-with-TLS-distribution.patch of Package erlang
From 51c21c404d99b01958a2a41d930b2f14ae74ca8f Mon Sep 17 00:00:00 2001 From: Jakub Witczak <kuba@erlang.org> Date: Wed, 1 Dec 2021 15:21:53 +0100 Subject: [PATCH] ssl: fix process leak with TLS distribution - net_kernel could be leaking processes - if connection process gets killed due to crash propagation - crash must come from other connection process which failed on inet_tcp:accept - see also GH-5332 --- lib/ssl/src/inet_tls_dist.erl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/ssl/src/inet_tls_dist.erl b/lib/ssl/src/inet_tls_dist.erl index cddc4f90bf..aa66091267 100644 --- a/lib/ssl/src/inet_tls_dist.erl +++ b/lib/ssl/src/inet_tls_dist.erl @@ -444,8 +444,10 @@ gen_accept_connection( do_accept( _Driver, AcceptPid, DistCtrl, MyNode, Allowed, SetupTime, Kernel) -> + MRef = erlang:monitor(process, AcceptPid), receive {AcceptPid, controller} -> + erlang:demonitor(MRef, [flush]), {ok, SslSocket} = tls_sender:dist_tls_socket(DistCtrl), Timer = dist_util:start_timer(SetupTime), NewAllowed = allowed_nodes(SslSocket, Allowed), @@ -463,6 +465,11 @@ do_accept( {AcceptPid, exit} -> %% this can happen when connection was initiated, but dropped %% between TLS handshake completion and dist handshake start + ?shutdown2(MyNode, connection_setup_failed); + {'DOWN', MRef, _, _, _Reason} -> + %% this may happen when connection was initiated, but dropped + %% due to crash propagated from other hanshake process which + %% failed on inet_tcp:accept (see GH-5332) ?shutdown2(MyNode, connection_setup_failed) end. -- 2.31.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor