Erlang/OTP 22.3.4.11

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:22.3.4.11
Patch Package OTP 22.3.4.11
Git Tag OTP-22.3.4.11
Date 2020-10-02
Issue Id
ERIERL-500
ERIERL-532
System OTP
Release 22
Application

erts-10.7.2.4 #

Note! The erts-10.7.2.4 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-16847
Application(s):
erts
Related Id(s):
ERL-1301

inet:setopts([{active,once}]) wakes up IO polling thread unnecessarily, leading to lock contention and visibly higher CPU utilization.

OTP-16866
Application(s):
erts
Related Id(s):
ERL-1355

The documentation of statistics(run_queue) erroneously stated that it returns the total length of all normal run queues when it is the total length of all normal and dirty CPU run queues that is returned. The documentation has been updated to reflect the actual behavior.

OTP-16870
Application(s):
erts

Two bugs in the ERTS internal thread wakeup functionality have been fixed. These bugs mainly hit when all threads in the system tried to go to sleep. When the bugs were triggered, certain operations were delayed until a thread woke up due to some other reason. Most important operations effected were code loading, persistent term updates, and memory deallocation.

OTP-16874
Application(s):
erts
Related Id(s):
ERL-1356 , PR-2763

Fixed bug in ets:select_replace/2 on compressed tables that could produce faulty results or VM crash. Bug exists since OTP 20.

OTP-16856
Application(s):
erts

As of OTP 22, the allocator specific memory carrier pools were replaced by a node global carrier pool. This unfortunately caused substantial memory fragmentation in some cases due to long lived data being spread into carriers used by allocators mainly handling short lived data.

A new command line argument +M<S>cp has been introduced with which one can enable the old behavior as well as configuring other behaviors for the carrier pools. In order to configure the old behavior, with allocator specific carrier pools for all allocators, pass +Mucp : (including the colon character) as a command line argument to erl when starting the Erlang system.

The default configuration for carrier pools will be changed to +Mucp : some time in the future, but not in this patch.

Full runtime dependencies of erts-10.7.2.4: kernel-6.5.1, sasl-3.3, stdlib-3.5

mnesia-4.16.3.1 #

The mnesia-4.16.3.1 application can be applied independently of other applications on a full OTP 22 installation.

OTP-16815
Application(s):
mnesia
Related Id(s):
ERIERL-500

Fixed crash during startup, which could happen if a table was deleted on another node.

Full runtime dependencies of mnesia-4.16.3.1: erts-9.0, kernel-5.3, stdlib-3.4

os_mon-2.5.1.1 #

The os_mon-2.5.1.1 application can be applied independently of other applications on a full OTP 22 installation.

OTP-16906
Application(s):
os_mon
Related Id(s):
ERIERL-532

The configuration parameter memsup_improved_system_memory_data has been introduced. It can be used to modify the result returned by memsup:get_system_memory_data(). For more information see the memsup documentation.

Note that the configuration parameter is intended to be removed in OTP 24 and the modified result is intended to be used as of OTP 24.

Full runtime dependencies of os_mon-2.5.1.1: erts-6.0, kernel-3.0, sasl-2.4, stdlib-2.0

ssh-4.9.1.2 #

Note! The ssh-4.9.1.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: -- crypto-4.6.4 (first satisfied in OTP 22.2.2)

OTP-16904
Application(s):
ssh

Fix decoder bug.

Full runtime dependencies of ssh-4.9.1.2: crypto-4.6.4, erts-9.0, kernel-5.3, public_key-1.6.1, stdlib-3.4.1