Erlang/OTP 23.3

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:23.3

OTP-23.3 #

OTP-17164
Application(s):
otp
Related Id(s):
ERL-845 , PR-2613

Correct documentation of specifications of remote functions.

common_test-1.20 #

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

OTP-16959
Application(s):
common_test, crypto, erts
Related Id(s):
PR-2965

Various address sanitizer support.

Full runtime dependencies of common_test-1.20: 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.6.7 #

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

OTP-17073
Application(s):
compiler

Fixed a bug in the type optimization pass that could yield incorrect values or cause the wrong clauses to be executed.

OTP-17126
Application(s):
compiler
Related Id(s):
ERL-1471

Fixed a bug in the validator that could cause it to reject valid code.

Full runtime dependencies of compiler-7.6.7: crypto-3.6, erts-11.0, hipe-3.12, kernel-7.0, stdlib-3.13

crypto-4.9 #

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

OTP-17212
Application(s):
crypto

Fix minor memory leaks in crypto ENGINE and robustify the code.

OTP-17256
Application(s):
crypto
Related Id(s):
GH-4573 , PR-4580

The otp_test_engine no longer fails if NO_EC* is set in the OpenSSL configuration.

OTP-16959
Application(s):
common_test, crypto, erts
Related Id(s):
PR-2965

Various address sanitizer support.

OTP-17116
Application(s):
crypto
Related Id(s):
PR-2972

EVP is now disabled for OpenSSL cryptolib versions up to and including 1.0.2

OTP-17145
Application(s):
crypto
Related Id(s):
OTP-17105 , PR-2872

Warning for unused C function removed

Full runtime dependencies of crypto-4.9: erts-9.0, kernel-5.3, stdlib-3.4

dialyzer-4.3.1 #

The dialyzer-4.3.1 application can be applied independently of other applications on a full OTP 23 installation.

OTP-17091
Application(s):
dialyzer

Correct handling of PLTs in the GUI.

Full runtime dependencies of dialyzer-4.3.1: compiler-7.0, erts-9.0, hipe-3.16.1, kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2

eldap-1.2.9 #

The eldap-1.2.9 application can be applied independently of other applications on a full OTP 23 installation.

OTP-17166
Application(s):
eldap
Related Id(s):
PR-2904

Add ability to specify size limit on ldap requests

Full runtime dependencies of eldap-1.2.9: asn1-3.0, erts-6.0, kernel-3.0, ssl-5.3.4, stdlib-2.0

erts-11.2 #

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

OTP-17081
Application(s):
erts
Related Id(s):
PR-2930

Fix memory leak of about 6 words when erlang:process_flag/3 is called with a pid of an already dead process. Bug exists since OTP-21.0.

OTP-17089
Application(s):
erts
Related Id(s):
PR-2934

Fixed small memory leak in erl_drv_send_term and erl_drv_output_term when failing due to the term being invalid.

OTP-17096
Application(s):
erts
Related Id(s):
PR-2932

The DTrace/SystemTap process_heap_grow probe is now called with valid the heap and stack pointers for the process in question.

OTP-17124
Application(s):
erts

Fixed a performance issue in memory allocation for Linux kernels that didn't support MADV_FREE.

OTP-17127
Application(s):
erts, jinterface

A new link protocol has been introduced which prevents links from ending up in an inconsistent state where one participant considers itself linked while the other doesn't. This bug has always existed in the distributed case, but has since OTP 21 also existed in the node local case since the distributed link protocol then was adopted also for node local links. The bug could, however, only trigger if both participants operated on the link simultaneously.

OTP-17163
Application(s):
erts

Fix memory leak when receiving sigchld from port program to already dead port.

OTP-17209
Application(s):
erts, kernel
Related Id(s):
PR-3039

Fix bug where complex seq_trace tokens (that is lists, tuples, maps etc) could becomes corrupted by the GC. The bug was introduced in OTP-21.

OTP-17229
Application(s):
erts

Fixed WSLPATH environment variable addition to PATH on windows, the last character was lost.

OTP-17253
Application(s):
erts

Fixed a bug in the timer implementation which could cause timers that were set to more than 37.25 hours in the future to be delayed. This could occur if there were multiple timers scheduled to be triggered very close in time, but still at different times, and the scheduler thread handling the timers was not able to handle them quickly enough. Delayed timers were in this case triggered when another unrelated timer was triggered.

OTP-17265
Application(s):
erts
Related Id(s):
PR-4596

Fixed small memory leak in erlang:trace/3 if option {tracer,_} is included and the option list is invalid or the call races with a concurrent trace or code change operation.

OTP-17283
Application(s):
erts

Fix configure check for inet_pton on 32-bit windows. The failure of this check would cause epmd to be built without ipv6 support.

OTP-16959
Application(s):
common_test, crypto, erts
Related Id(s):
PR-2965

Various address sanitizer support.

OTP-17002
Application(s):
erts

The emulator will now honor cgroup2 CPU quotas.

OTP-17195
Application(s):
erts
Related Id(s):
PR-4505 , PR-4538

