Erlang/OTP 26.2.5.4

This release of Erlang/OTP can be built from source or installed using pre-built packages for your OS or third-party tools (such as kerl or asdf).

docker run -it erlang:26.2.5.4

Potential Incompatibilities #

OTP-19158
Application(s):
inets

With this change, HTTP client, when returning an asynchronous request, now correctly takes into account `OptionRequest - full_result`

common_test-1.26.2.1 #

The common_test-1.26.2.1 application can be applied independently of other applications on a full OTP 26 installation.

OTP-19252
Application(s):
common_test
Related Id(s):
PR-8858

With this change, HTML reports include jQuery version 3.7.1.

OTP-19265
Application(s):
common_test
Related Id(s):
PR-8876

With this change, jquery and tablesorter licenses are added to COPYRIGHT file. Also tablesorter is updated to version 2.32.

OTP-19284
Application(s):
common_test
Related Id(s):
ERIERL-1093 , PR-8909

Fixed a bug where the sum of testcases' execution time in HTML logs was sometimes miscalculated, and the table was not fully printed.

Full runtime dependencies of common_test-1.26.2.1: compiler-6.0, crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4, observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0, stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8

compiler-8.4.3.2 #

The compiler-8.4.3.2 application can be applied independently of other applications on a full OTP 26 installation.

OTP-19270
Application(s):
compiler
Related Id(s):
GH-8783 , PR-8898

Fixed a bug where bogus code was generated for consecutive calls to erlang:setelement/2, potentially crashing the emulator.

Full runtime dependencies of compiler-8.4.3.2: crypto-5.1, erts-13.0, kernel-8.4, stdlib-5.0

crypto-5.4.2.2 #

The crypto-5.4.2.2 application can be applied independently of other applications on a full OTP 26 installation.

OTP-19212
Application(s):
crypto
Related Id(s):
GH-8562 , PR-8762

crypto built with --enable-fips will now accept an OpenSSL 3 lib without fips provider as long as fips mode is not enabled.

OTP-19223
Application(s):
crypto
Related Id(s):
GH-8769 , PR-8800

crypto:strong_rand_bytes/2 fixed to work on Ubuntu pro with installed FIPS support.

Full runtime dependencies of crypto-5.4.2.2: erts-9.0, kernel-5.3, stdlib-3.9

erts-14.2.5.4 #

The erts-14.2.5.4 application can be applied independently of other applications on a full OTP 26 installation.

OTP-19235
Application(s):
erts, kernel
Related Id(s):
ERIERL-1133 , PR-8837

A bug has been fixed where receiving an SCTP message with `gen_sctp` could waste the first fragments of a message and only deliver the last fragment.

This happened with low probability when the OS signaled that the socket was ready for reading in combination with an internal time-out retry.

A bug has been fixed with a lingering time-out from after an SCTP connect that could stop the flow of incoming messages on an active `gen_tcp` socket.

OTP-19251
Application(s):
erts
Related Id(s):
GH-8853

On Windows, successive failed socket calls caused socket to become "uninitialized".

OTP-19254
Application(s):
erts
Related Id(s):
GH-8848

The socket framework fails to start on a IPv6-only Windows machine.

OTP-19258
Application(s):
erts, kernel
Related Id(s):
ERIERL-1134 , OTP-19061

