From fceeb3576cc1d6a3cf97a22651119a1b4c96eb48 Mon Sep 17 00:00:00 2001 From: Hans Nilsson Date: Sat, 14 Apr 2018 10:35:18 +0200 Subject: ssh: Fix server crashes for exit-normal signals --- lib/ssh/src/ssh_connection_handler.erl | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'lib/ssh') diff --git a/lib/ssh/src/ssh_connection_handler.erl b/lib/ssh/src/ssh_connection_handler.erl index 8c73bb8946..1c46e4cd78 100644 --- a/lib/ssh/src/ssh_connection_handler.erl +++ b/lib/ssh/src/ssh_connection_handler.erl @@ -1087,8 +1087,20 @@ handle_info({'DOWN', _Ref, process, ChannelPid, _Reason}, Statename, State0) -> {next_state, Statename, next_packet(State)}; %%% So that terminate will be run when supervisor is shutdown -handle_info({'EXIT', _Sup, Reason}, _StateName, State) -> - {stop, {shutdown, Reason}, State}; +handle_info({'EXIT',_Sup,Reason}, StateName, State) -> + if + State#state.role == client -> + %% OTP-8111 tells this function clause fixes a problem in + %% clients, but there were no check for that role. + {stop, {shutdown,Reason}, State}; + + Reason == normal -> + %% An exit normal should not cause a server to crash. This has happend... + {next_state, StateName, next_packet(State)}; + + true -> + {stop, {shutdown,Reason}, State} + end; handle_info({check_cache, _ , _}, StateName, #state{connection_state = -- cgit v1.2.3 From 08d836194db1966733f24516bea2a21d2019a0f8 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 23 Apr 2018 10:46:53 +0200 Subject: Prepare release --- lib/ssh/doc/src/notes.xml | 16 ++++++++++++++++ lib/ssh/vsn.mk | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) (limited to 'lib/ssh') diff --git a/lib/ssh/doc/src/notes.xml b/lib/ssh/doc/src/notes.xml index 99303393c4..31998b05c7 100644 --- a/lib/ssh/doc/src/notes.xml +++ b/lib/ssh/doc/src/notes.xml @@ -30,6 +30,22 @@ notes.xml +
Ssh 4.2.2.6 + +
Fixed Bugs and Malfunctions + + +

+ Fix rare spurios shutdowns of ssh servers when receiveing + {'EXIT',_,normal} messages.

+

+ Own Id: OTP-15018

+
+
+
+ +
+
Ssh 4.2.2.5
Improvements and New Features diff --git a/lib/ssh/vsn.mk b/lib/ssh/vsn.mk index 7c49732223..2169e8049f 100644 --- a/lib/ssh/vsn.mk +++ b/lib/ssh/vsn.mk @@ -1,5 +1,5 @@ #-*-makefile-*- ; force emacs to enter makefile-mode -SSH_VSN = 4.2.2.5 +SSH_VSN = 4.2.2.6 APP_VSN = "ssh-$(SSH_VSN)" -- cgit v1.2.3