Improved memory barrier usage on ARMv8 hardware, and specifically on Apple silicon.

OTP-17200
Application(s):
erts
Related Id(s):
PR-4510

Improved memory barrier usage on 64-bit POWER hardware.

OTP-17244
Application(s):
erts

Fix a file descriptor leak when using sendfile and the remote side closes the connection. This bug has been present since OTP-21.0.

OTP-17252
Application(s):
erts
Related Id(s):
PR-4568

Refinement of the documentation of the message_queue_data process flag.

Full runtime dependencies of erts-11.2: kernel-7.0, sasl-3.3, stdlib-3.13

jinterface-1.11.1 #

The jinterface-1.11.1 application can be applied independently of other applications on a full OTP 23 installation.

OTP-17127
Application(s):
erts, jinterface

A new link protocol has been introduced which prevents links from ending up in an inconsistent state where one participant considers itself linked while the other doesn't. This bug has always existed in the distributed case, but has since OTP 21 also existed in the node local case since the distributed link protocol then was adopted also for node local links. The bug could, however, only trigger if both participants operated on the link simultaneously.

kernel-7.3 #

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

OTP-13641
Application(s):
kernel
Related Id(s):
PR-2959

The range check for compression pointers in DNS encoding was faulty, which caused incorrect label compression encoding for very large DNS messages; larger than about 16 kBytes, such as AXFR responses. This more than 11 year old bug has now been corrected.

OTP-17202
Application(s):
kernel
Related Id(s):
PR-4516

Fix of internal links in the erpc documentation.

OTP-17209
Application(s):
erts, kernel
Related Id(s):
PR-3039

Fix bug where complex seq_trace tokens (that is lists, tuples, maps etc) could becomes corrupted by the GC. The bug was introduced in OTP-21.

OTP-17223
Application(s):
kernel
Related Id(s):
GH-4546 , PR-4554

When running Xref in the modules mode, the Debugger application would show up as a depency for the Kernel applications.

OTP-17178
Application(s):
kernel
Related Id(s):
PR-3003

erl_epmd (the epmd client) will now try to reconnect to the local EPMD if the connection is broken.

Full runtime dependencies of kernel-7.3: erts-11.0, sasl-3.0, stdlib-3.13

mnesia-4.19 #

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

OTP-17249
Application(s):
mnesia
Related Id(s):
PR-4578

Fixed the type spec for disc_only_copies.

OTP-17274
Application(s):
mnesia
Related Id(s):
GH-4616

Do not crash in mnesia:change_config/2 if mnesia is stopping or starting.

OTP-17271
Application(s):
mnesia
Related Id(s):
PR-4575

Optimized table loading time for tables that are updated during the loading.

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

odbc-2.13.3 #

The odbc-2.13.3 application can be applied independently of other applications on a full OTP 23 installation.

OTP-17188
Application(s):
odbc
Related Id(s):
ERL-1448

Make sure odbc c-process exits when erlang process orders it to shutdown.

Full runtime dependencies of odbc-2.13.3: erts-6.0, kernel-3.0, stdlib-2.0

public_key-1.10 #

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

OTP-17242
Application(s):
public_key
Related Id(s):
GH-4500

Fixed case insensitive hostname check.

OTP-16907
Application(s):
public_key

Add sanity check of trusted anchor certificate expiration to pkix_path_validation/3. Although the anchor is considered a trusted input this sanity check does provide extra security for the users of the public_key application as this property needs to be checked at time of usage and fits very well with the other checks performed here.

OTP-17111
Application(s):
public_key

Adjust generation of test certificates to conform to RFC 5280 rules for formatting of the certificates validity

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

runtime_tools-1.16 #

The runtime_tools-1.16 application can be applied independently of other applications on a full OTP 23 installation.

OTP-17208
Application(s):
runtime_tools
Related Id(s):
GH-4502 , PR-4532

Clarify documentation of module 'scheduler'.

Full runtime dependencies of runtime_tools-1.16: erts-11.0, kernel-7.0, mnesia-4.12, stdlib-3.13

sasl-4.0.2 #

The sasl-4.0.2 application can be applied independently of other applications on a full OTP 23 installation.

OTP-17113
Application(s):
sasl
Related Id(s):
ERL-1410 , PR-2882

Fix dependent application to be stopped after the primary application when upgrading a release and the primary and dependent application is removed.

Example: In a release where app1 depends on app2 and we should remove app1 and app2 using a release upgrade. When the release upgrade is done app1 should be stopped and purged before app2 as otherwise app1 could start crashing when its dependency is removed.

This bugfix changes the order of removal to be correct.

Full runtime dependencies of sasl-4.0.2: erts-10.2, kernel-5.3, stdlib-3.4, tools-2.6.14

snmp-5.8 #

The snmp-5.8 application can be applied independently of other applications on a full OTP 23 installation.

OTP-17109
Application(s):
snmp
Related Id(s):
ERIERL-583

Add function to get a list of configured agent transports. Also improved agent info with regards to transports.

Full runtime dependencies of snmp-5.8: crypto-3.3, erts-6.0, kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5

ssh-4.11 #

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

