Patch Package | OTP 22.3 |
Git Tag | OTP-22.3 |
Date | 2020-03-16 |
Issue Id | |
System | OTP |
Release | 22 |
Application |
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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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)
- 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.
- 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.
- OTP-16380
-
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.
- 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)
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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)
- OTP-16377
-
- Application(s):
- ssh
Unicode problems for ssh_sftp:write fixed.
- 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)
- 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.
- 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)
- 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.
- 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.
- 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