An boolean option `non_block_send` for SCTP, has ben added to be able to achieve the old behaviour to avoid blocking send operations by passing the OS network stack error message (`{error,eagain}` through.

OTP-19267
Application(s):
erts
Related Id(s):
ERIERL-1138 , GH-6455 , PR-8892 , OTP-18520

The call `gen_tcp:send/2` could hang indefinitely despite having set the `send_timeout` option for the following unfortunate combination of circumstances:

* The socket has to be in passive mode. * All output buffers had to be filled util the `high_watermark` was hit, causing the `gen_tcp:send/2` operation to block. * While the send operation was blocked, a `gen_tcp:recv/2,3` call had to be done from a different process. It had to block, waiting for data for a while before completing the operation, and the received packet had to fill at least 75% of the receive buffer.

Under these circumstances he information that a send operation was waiting got lost, so the send operation that blocked in the first placed would never return. The data it had would be sent, though, and send operations from other processes, still work.

This bug has been fixed.

OTP-19269
Application(s):
erts
Related Id(s):
GH-8835 , PR-8897

Fixed beam crash that could happen if resetting call_time or call_memory trace counters of a function while it is called. Bug exists since OTP R16.

Full runtime dependencies of erts-14.2.5.4: kernel-9.0, sasl-3.3, stdlib-4.1

inets-9.1.0.1 #

The inets-9.1.0.1 application can be applied independently of other applications on a full OTP 26 installation.

OTP-19158
Application(s):
inets

*** POTENTIAL INCOMPATIBILITY ***

With this change, HTTP client, when returning an asynchronous request, now correctly takes into account `OptionRequest - full_result`

OTP-19221
Application(s):
inets
Related Id(s):
ERIERL-1091 , PR-8788 , PR-8801

With this change, synchronous httpc:request now timeouts after `Timeout` specified in `HttpOption {timeout, Timeout}`

Full runtime dependencies of inets-9.1.0.1: erts-14.0, kernel-9.0, mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0, stdlib-5.0, stdlib-5.0

kernel-9.2.4.3 #

The kernel-9.2.4.3 application can be applied independently of other applications on a full OTP 26 installation.

OTP-19235
Application(s):
erts, kernel
Related Id(s):
ERIERL-1133 , PR-8837

A bug has been fixed where receiving an SCTP message with `gen_sctp` could waste the first fragments of a message and only deliver the last fragment.

This happened with low probability when the OS signaled that the socket was ready for reading in combination with an internal time-out retry.

A bug has been fixed with a lingering time-out from after an SCTP connect that could stop the flow of incoming messages on an active `gen_tcp` socket.

OTP-19258
Application(s):
erts, kernel
Related Id(s):
ERIERL-1134 , OTP-19061

An boolean option `non_block_send` for SCTP, has ben added to be able to achieve the old behaviour to avoid blocking send operations by passing the OS network stack error message (`{error,eagain}` through.

Full runtime dependencies of kernel-9.2.4.3: crypto-5.0, erts-14.0, sasl-3.0, stdlib-5.0

public_key-1.15.1.3 #

The public_key-1.15.1.3 application can be applied independently of other applications on a full OTP 26 installation.

OTP-19238
Application(s):
public_key
Related Id(s):
PR-8831

Do not hide crypto badarg reason, this error handling enhancement facilitates debugging. These kind of runtime errors are not documented and should never be relied on for matching, they are intended for catching input errors early.

Full runtime dependencies of public_key-1.15.1.3: asn1-3.0, crypto-4.6, erts-6.0, kernel-3.0, stdlib-3.5

ssh-5.1.4.3 #

The ssh-5.1.4.3 application can be applied independently of other applications on a full OTP 26 installation.

OTP-19124
Application(s):
ssh
Related Id(s):
GH-7550 , PR-8766

With this change, a race condition is removed from ssh client connection setup procedure.

OTP-19246
Application(s):
ssh
Related Id(s):
GH-8223 , PR-8854

With this change, ssh:connect is not affected by presence of EXIT message in queue.

OTP-19247
Application(s):
ssh
Related Id(s):
PR-8226

With this change, ssh appends {active, false} option after socket options received from user - so that false value is always used.

Full runtime dependencies of ssh-5.1.4.3: crypto-5.0, erts-14.0, kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0, stdlib-5.0

ssl-11.1.4.4 #

The ssl-11.1.4.4 application can be applied independently of other applications on a full OTP 26 installation.

OTP-19236
Application(s):
ssl
Related Id(s):
PR-8261

Starting from TLS-1.3 some server handshake alerts might arrive after ssl:connection/2,3,4 has returned. If the socket is in active mode the controlling process will get the alert message, but passive sockets would only get {error, closed} on next call to ssl:recv/2,3 or ssl/setopts/2. Passive sockets calls will now return {error, error_alert()} instead.

OTP-19249
Application(s):
ssl
Related Id(s):
ERIERL-1137 , PR-8866

Refactor trying to also make some optimizations introduced a bug in signature algorithms checks in OTP-26.2.1. This could manifest itself in not being able to negotiate connections using certificates needing to use some TLS-1.2 compatibility legacy signature schemes.

OTP-19257
Application(s):
ssl
Related Id(s):
ERIERL-1131

Servers configured to support only version (pre TLS-1.2) should ignore hello version extension, as it is an unknown extension to them, this will result in that new clients that do not support the old server version will get an insufficient security alert from the server and not a protocol version alert, this is consistent with how old servers not able to support higher protocol versions work.

OTP-19274
Application(s):
ssl
Related Id(s):
PR-8901

Correct timeout handling for termination code run for own alerts, so that intended timeout is used instead of falling back to OS TCP-stack timeout that is unreasonably long on some platforms.

Full runtime dependencies of ssl-11.1.4.4: crypto-5.0, erts-14.0, inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1, stdlib-4.1

stdlib-5.2.3.2 #

The stdlib-5.2.3.2 application can be applied independently of other applications on a full OTP 26 installation.

OTP-19256
Application(s):
stdlib
Related Id(s):
PR-8780

With this change, shutdown procedure handles a race condition between supervisor executing a shutdown and child process termination from other reason.

OTP-19266
Application(s):
stdlib
Related Id(s):
ERIERL-1127 , PR-8890

With this change, uri_string:normalize assumes empty path (do not crash) when no path is provided in the URI map.

Full runtime dependencies of stdlib-5.2.3.2: compiler-5.0, crypto-4.5, erts-13.1, kernel-9.0, sasl-3.0

xmerl-1.3.34.1 #

The xmerl-1.3.34.1 application can be applied independently of other applications on a full OTP 26 installation.

OTP-19217
Application(s):
xmerl
Related Id(s):
ERIERL-1104

Corrected export functions from internal structure to XML so xmlText items of type cdata are handled correctly. They were just exported as normal text instead of output in a CDATA section.

Full runtime dependencies of xmerl-1.3.34.1: erts-6.0, kernel-3.0, stdlib-2.5

Thanks To #

Jakub Witczak