OTP-17197
Application(s):
ssh
Related Id(s):
3049 , PR-

The long name field in SSH_FXP_NAME responses to display file information in sftp version 3 now contains the expanded format defined in the sftp draft. It is similar to what is returned by "ls -l" on Unix systems.

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

ssl-10.3 #

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

OTP-17261
Application(s):
ssl
Related Id(s):
GH-4589

Fix CRL handling that previously could fail to find the issuer cert under some circumstances.

OTP-17281
Application(s):
ssl
Related Id(s):
GH-4620

TLS-1.3 client could, under some circumstances, select an incorrect algorithm to sign the certificate verification message causing a TLS Decrypt Alert being issued by the server.

OTP-17282
Application(s):
ssl

Correct handling of default values for emulated socket options and retain the order of the ssl options list to ensure backwards compatible behavior if options should be set more than once.

OTP-16876
Application(s):
ssl

Enhance pre TLS-1.3 session handling so the client and server side handling is completely separated and client disregards oldest session when reaching max limit of the session table.

OTP-16985
Application(s):
ssl

This change implements the early data feature for TLS 1.3 clients.

TLS 1.3 allows clients to send data in the first flight using a Pre-Shared Key to authenticate the server and to encrypt the early data.

OTP-17042
Application(s):
ssl

This change implements the early data feature for TLS 1.3 servers.

Full runtime dependencies of ssl-10.3: crypto-4.2, erts-10.0, inets-5.10.7, kernel-6.0, public_key-1.8, stdlib-3.12

stdlib-3.14.1 #

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

OTP-16978
Application(s):
stdlib

Handle maps in erl_parse:tokens().

OTP-17182
Application(s):
stdlib
Related Id(s):
PR-3002

The erlang shell function rr has been fixed to be able to read records from files within a code archive.

OTP-17194
Application(s):
stdlib, tools
Related Id(s):
GH-4353

If beam_lib is asked to return abstract code for a BEAM file produced by Elixir and Elixir is not installed on the computer, beam_lib will no longer crash, but will return an error tuple. The cover:compile_beam() and cover:compile_beam_directory() functions have been updated to also return an error tuple in that situation.

OTP-17273
Application(s):
stdlib

Correct example module erl_id_trans regarding the {char, C} type.

Full runtime dependencies of stdlib-3.14.1: compiler-5.0, crypto-3.3, erts-11.0, kernel-7.0, sasl-3.0

syntax_tools-2.5 #

The syntax_tools-2.5 application can be applied independently of other applications on a full OTP 23 installation.

OTP-17064
Application(s):
syntax_tools
Related Id(s):
GH-4445 , PR-2964

epp_dodger was unable to handle a parameterized macro in a function head.

OTP-17167
Application(s):
syntax_tools
Related Id(s):
OTP-17046

All functions in erl_tidy in syntax_tools have now been deprecated and are scheduled for removal in OTP 24. Users who still need it can find it at https://github.com/richcarl/erl_tidy.

Full runtime dependencies of syntax_tools-2.5: compiler-7.0, erts-9.0, kernel-5.0, stdlib-3.4

tools-3.4.4 #

The tools-3.4.4 application can be applied independently of other applications on a full OTP 23 installation.

OTP-17162
Application(s):
tools
Related Id(s):
GH-4549 , PR-2997 , PR-4555 , elixir-lang/elixir#10666

cover would crash when compiling a module having an exported function named clauses.

OTP-17194
Application(s):
stdlib, tools
Related Id(s):
GH-4353

If beam_lib is asked to return abstract code for a BEAM file produced by Elixir and Elixir is not installed on the computer, beam_lib will no longer crash, but will return an error tuple. The cover:compile_beam() and cover:compile_beam_directory() functions have been updated to also return an error tuple in that situation.

OTP-17225
Application(s):
tools
Related Id(s):
GH-4451 , PR-4542

Make emacs mode work on emacs-27.

Full runtime dependencies of tools-3.4.4: compiler-5.0, erts-11.0, erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4

wx-1.9.3 #

The wx-1.9.3 application can be applied independently of other applications on a full OTP 23 installation.

OTP-17187
Application(s):
wx

Fixed wx initialization on mac, top level menus did not always work on newer MacOS versions. The menues will not work until wxWidgets-3.1.5 is released and used on these MacOS versions.

Full runtime dependencies of wx-1.9.3: erts-6.0, kernel-3.0, stdlib-2.0

Thanks To #

Abdullah Al-Shehabi, Alexander Clouter, Andrew Shymanel, Bruce Yinhe, Dieter Schoen, Erwan Le Pape, Henrik Lagebrand, Jonatas Cardador, José Valim, Jérôme de Bretagne, Leo Liu, Maria-12648430, Mark Peek, Maxim Fedorov, Mikael Pettersson, Niklas Åholm, Péter Gömöri, Radek Szymczyszyn, Robert Gionea, Sebastian Smyczyński, Sergei Trofimovich, Simon Cornish, Stavros Aronis, Steve Vinoski, Tyler Stromberg, dong50252409, ergl, tehprofessor