Patch Package: OTP 22.3
Git Tag: OTP-22.3
Date: 2020-03-16
Trouble Report Id: OTP-15856, OTP-16039, OTP-16059, OTP-16153,
OTP-16158, OTP-16212, OTP-16253, OTP-16258,
OTP-16306, OTP-16309, OTP-16321, OTP-16322,
OTP-16340, OTP-16348, OTP-16350, OTP-16351,
OTP-16352, OTP-16353, OTP-16356, OTP-16364,
OTP-16377, OTP-16380, OTP-16381, OTP-16384,
OTP-16387, OTP-16399, OTP-16404, OTP-16412,
OTP-16414, OTP-16417, OTP-16418, OTP-16420,
OTP-16425, OTP-16427, OTP-16428, OTP-16435,
OTP-16437, OTP-16438, OTP-16439, OTP-16440,
OTP-16447, OTP-16449, OTP-16450, OTP-16458,
OTP-16468, OTP-16472, OTP-16475, OTP-16476,
OTP-16477, OTP-16479, OTP-16481, OTP-16485,
OTP-16491, OTP-16493, OTP-16498, OTP-16514,
OTP-16515, OTP-16528, OTP-16542, OTP-16548
Seq num: ERIERL-439, ERIERL-452, ERIERL-455,
ERIERL-459, ERL-1070, ERL-1099, ERL-1110,
ERL-1127, ERL-1135, ERL-1140, ERL-1147,
ERL-1151, ERL-1175, ERL-1182, ERL-1191,
ERL-795, ERL-814, ERL-991
System: OTP
Release: 22
Application: asn1-5.0.10, common_test-1.18.2,
compiler-7.5.3, crypto-4.6.5, diameter-2.2.3,
erl_interface-3.13.2, erts-10.7, eunit-2.4.1,
hipe-3.19.3, kernel-6.5.2, megaco-3.18.8,
mnesia-4.16.3, public_key-1.7.2, sasl-3.4.2,
snmp-5.5, ssh-4.9, ssl-9.6, stdlib-3.12,
tools-3.3.1
Predecessor: OTP 22.2.8
Check out the git tag OTP-22.3, and build a full OTP system including
documentation. Apply one or more applications from this build as
patches to your installation using the 'otp_patch_apply' tool. For
information on install requirements, see descriptions for each
application version below.
---------------------------------------------------------------------
--- HIGHLIGHTS ------------------------------------------------------
---------------------------------------------------------------------
OTP-15856 Application(s): ssl
Implementation of the key and initialization vector
update feature, and general hardening of TLS 1.3.
There are cryptographic limits on the amount of
plaintext which can be safely encrypted under a given
set of keys.
This change enforces those limits by triggering
automatic key updates on TLS 1.3 connections.
OTP-16253 Application(s): ssl
Add support for TLS 1.3 Session Tickets (stateful and
stateless). This allows session resumption using keying
material from a previous successful handshake.
OTP-16309 Application(s): erts, sasl
A socket "registry" has been added making it possible
to list current open sockets.
OTP-16485 Application(s): ssh
The new functions ssh:set_sock_opts/2 and
ssh:get_sock_opts/2 sets and reads option values for
the underlying TCP stream.
---------------------------------------------------------------------
--- asn1-5.0.10 -----------------------------------------------------
---------------------------------------------------------------------
The asn1-5.0.10 application can be applied independently of other
applications on a full OTP 22 installation.
--- Improvements and New Features ---
OTP-16542 Application(s): asn1
Related Id(s): PR-2159
Fix 'DEFAULT' with 'OCTET STRING' and 'SEQUENCE OF
CHOICE' with extensions.
Full runtime dependencies of asn1-5.0.10: erts-7.0, kernel-3.0,
stdlib-2.0
---------------------------------------------------------------------
--- common_test-1.18.2 ----------------------------------------------
---------------------------------------------------------------------
The common_test-1.18.2 application can be applied independently of
other applications on a full OTP 22 installation.
--- Improvements and New Features ---
OTP-16039 Application(s): common_test
Related Id(s): ERL-795
Document incl_apps cover option
OTP-16340 Application(s): common_test
The ct_property_test has now a report function for
results of stateful testing.
OTP-16364 Application(s): common_test
Related Id(s): PR-2480
Don't hide error reasons from user
Full runtime dependencies of common_test-1.18.2: compiler-6.0,
crypto-3.6, debugger-4.1, erts-7.0, ftp-1.0.0, inets-6.0, kernel-4.0,
observer-2.1, runtime_tools-1.8.16, sasl-2.4.2, snmp-5.1.2, ssh-4.0,
stdlib-3.5, syntax_tools-1.7, tools-2.8, xmerl-1.3.8
---------------------------------------------------------------------
--- compiler-7.5.3 --------------------------------------------------
---------------------------------------------------------------------
The compiler-7.5.3 application can be applied independently of other
applications on a full OTP 22 installation.
--- Fixed Bugs and Malfunctions ---
OTP-16350 Application(s): compiler
A 'receive' with an 'after 0' clause would prevent the
optimization that can avoid scanning the entire receive
queue when matching on a newly created reference.
OTP-16418 Application(s): compiler, hipe
HiPE can again handle modules with catch and try
constructs.
OTP-16515 Application(s): compiler
Fixed a bug in bit-syntax optimization that could crash
the compiler.
Full runtime dependencies of compiler-7.5.3: crypto-3.6, erts-9.0,
hipe-3.12, kernel-4.0, stdlib-2.5
---------------------------------------------------------------------
--- crypto-4.6.5 ----------------------------------------------------
---------------------------------------------------------------------
The crypto-4.6.5 application can be applied independently of other
applications on a full OTP 22 installation.
--- Fixed Bugs and Malfunctions ---
OTP-16428 Application(s): crypto
Related Id(s): PR-2511
Fixed potential memory leaks involving calls to the
crypto ng_api.
Full runtime dependencies of crypto-4.6.5: erts-9.0, kernel-5.3,
stdlib-3.4
---------------------------------------------------------------------
--- diameter-2.2.3 --------------------------------------------------
---------------------------------------------------------------------
The diameter-2.2.3 application can be applied independently of other
applications on a full OTP 22 installation.
--- Fixed Bugs and Malfunctions ---
OTP-16548 Application(s): diameter
Related Id(s): ERL-1191
Add the 'first' tuple to type diameter:peer_filter/0.
The filter was added in OTP-17.5.6.8 and OTP-18.3, but
neither release updated the type specification.
Full runtime dependencies of diameter-2.2.3: erts-10.0, kernel-3.2,
ssl-9.0, stdlib-2.4
---------------------------------------------------------------------
--- erl_interface-3.13.2 --------------------------------------------
---------------------------------------------------------------------
The erl_interface-3.13.2 application can be applied independently of
other applications on a full OTP 22 installation.
--- Fixed Bugs and Malfunctions ---
OTP-16412 Application(s): erl_interface
Related Id(s): PR-2503
Fix link error "multiple definition of
`ei_default_socket_callbacks'" for gcc version 10 or
when built with gcc option -fno-common. Error exists
since OTP-21.3.
---------------------------------------------------------------------
--- erts-10.7 -------------------------------------------------------
---------------------------------------------------------------------
Note! The erts-10.7 application *cannot* be applied independently of
other applications on an arbitrary OTP 22 installation.
On a full OTP 22 installation, also the following runtime
dependency has to be satisfied:
-- kernel-6.5.1 (first satisfied in OTP 22.2)
--- Fixed Bugs and Malfunctions ---
OTP-16059 Application(s): erts
gen_udp:recv(S, N, 0) corrupted the internal state for
the socket so after receive with {active, once} it
always returned {error, timeout}, and wasted the
received UDP packets. This bug has now been fixed.
Reported and pinpointed by Alexander Petrovsky.
OTP-16381 Application(s): erts
The atom esock_atom_user and esock_atom_kernel was
never actually created. This has now been corrected.
OTP-16384 Application(s): erts
Fixed bug in socket module that could potentially lead
to scheduler deadlocks.
OTP-16399 Application(s): erts
Fix bug causing VM crash if down or stop callback of a
NIF resource is called after the NIF module has been
purged. The fix will postpone unloading until all such
resource objects have been garbage collected.
OTP-16404 Application(s): erts
Related Id(s): ERL-1127
Fixed bug in ets:update_counter/4, when called with an
invalid UpdateOp and a Key that does not exist, causing
ets:info(T,size) to return incorrect values. Bug exists
since OTP-19.0.2.
OTP-16417 Application(s): erts
Fix potential heap corrupting bugs when a process calls
a BIF that blocks other normal schedulers and then
writes to its own heap without the main process lock. A
NIF running on a dirty scheduler trying to interact
with such a process could corrupt its heap. The fixed
BIFs were related to code loading and tracing.
OTP-16438 Application(s): erts
Fixed bug in erlang:list_to_ref/1 when called with a
reference created by a remote note. Function
list_to_ref/1 is intended for debugging and not to be
used in application programs. Bug exist since OTP 20.0.
OTP-16440 Application(s): erts, kernel
The prim_net nif (net/kernel) made use of an undefined
atom, notsup. This has now been corrected.
OTP-16481 Application(s): erts
Corrected the valid range of the erl command line
argument +SDio <NumberOfDirtyIoSchedulers> from 0..1024
to 1..1024. +SDio 0 was erroneously allowed which just
caused the VM to crash on the first dirty I/O job
scheduled.
OTP-16491 Application(s): erts, kernel
Fix a crash when attempting to log faults when loading
files during early boot.
--- Improvements and New Features ---
OTP-16153 Application(s): erts
For socket, not all send and receive flags are
supported on all platforms. In order to (at least)
simplify testing, the socket:supports/0,1,2,3 functions
has been extended with send_flags and recv_flags items,
which indicates what the current platform can manage.
OTP-16212 Application(s): erts
Related Id(s): ERL-1070
Add a "full featured" version of getifaddrs in the net
module.
OTP-16306 Application(s): erts
Related Id(s): ERIERL-439
The options busy_limits_port and busy_limits_msgq have
been added to the BIF erlang:open_port/2. The
busy_limits_port option can be used for controlling the
busy state of a port executing the spawn_driver or the
fd_driver. The busy_limits_msgq option can be used for
controlling the busy state of the port message queue.
OTP-16309 Application(s): erts, sasl
*** HIGHLIGHT ***
A socket "registry" has been added making it possible
to list current open sockets.
OTP-16387 Application(s): erts
The counters managed by the socket nif has been
extended. Their "size" has been increased from 32 bit
to 64. Two max package size (for read and write) has
been added. And four accept counters has been added.
OTP-16420 Application(s): erts
Related Id(s): PR-2513
Add gcc option -fno-common to detect accidental name
clashes of global variables.
OTP-16427 Application(s): erts
New dynamic lock checker that verifies locking orders
and detects potential deadlock bugs in drivers and
NIFs. Enabled together with the old static lock checker
(for ERTS internal locks) in emulator started with
-emu_type debug or built with configuration option
--enable-lock-checking.
Full runtime dependencies of erts-10.7: kernel-6.5.1, sasl-3.3,
stdlib-3.5
---------------------------------------------------------------------
--- eunit-2.4.1 -----------------------------------------------------
---------------------------------------------------------------------
The eunit-2.4.1 application can be applied independently of other
applications on a full OTP 22 installation.
--- Improvements and New Features ---
OTP-16380 Application(s): eunit
Related Id(s): ERL-991, PR-2316, PR-2487
Backport of PR-2316: Strip control codes from
eunit_surefire output to avoid generation of invalid
xml
Full runtime dependencies of eunit-2.4.1: erts-9.0, kernel-5.3,
stdlib-3.4
---------------------------------------------------------------------
--- hipe-3.19.3 -----------------------------------------------------
---------------------------------------------------------------------
The hipe-3.19.3 application can be applied independently of other
applications on a full OTP 22 installation.
--- Fixed Bugs and Malfunctions ---
OTP-16418 Application(s): compiler, hipe
HiPE can again handle modules with catch and try
constructs.
OTP-16475 Application(s): hipe
Related Id(s): ERL-1175
When the return value for try/catch was ignored, the
native code compiler could crash.
Full runtime dependencies of hipe-3.19.3: compiler-5.0, erts-9.3,
kernel-5.3, stdlib-3.4, syntax_tools-1.6.14
---------------------------------------------------------------------
--- kernel-6.5.2 ----------------------------------------------------
---------------------------------------------------------------------
Note! The kernel-6.5.2 application *cannot* be applied independently
of other applications on an arbitrary OTP 22 installation.
On a full OTP 22 installation, also the following runtime
dependency has to be satisfied:
-- erts-10.6 (first satisfied in OTP 22.2)
--- Fixed Bugs and Malfunctions ---
OTP-16414 Application(s): kernel
Related Id(s): ERIERL-452
The DNS resolver `inet_res` has been fixed to return
the last intermediate error when subsequent requests
times out.
OTP-16440 Application(s): erts, kernel
The prim_net nif (net/kernel) made use of an undefined
atom, notsup. This has now been corrected.
OTP-16491 Application(s): erts, kernel
Fix a crash when attempting to log faults when loading
files during early boot.
OTP-16493 Application(s): kernel
Related Id(s): ERIERL-459
Fix crash in logger when logging to a remote node
during boot.
--- Improvements and New Features ---
OTP-16458 Application(s): kernel
Related Id(s): PR-2525
Improved net_kernel debug functionality.
Full runtime dependencies of kernel-6.5.2: erts-10.6, sasl-3.0,
stdlib-3.5
---------------------------------------------------------------------
--- megaco-3.18.8 ---------------------------------------------------
---------------------------------------------------------------------
The megaco-3.18.8 application can be applied independently of other
applications on a full OTP 22 installation.
--- Fixed Bugs and Malfunctions ---
OTP-16449 Application(s): megaco
The documented function
megaco:get_sdp_record_from_PropertGroup/2 was a wrapper
for megaco_sdp:get_sdp_record_from_PropertGroup/2 but
did not actually exist. This has now been fixed.
--- Improvements and New Features ---
OTP-16158 Application(s): megaco
Test suite completely reworked. Add (timestamp) utility
functions for debugging and testing.
Full runtime dependencies of megaco-3.18.8: asn1-3.0, debugger-4.0,
erts-7.0, et-1.5, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5
---------------------------------------------------------------------
--- mnesia-4.16.3 ---------------------------------------------------
---------------------------------------------------------------------
The mnesia-4.16.3 application can be applied independently of other
applications on a full OTP 22 installation.
--- Fixed Bugs and Malfunctions ---
OTP-16468 Application(s): mnesia
Related Id(s): ERL-1151
Fixed a timing issue in uninstall fallback
functionality.
Full runtime dependencies of mnesia-4.16.3: erts-9.0, kernel-5.3,
stdlib-3.4
---------------------------------------------------------------------
--- public_key-1.7.2 ------------------------------------------------
---------------------------------------------------------------------
The public_key-1.7.2 application can be applied independently of
other applications on a full OTP 22 installation.
--- Improvements and New Features ---
OTP-16528 Application(s): public_key, ssl
Add support for key exchange with Edward curves and
PSS-RSA padding in signature verification.
Full runtime dependencies of public_key-1.7.2: asn1-3.0, crypto-3.8,
erts-6.0, kernel-3.0, stdlib-3.5
---------------------------------------------------------------------
--- sasl-3.4.2 ------------------------------------------------------
---------------------------------------------------------------------
The sasl-3.4.2 application can be applied independently of other
applications on a full OTP 22 installation.
--- Improvements and New Features ---
OTP-16309 Application(s): erts, sasl
*** HIGHLIGHT ***
A socket "registry" has been added making it possible
to list current open sockets.
Full runtime dependencies of sasl-3.4.2: erts-10.2, kernel-5.3,
stdlib-3.4, tools-2.6.14
---------------------------------------------------------------------
--- snmp-5.5 --------------------------------------------------------
---------------------------------------------------------------------
The snmp-5.5 application can be applied independently of other
applications on a full OTP 22 installation.
--- Improvements and New Features ---
OTP-16447 Application(s): snmp
Related Id(s): ERIERL-455, OTP-16382
A simple supervision of the snmp manager net-if process
has been added. Also, a way to forcibly restart the
net-if process has been added. This could be useful if
the net-if process hangs for some reason.
OTP-16450 Application(s): snmp
Misc documentation corrections
Full runtime dependencies of snmp-5.5: crypto-3.3, erts-6.0,
kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5
---------------------------------------------------------------------
--- ssh-4.9 ---------------------------------------------------------
---------------------------------------------------------------------
Note! The ssh-4.9 application *cannot* be applied independently of
other applications on an arbitrary OTP 22 installation.
On a full OTP 22 installation, also the following runtime
dependency has to be satisfied:
-- crypto-4.6.4 (first satisfied in OTP 22.2.2)
--- Fixed Bugs and Malfunctions ---
OTP-16377 Application(s): ssh
Unicode problems for ssh_sftp:write fixed.
--- Improvements and New Features ---
OTP-16353 Application(s): ssh
Changes to the internal api of the experimental ssh_dbg
tool.
OTP-16485 Application(s): ssh
*** HIGHLIGHT ***
The new functions ssh:set_sock_opts/2 and
ssh:get_sock_opts/2 sets and reads option values for
the underlying TCP stream.
Full runtime dependencies of ssh-4.9: crypto-4.6.4, erts-9.0,
kernel-5.3, public_key-1.6.1, stdlib-3.4.1
---------------------------------------------------------------------
--- ssl-9.6 ---------------------------------------------------------
---------------------------------------------------------------------
Note! The ssl-9.6 application *cannot* be applied independently of
other applications on an arbitrary OTP 22 installation.
On a full OTP 22 installation, also the following runtime
dependency has to be satisfied:
-- public_key-1.7.2 (first satisfied in OTP 22.3)
--- Fixed Bugs and Malfunctions ---
OTP-16258 Application(s): ssl
Correct handling of TLS record limit in TLS-1.3. The
max value differs from previous versions. Also the
payload data max record check was broken, that is
record overflow problems could occur if user sent large
amounts of data.
OTP-16348 Application(s): ssl
Related Id(s): ERL-1110
Correct close handling for DTLS
OTP-16352 Application(s): ssl
Related Id(s): ERL-1099
Fix ssl:getstat/1-2 to also work for DTLS sockets
OTP-16425 Application(s): ssl
Correct internal handling och socket active mode to
avoid reviving TCP data aimed for a downgraded TLS
socket.
OTP-16437 Application(s): ssl
Related Id(s): ERL-1135
When using the host name as fallback for SNI (server
name indication) strip a possible trailing dot that is
allowed in a host name but not in the SNI. Also if the
server receives a SNI with a trailing dot send an
UNRECOGNIZED_NAME alert.
OTP-16479 Application(s): ssl
Immediately remove session entries if handshake is
abruptly closed at transport level.
--- Improvements and New Features ---
OTP-15856 Application(s): ssl
*** HIGHLIGHT ***
Implementation of the key and initialization vector
update feature, and general hardening of TLS 1.3.
There are cryptographic limits on the amount of
plaintext which can be safely encrypted under a given
set of keys.
This change enforces those limits by triggering
automatic key updates on TLS 1.3 connections.
OTP-16253 Application(s): ssl
*** HIGHLIGHT ***
Add support for TLS 1.3 Session Tickets (stateful and
stateless). This allows session resumption using keying
material from a previous successful handshake.
OTP-16528 Application(s): public_key, ssl
Add support for key exchange with Edward curves and
PSS-RSA padding in signature verification.
Full runtime dependencies of ssl-9.6: crypto-4.2, erts-10.0,
inets-5.10.7, kernel-6.0, public_key-1.7.2, stdlib-3.5
---------------------------------------------------------------------
--- stdlib-3.12 -----------------------------------------------------
---------------------------------------------------------------------
Note! The stdlib-3.12 application *cannot* be applied independently
of other applications on an arbitrary OTP 22 installation.
On a full OTP 22 installation, also the following runtime
dependency has to be satisfied:
-- erts-10.6.2 (first satisfied in OTP 22.2.2)
--- Fixed Bugs and Malfunctions ---
OTP-16322 Application(s): stdlib
Fix type specification for uri_string:normalize/2 that
may also return error().
OTP-16351 Application(s): stdlib
Improve error handling in uri_string:normalize/2. This
change fixes a crash when the input URI has faulty
percent-encoding.
OTP-16435 Application(s): stdlib
Fix minor bugs in the Erlang pretty printer (erl_pp).
OTP-16439 Application(s): stdlib
Fix the Erlang parser regarding consecutive unary
operators.
OTP-16514 Application(s): stdlib
Related Id(s): ERL-1182
Let calendar:rfc3339_to_system_time() crash when the
time offset is missing.
--- Improvements and New Features ---
OTP-16321 Application(s): stdlib
Implement uri_string:resolve/{2,3} that can be used to
resolve a URI reference against a base URI.
OTP-16477 Application(s): stdlib
Related Id(s): PR-2531
In gen_statem it is now possible to change the callback
module for a running server. See gen_statem's
documentation for change_callback_module,
push_callback_module, and pop_callback_module.
Full runtime dependencies of stdlib-3.12: compiler-5.0, crypto-3.3,
erts-10.6.2, kernel-6.0, sasl-3.0
---------------------------------------------------------------------
--- tools-3.3.1 -----------------------------------------------------
---------------------------------------------------------------------
The tools-3.3.1 application can be applied independently of other
applications on a full OTP 22 installation.
--- Fixed Bugs and Malfunctions ---
OTP-16356 Application(s): tools
An Emacs warning due to lacking type in defcustom
declaration has been fixed.
OTP-16472 Application(s): tools
Related Id(s): ERL-1140
Improve emacs indentation.
OTP-16476 Application(s): tools
Related Id(s): ERL-1147
The cover tool could generate instrumented code for a
module that would cause warnings to be issued.
OTP-16498 Application(s): tools
Related Id(s): ERL-814
Fixed generated fprof analysis format to also handle
data in maps.
Full runtime dependencies of tools-3.3.1: compiler-5.0, erts-9.1,
kernel-5.4, runtime_tools-1.8.14, stdlib-3.4
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------