From 2c7cee6ae55fbcb8e5f84caa3920420506c3a317 Mon Sep 17 00:00:00 2001
From: Andrey Mayorov
Date: Fri, 11 Dec 2015 03:23:53 +0300
Subject: ssl: fix hibernate_after with short timeouts
Too wide function clause was used in ssl_connection which led to ssl
connection process crashes when `{hibernate_after, N}` with extremely
small N was passed among other options to `ssl:connect`.
---
lib/ssl/src/tls_connection.erl | 2 +-
lib/ssl/test/ssl_basic_SUITE.erl | 38 ++++++++++++++++++++++++++++++++++++++
2 files changed, 39 insertions(+), 1 deletion(-)
diff --git a/lib/ssl/src/tls_connection.erl b/lib/ssl/src/tls_connection.erl
index 77d3aa7889..887fb8fda1 100644
--- a/lib/ssl/src/tls_connection.erl
+++ b/lib/ssl/src/tls_connection.erl
@@ -202,7 +202,7 @@ hello(Hello = #client_hello{client_version = ClientVersion,
#alert{} = Alert ->
handle_own_alert(Alert, ClientVersion, hello, State)
end;
-hello(Hello,
+hello(Hello = #server_hello{},
#state{connection_states = ConnectionStates0,
negotiated_version = ReqVersion,
role = client,
diff --git a/lib/ssl/test/ssl_basic_SUITE.erl b/lib/ssl/test/ssl_basic_SUITE.erl
index df9432a43b..8bec54248b 100644
--- a/lib/ssl/test/ssl_basic_SUITE.erl
+++ b/lib/ssl/test/ssl_basic_SUITE.erl
@@ -137,6 +137,7 @@ api_tests() ->
shutdown_both,
shutdown_error,
hibernate,
+ hibernate_right_away,
listen_socket,
ssl_accept_timeout,
ssl_recv_timeout,
@@ -2772,6 +2773,43 @@ hibernate(Config) ->
ssl_test_lib:close(Server),
ssl_test_lib:close(Client).
+%%--------------------------------------------------------------------
+
+hibernate_right_away() ->
+ [{doc,"Check that an SSL connection that is configured to hibernate "
+ "after 0 or 1 milliseconds hibernates as soon as possible and not "
+ "crashes"}].
+
+hibernate_right_away(Config) ->
+ ClientOpts = ?config(client_opts, Config),
+ ServerOpts = ?config(server_opts, Config),
+
+ {ClientNode, ServerNode, Hostname} = ssl_test_lib:run_where(Config),
+
+ StartServerOpts = [{node, ServerNode}, {port, 0},
+ {from, self()},
+ {mfa, {ssl_test_lib, send_recv_result_active, []}},
+ {options, ServerOpts}],
+ StartClientOpts = [return_socket,
+ {node, ClientNode},
+ {host, Hostname},
+ {from, self()},
+ {mfa, {ssl_test_lib, send_recv_result_active, []}}],
+
+ Server1 = ssl_test_lib:start_server(StartServerOpts),
+ Port1 = ssl_test_lib:inet_port(Server1),
+ {Client1, #sslsocket{}} = ssl_test_lib:start_client(StartClientOpts ++
+ [{port, Port1}, {options, [{hibernate_after, 0}|ClientOpts]}]),
+ ssl_test_lib:close(Server1),
+ ssl_test_lib:close(Client1),
+
+ Server2 = ssl_test_lib:start_server(StartServerOpts),
+ Port2 = ssl_test_lib:inet_port(Server2),
+ {Client2, #sslsocket{}} = ssl_test_lib:start_client(StartClientOpts ++
+ [{port, Port2}, {options, [{hibernate_after, 1}|ClientOpts]}]),
+ ssl_test_lib:close(Server2),
+ ssl_test_lib:close(Client2).
+
%%--------------------------------------------------------------------
listen_socket() ->
[{doc,"Check error handling and inet compliance when calling API functions with listen sockets."}].
--
cgit v1.2.3
From 1bc2a4aaf51013ef936c4c8965d1fa9267ddf074 Mon Sep 17 00:00:00 2001
From: Anders Svensson
Date: Mon, 29 Feb 2016 17:22:30 +0100
Subject: Update appup for 17.5.6.9
OTP-13342 remote watchdog transition to state SUSPECT
---
lib/diameter/src/diameter.appup.src | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/lib/diameter/src/diameter.appup.src b/lib/diameter/src/diameter.appup.src
index e030b3c72b..2c91bb38b4 100644
--- a/lib/diameter/src/diameter.appup.src
+++ b/lib/diameter/src/diameter.appup.src
@@ -43,7 +43,9 @@
[{restart_application, diameter}]},
{"1.9.2", [{restart_application, diameter}]}, %% 17.5.5
{"1.9.2.1", [{restart_application, diameter}]}, %% 17.5.6.3
- {"1.9.2.2", [{update, diameter_service, {advanced, []}}]} %% 17.5.6.7
+ {"1.9.2.2", [{restart_application, diameter}]}, %% 17.5.6.7
+ {"1.9.2.3", [{load_module, diameter_traffic}, %% 17.5.6.8
+ {load_module, diameter_service}]}
],
[
{"0.9", [{restart_application, diameter}]},
@@ -69,6 +71,8 @@
[{restart_application, diameter}]},
{"1.9.2", [{restart_application, diameter}]},
{"1.9.2.1", [{restart_application, diameter}]},
- {"1.9.2.2", [{restart_application, diameter}]}
+ {"1.9.2.2", [{restart_application, diameter}]},
+ {"1.9.2.3", [{load_module, diameter_service},
+ {load_module, diameter_traffic}]}
]
}.
--
cgit v1.2.3
From 2d0815f92c022ef1843d201aaf97ef1a5ed377a1 Mon Sep 17 00:00:00 2001
From: Anders Svensson
Date: Mon, 29 Feb 2016 17:11:10 +0100
Subject: vsn -> 1.9.2.4
---
lib/diameter/vsn.mk | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/diameter/vsn.mk b/lib/diameter/vsn.mk
index 851ae5c3cf..24107a5bdc 100644
--- a/lib/diameter/vsn.mk
+++ b/lib/diameter/vsn.mk
@@ -1,6 +1,6 @@
# %CopyrightBegin%
#
-# Copyright Ericsson AB 2010-2015. All Rights Reserved.
+# Copyright Ericsson AB 2010-2016. All Rights Reserved.
#
# The contents of this file are subject to the Erlang Public License,
# Version 1.1, (the "License"); you may not use this file except in
@@ -16,5 +16,5 @@
# %CopyrightEnd%
APPLICATION = diameter
-DIAMETER_VSN = 1.9.2.3
+DIAMETER_VSN = 1.9.2.4
APP_VSN = $(APPLICATION)-$(DIAMETER_VSN)$(PRE_VSN)
--
cgit v1.2.3
From 6b2aa68d78b43449598a82ef488343f7b9fe07ea Mon Sep 17 00:00:00 2001
From: Anders Svensson
Date: Mon, 7 Mar 2016 22:35:46 +0100
Subject: Fix dialyzer warnings
Whether making record declarations unreadable to compensate for
dialyzer's ignorance of match specs is worth it is truly debatable.
---
lib/diameter/src/base/diameter_service.erl | 19 +++++++++----------
lib/diameter/src/base/diameter_traffic.erl | 4 +++-
2 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/lib/diameter/src/base/diameter_service.erl b/lib/diameter/src/base/diameter_service.erl
index d83ed9e56b..cc4bb60ef7 100644
--- a/lib/diameter/src/base/diameter_service.erl
+++ b/lib/diameter/src/base/diameter_service.erl
@@ -1,7 +1,7 @@
%%
%% %CopyrightBegin%
%%
-%% Copyright Ericsson AB 2010-2015. All Rights Reserved.
+%% Copyright Ericsson AB 2010-2016. All Rights Reserved.
%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
@@ -136,16 +136,16 @@
peer = false :: match(boolean() | pid())}).
%% true at accepted, pid() at okay/reopen
-%% Record representing an Peer State Machine processes implemented by
+%% Record representing a Peer State Machine processes implemented by
%% diameter_peer_fsm.
-record(peer,
- {pid :: pid(),
- apps :: [{0..16#FFFFFFFF, diameter:app_alias()}] %% {Id, Alias}
- | [diameter:app_alias()], %% remote
- caps :: #diameter_caps{},
+ {pid :: pid(),
+ apps :: match([{0..16#FFFFFFFF, diameter:app_alias()}] %% {Id, Alias}
+ | [diameter:app_alias()]), %% remote
+ caps :: match(#diameter_caps{}),
started = now(), %% at process start or sharing
- watchdog :: pid() %% key into watchdogT
- | undefined}). %% undefined if remote
+ watchdog :: match(pid() %% key into watchdogT
+ | undefined)}). %% undefined if remote
%% ---------------------------------------------------------------------------
%% # start/1
@@ -579,8 +579,7 @@ init_peers({PeerT, _, _} = T, F)
PeerT);
%% Populate #peer{} table given a shared peers dict.
-init_peers({PeerT, _, _}, SDict)
- when is_integer(SDict) ->
+init_peers({PeerT, _, _}, SDict) ->
dict:fold(fun(P, As, N) ->
ets:update_element(PeerT, P, {#peer.apps, As}),
N+1
diff --git a/lib/diameter/src/base/diameter_traffic.erl b/lib/diameter/src/base/diameter_traffic.erl
index 004c1e80d5..401e7908b2 100644
--- a/lib/diameter/src/base/diameter_traffic.erl
+++ b/lib/diameter/src/base/diameter_traffic.erl
@@ -1,7 +1,7 @@
%%
%% %CopyrightBegin%
%%
-%% Copyright Ericsson AB 2013-2015. All Rights Reserved.
+%% Copyright Ericsson AB 2013-2016. All Rights Reserved.
%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
@@ -1574,6 +1574,8 @@ answer(Pkt,
Req) ->
a(Pkt, SvcName, ModX, AE, Req).
+-spec a(_, _, _) -> no_return(). %% silence dialyzer
+
a(#diameter_packet{errors = Es}
= Pkt,
SvcName,
--
cgit v1.2.3
From 3a8f2995caffacddabb3363453c6a7dbc33d6329 Mon Sep 17 00:00:00 2001
From: Erlang/OTP
Date: Thu, 10 Mar 2016 13:10:51 +0100
Subject: Prepare release
---
erts/doc/src/notes.xml | 19 +++++++++++++++++++
erts/vsn.mk | 2 +-
lib/diameter/doc/src/notes.xml | 32 ++++++++++++++++++++++++++++++++
lib/ssl/doc/src/notes.xml | 18 +++++++++++++++++-
lib/ssl/vsn.mk | 2 +-
5 files changed, 70 insertions(+), 3 deletions(-)
diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml
index 9ff2e5de08..24bcc76e4b 100644
--- a/erts/doc/src/notes.xml
+++ b/erts/doc/src/notes.xml
@@ -30,6 +30,25 @@
This document describes the changes made to the ERTS application.
+Erts 6.4.1.6
+
+ Fixed Bugs and Malfunctions
+
+ -
+
+ When calling garbage_collect/[1,2] or
+ check_process_code/[2,3] from a process with a
+ higher priority than the priority of the process operated
+ on, the run queues could end up in an inconsistent state.
+ This bug has now been fixed.
+
+ Own Id: OTP-13298 Aux Id: OTP-11388
+
+
+
+
+
+
Erts 6.4.1.5
Fixed Bugs and Malfunctions
diff --git a/erts/vsn.mk b/erts/vsn.mk
index 98946f4797..2aad279414 100644
--- a/erts/vsn.mk
+++ b/erts/vsn.mk
@@ -17,7 +17,7 @@
# %CopyrightEnd%
#
-VSN = 6.4.1.5
+VSN = 6.4.1.6
# Port number 4365 in 4.2
# Port number 4366 in 4.3
diff --git a/lib/diameter/doc/src/notes.xml b/lib/diameter/doc/src/notes.xml
index 2fc30db324..638b6e24b6 100644
--- a/lib/diameter/doc/src/notes.xml
+++ b/lib/diameter/doc/src/notes.xml
@@ -42,6 +42,38 @@ first.
+diameter 1.9.2.4
+
+ Fixed Bugs and Malfunctions
+
+ -
+
+ Fix handling of shared peer connections in watchdog state
+ SUSPECT.
+
+ A peer connection shared from a remote node was regarded
+ as being up for the lifetime of the connection, ignoring
+ watchdog transitions into state SUSPECT.
+
+ Own Id: OTP-13342
+
+
+
+
+
+ Improvements and New Features
+
+ -
+
+ no
+
+ Own Id: OTP-13385
+
+
+
+
+
+
diameter 1.9.2.3
Fixed Bugs and Malfunctions
diff --git a/lib/ssl/doc/src/notes.xml b/lib/ssl/doc/src/notes.xml
index 14df10b571..759a3b3fce 100644
--- a/lib/ssl/doc/src/notes.xml
+++ b/lib/ssl/doc/src/notes.xml
@@ -25,7 +25,23 @@
notes.xml
This document describes the changes made to the SSL application.
- SSL 6.0.1.1
+ SSL 6.0.1.2
+
+ Fixed Bugs and Malfunctions
+
+ -
+
+ Hibernation with small or a zero timeout will now work as
+ expected
+
+ Own Id: OTP-13189
+
+
+
+
+
+
+SSL 6.0.1.1
Fixed Bugs and Malfunctions
diff --git a/lib/ssl/vsn.mk b/lib/ssl/vsn.mk
index eedf8cf705..29f51032e1 100644
--- a/lib/ssl/vsn.mk
+++ b/lib/ssl/vsn.mk
@@ -1 +1 @@
-SSL_VSN = 6.0.1.1
+SSL_VSN = 6.0.1.2
--
cgit v1.2.3
From 6d4001de141a00b3bf37b8f7b24c5bde2b4f4015 Mon Sep 17 00:00:00 2001
From: Erlang/OTP
Date: Thu, 10 Mar 2016 13:10:52 +0100
Subject: Updated OTP version
---
OTP_VERSION | 2 +-
otp_versions.table | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/OTP_VERSION b/OTP_VERSION
index 946c38138e..abf9130e00 100644
--- a/OTP_VERSION
+++ b/OTP_VERSION
@@ -1 +1 @@
-17.5.6.8
+17.5.6.9
diff --git a/otp_versions.table b/otp_versions.table
index 726ca6bff7..f11b93b42d 100644
--- a/otp_versions.table
+++ b/otp_versions.table
@@ -1,3 +1,4 @@
+OTP-17.5.6.9 : diameter-1.9.2.4 erts-6.4.1.6 ssl-6.0.1.2 # asn1-3.0.4 common_test-1.10.1 compiler-5.0.4 cosEvent-2.1.15 cosEventDomain-1.1.14 cosFileTransfer-1.1.16 cosNotification-1.1.21 cosProperty-1.1.17 cosTime-1.1.14 cosTransactions-1.2.14 crypto-3.5 debugger-4.0.3.1 dialyzer-2.7.4 edoc-0.7.16 eldap-1.1.1 erl_docgen-0.3.7 erl_interface-3.7.20 et-1.5 eunit-2.2.9 gs-1.5.16 hipe-3.11.3 ic-4.3.6 inets-5.10.9 jinterface-1.5.12 kernel-3.2.0.1 megaco-3.17.3 mnesia-4.12.5 observer-2.0.4 odbc-2.10.22 orber-3.7.1 os_mon-2.3.1 ose-1.0.2 otp_mibs-1.0.10 parsetools-2.0.12 percept-0.8.10 public_key-0.23 reltool-0.6.6 runtime_tools-1.8.16.1 sasl-2.4.1 snmp-5.1.2 ssh-3.2.4 stdlib-2.4 syntax_tools-1.6.18 test_server-3.8.1 tools-2.7.2 typer-0.9.8 webtool-0.8.10 wx-1.3.3 xmerl-1.3.7 :
OTP-17.5.6.8 : diameter-1.9.2.3 # asn1-3.0.4 common_test-1.10.1 compiler-5.0.4 cosEvent-2.1.15 cosEventDomain-1.1.14 cosFileTransfer-1.1.16 cosNotification-1.1.21 cosProperty-1.1.17 cosTime-1.1.14 cosTransactions-1.2.14 crypto-3.5 debugger-4.0.3.1 dialyzer-2.7.4 edoc-0.7.16 eldap-1.1.1 erl_docgen-0.3.7 erl_interface-3.7.20 erts-6.4.1.5 et-1.5 eunit-2.2.9 gs-1.5.16 hipe-3.11.3 ic-4.3.6 inets-5.10.9 jinterface-1.5.12 kernel-3.2.0.1 megaco-3.17.3 mnesia-4.12.5 observer-2.0.4 odbc-2.10.22 orber-3.7.1 os_mon-2.3.1 ose-1.0.2 otp_mibs-1.0.10 parsetools-2.0.12 percept-0.8.10 public_key-0.23 reltool-0.6.6 runtime_tools-1.8.16.1 sasl-2.4.1 snmp-5.1.2 ssh-3.2.4 ssl-6.0.1.1 stdlib-2.4 syntax_tools-1.6.18 test_server-3.8.1 tools-2.7.2 typer-0.9.8 webtool-0.8.10 wx-1.3.3 xmerl-1.3.7 :
OTP-17.5.6.7 : diameter-1.9.2.2 # asn1-3.0.4 common_test-1.10.1 compiler-5.0.4 cosEvent-2.1.15 cosEventDomain-1.1.14 cosFileTransfer-1.1.16 cosNotification-1.1.21 cosProperty-1.1.17 cosTime-1.1.14 cosTransactions-1.2.14 crypto-3.5 debugger-4.0.3.1 dialyzer-2.7.4 edoc-0.7.16 eldap-1.1.1 erl_docgen-0.3.7 erl_interface-3.7.20 erts-6.4.1.5 et-1.5 eunit-2.2.9 gs-1.5.16 hipe-3.11.3 ic-4.3.6 inets-5.10.9 jinterface-1.5.12 kernel-3.2.0.1 megaco-3.17.3 mnesia-4.12.5 observer-2.0.4 odbc-2.10.22 orber-3.7.1 os_mon-2.3.1 ose-1.0.2 otp_mibs-1.0.10 parsetools-2.0.12 percept-0.8.10 public_key-0.23 reltool-0.6.6 runtime_tools-1.8.16.1 sasl-2.4.1 snmp-5.1.2 ssh-3.2.4 ssl-6.0.1.1 stdlib-2.4 syntax_tools-1.6.18 test_server-3.8.1 tools-2.7.2 typer-0.9.8 webtool-0.8.10 wx-1.3.3 xmerl-1.3.7 :
OTP-17.5.6.6 : erts-6.4.1.5 # asn1-3.0.4 common_test-1.10.1 compiler-5.0.4 cosEvent-2.1.15 cosEventDomain-1.1.14 cosFileTransfer-1.1.16 cosNotification-1.1.21 cosProperty-1.1.17 cosTime-1.1.14 cosTransactions-1.2.14 crypto-3.5 debugger-4.0.3.1 dialyzer-2.7.4 diameter-1.9.2.1 edoc-0.7.16 eldap-1.1.1 erl_docgen-0.3.7 erl_interface-3.7.20 et-1.5 eunit-2.2.9 gs-1.5.16 hipe-3.11.3 ic-4.3.6 inets-5.10.9 jinterface-1.5.12 kernel-3.2.0.1 megaco-3.17.3 mnesia-4.12.5 observer-2.0.4 odbc-2.10.22 orber-3.7.1 os_mon-2.3.1 ose-1.0.2 otp_mibs-1.0.10 parsetools-2.0.12 percept-0.8.10 public_key-0.23 reltool-0.6.6 runtime_tools-1.8.16.1 sasl-2.4.1 snmp-5.1.2 ssh-3.2.4 ssl-6.0.1.1 stdlib-2.4 syntax_tools-1.6.18 test_server-3.8.1 tools-2.7.2 typer-0.9.8 webtool-0.8.10 wx-1.3.3 xmerl-1.3.7 :
--
cgit v1.2.3