Patch Package: OTP 28.1
Git Tag: OTP-28.1
Date: 2025-09-17
Trouble Report Id: OTP-16607, OTP-19552, OTP-19619, OTP-19642,
OTP-19646, OTP-19647, OTP-19648, OTP-19649,
OTP-19651, OTP-19655, OTP-19657, OTP-19659,
OTP-19660, OTP-19666, OTP-19667, OTP-19669,
OTP-19671, OTP-19677, OTP-19681, OTP-19685,
OTP-19686, OTP-19688, OTP-19689, OTP-19693,
OTP-19694, OTP-19696, OTP-19698, OTP-19704,
OTP-19706, OTP-19714, OTP-19719, OTP-19721,
OTP-19722, OTP-19723, OTP-19724, OTP-19725,
OTP-19726, OTP-19727, OTP-19728, OTP-19730,
OTP-19731, OTP-19733, OTP-19735, OTP-19736,
OTP-19737, OTP-19739, OTP-19745, OTP-19749,
OTP-19752, OTP-19754, OTP-19756, OTP-19757,
OTP-19758, OTP-19759, OTP-19760
Seq num: ERIERL-1209, ERIERL-1231, GH-10002, GH-10020,
GH-10057, GH-10061, GH-10065, GH-10072,
GH-10077, GH-10079, GH-10097, GH-10102,
GH-5697, GH-5756, GH-9631, GH-9638, GH-9771,
GH-9816, GH-9875, GH-9901, GH-9903, GH-9972,
GH-9987, OTP-16608, PR-10004, PR-10009,
PR-10011, PR-10014, PR-10019, PR-10034,
PR-10046, PR-10051, PR-10066, PR-10076,
PR-10084, PR-10085, PR-10087, PR-10090,
PR-10091, PR-10093, PR-10094, PR-10104,
PR-10106, PR-10108, PR-10112, PR-10113,
PR-10120, PR-10121, PR-10140, PR-10142,
PR-10146, PR-10147, PR-10153, PR-9589,
PR-9721, PR-9796, PR-9815, PR-9832, PR-9843,
PR-9853, PR-9862, PR-9869, PR-9876, PR-9879,
PR-9896, PR-9897, PR-9898, PR-9900, PR-9906,
PR-9909, PR-9912, PR-9927, PR-9949, PR-9954,
PR-9969, PR-9976, PR-9982, PR-9990
System: OTP
Release: 28
Application: asn1-5.4.2, common_test-1.29, compiler-9.0.2,
crypto-5.7, debugger-6.0.3, edoc-1.4.1,
erl_interface-5.6.1, erts-16.1, inets-9.4.2,
kernel-10.4, megaco-4.8.1, mnesia-4.24.1,
observer-2.18.1, os_mon-2.11.1,
public_key-1.18.3, runtime_tools-2.3,
snmp-5.19.1, ssl-11.4, stdlib-7.1,
syntax_tools-4.0.1, tools-4.1.3, wx-2.5.2,
xmerl-2.1.6
Predecessor: OTP 28.0.4
Check out the git tag OTP-28.1, 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
-
Added support for quantum crypto signature algorithm ML-DSA (ssl and
public_key) and key exchange algorithm ML-KEM (ssl).Own Id: OTP-19552
Application(s): public_key, ssl
Related Id(s): PR-10004 -
A Userâs Guide to
dbgis now available in the documentation.Own Id: OTP-19655
Application(s): runtime_tools
Related Id(s): PR-9853 -
Support for ML-DSA and ML-KEM provided by OpenSSL 3.5.
Algorithms
mldsa44,mldsa65andmldsa87can be passed tocrypto:sign/4
andcrypto:verify/5.New functions
crypto:encapsulate_key/2andcrypto:decapsulate_key/3can be
used withmlkem512,mlkem768andmlkem1024to safely generate and
communicate an encapsulated shared secret.Own Id: OTP-19657
Application(s): crypto
Related Id(s): PR-9900 -
TLS server now fails early for supplied PEM file issues, such as the file not
being found.Own Id: OTP-19706
Application(s): ssl
Related Id(s): GH-9631, PR-10046
POTENTIAL INCOMPATIBILITIES
-
The internal
inet_dns_tsigandinet_resmodules have been fixed to TSIG
verify the correct timestamp.In the process two undocumented error code atoms have been corrected to
notauthandnotzoneto adhere to the DNS RFCs. Code that relied on the
previous incorrect values may have to be corrected.Own Id: OTP-19756
Application(s): kernel
Related Id(s): PR-10146
OTP-28.1
Fixed Bugs and Malfunctions
-
When any Erlang/OTP application has been disabled by
configure, warnings
fromex_docwhen building the documentation are now disabled. -
./otp_buildnow respectsTYPEandFLAVORto when set.Own Id: OTP-19677
Related Id(s): PR-9954 -
Rendering of some tables in the documentation has been improved.
Own Id: OTP-19752
Related Id(s): PR-10142
Improvements and New Features
-
In Efficiency Guide, the section about
setelement/3in Common Caveats has
been updated.Own Id: OTP-19749
Related Id(s): PR-10140
asn1-5.4.2
The asn1-5.4.2 application can be applied independently of other applications on
a full OTP 28 installation.
Fixed Bugs and Malfunctions
-
Decoding a constrained BIT STRING using JER was broken.
Own Id: OTP-19681
Related Id(s): PR-9949 -
NIFs and linked-in drivers are now loadable when running in an Erlang source
tree on Windows.Own Id: OTP-19686
Related Id(s): PR-9969
Full runtime dependencies of asn1-5.4.2
erts-14.0, kernel-9.0, stdlib-5.0
common_test-1.29
The common_test-1.29 application can be applied independently of other
applications on a full OTP 28 installation.
Improvements and New Features
-
Improved printing of maps. Map keys are now printed in the same order as
maps:iterator(Map, ordered)would sort them.Own Id: OTP-19642
Related Id(s): ERIERL-1231, PR-9862 -
ct:printwill now suppress printing of timestamp and heading when the
heading option is set to the empty string.Own Id: OTP-19714
Related Id(s): PR-10051
Full runtime dependencies of common_test-1.29
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-9.0.2
The compiler-9.0.2 application can be applied independently of other
applications on a full OTP 28 installation.
Fixed Bugs and Malfunctions
-
Fixed a compiler crash caused by patch order in destructive update.
-
Fixed a compiler crash in
beam_ssa_pre_codegencaused by wrong handling of
multiple phi patches in the destructive update pass. -
Fixed a crash when a zip generator contains a map pattern.
-
In rare circumstances, the compiler could crash when compiling code using bit
syntax construction. -
A few minor bugs that could affect the
beam_debug_infooption were fixed.Own Id: OTP-19758
Related Id(s): PR-10153
Full runtime dependencies of compiler-9.0.2
crypto-5.1, erts-13.0, kernel-8.4, stdlib-6.0
crypto-5.7
The crypto-5.7 application can be applied independently of other applications on
a full OTP 28 installation.
Fixed Bugs and Malfunctions
-
NIFs and linked-in drivers are now loadable when running in an Erlang source
tree on Windows.Own Id: OTP-19686
Related Id(s): PR-9969 -
Fixed bug seen to cause beam crash when doing
init:restart()withcrypto
statically linked to OpenSSL (--disable-dynamic-ssl-lib). Bug exists since
OTP 28.0. -
Fixed
crypto:strong_rand_bytesfailing afterinit:restarton MacOS with
statically linked OpenSSL. -
Fixed
crypto:hash(shake128 | shake256)for OpenSSL 3.4 and newer. -
Rendering of some tables in the documentation has been improved.
Own Id: OTP-19752
Related Id(s): PR-10142
Improvements and New Features
-
Support for ML-DSA and ML-KEM provided by OpenSSL 3.5.
Algorithms
mldsa44,mldsa65andmldsa87can be passed tocrypto:sign/4
andcrypto:verify/5.New functions
crypto:encapsulate_key/2andcrypto:decapsulate_key/3can be
used withmlkem512,mlkem768andmlkem1024to safely generate and
communicate an encapsulated shared secret.Own Id: OTP-19657
Related Id(s): PR-9900*** HIGHLIGHT ***
-
Added support for SHA2 512/224 and SHA2 512/256 truncated hashes.
Own Id: OTP-19666
Related Id(s): PR-9721
Full runtime dependencies of crypto-5.7
erts-9.0, kernel-6.0, stdlib-3.9
debugger-6.0.3
The debugger-6.0.3 application can be applied independently of other
applications on a full OTP 28 installation.
Fixed Bugs and Malfunctions
Full runtime dependencies of debugger-6.0.3
compiler-8.0, erts-15.0, kernel-10.0, stdlib-7.0, wx-2.0
edoc-1.4.1
The edoc-1.4.1 application can be applied independently of other applications on
a full OTP 28 installation.
Fixed Bugs and Malfunctions
-
Rendering of some tables in the documentation has been improved.
Own Id: OTP-19752
Related Id(s): PR-10142
Full runtime dependencies of edoc-1.4.1
erts-11.0, inets-5.10, kernel-7.0, stdlib-4.0, syntax_tools-2.0, xmerl-1.3.7
erl_interface-5.6.1
The erl_interface-5.6.1 application can be applied independently of other
applications on a full OTP 28 installation.
Improvements and New Features
-
Fixed C compiler warnings generated by codechecker.
Own Id: OTP-19671
Related Id(s): PR-9832
Known Bugs and Problems
-
The
eiAPI for decoding/encoding terms is not fully 64-bit compatible since
terms that have a representation on the external term format larger than 2 GB
cannot be handled.Own Id: OTP-16607
Related Id(s): OTP-16608
erts-16.1
The erts-16.1 application can be applied independently of other applications on
a full OTP 28 installation.
Fixed Bugs and Malfunctions
-
Made sure to not set any terminal settings when they have not been changed.
Doing so can trigger a SIGTTOU signal which would terminate Erlang when it
should not.Own Id: OTP-19685
Related Id(s): PR-9906 -
As an optimization, when the
unicode:characters_to_binary/3was used to
convert fromlatin1toutf8or vice versa, it would return the original
binary unchanged if it only contained 7-bit ASCII characters. That
otpimization was broken in Erlang/OTP 27, and has now been mended.
Improvements and New Features
-
Fixed C compiler warnings generated by codechecker.
Own Id: OTP-19671
Related Id(s): PR-9832 -
Added support in module
refor export and import of compiled regular
expression in order to safely move them between Erlang node instances.Own Id: OTP-19730
Related Id(s): PR-9976 -
Added new
erlcommand line flag+Mumadtn <bool>causingMADV_DONTNEEDto
be passed tomadvise()instead ofMADV_FREE.Own Id: OTP-19739
Related Id(s): PR-10113
Full runtime dependencies of erts-16.1
kernel-9.0, sasl-3.3, stdlib-4.1
inets-9.4.2
The inets-9.4.2 application can be applied independently of other applications
on a full OTP 28 installation.
Fixed Bugs and Malfunctions
-
Fixed a RFC 2616 violation, where a http request, made by httpc, without
providing any options, would be sent with an empty TE header, without also
having a TE value in the connection header. Now the default request doesnât
send a TE header at all.
Full runtime dependencies of inets-9.4.2
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-6.0
kernel-10.4
The kernel-10.4 application can be applied independently of other applications
on a full OTP 28 installation.
Fixed Bugs and Malfunctions
-
A remote shell can now exit by closing the input stream, without terminating
the remote node.Own Id: OTP-19667
Related Id(s): PR-9912 -
The internal
inet_dns_tsigandinet_resmodules have been fixed to TSIG
verify the correct timestamp.In the process two undocumented error code atoms have been corrected to
notauthandnotzoneto adhere to the DNS RFCs. Code that relied on the
previous incorrect values may have to be corrected.Own Id: OTP-19756
Related Id(s): PR-10146*** POTENTIAL INCOMPATIBILITY ***
Improvements and New Features
-
The rudimentary DNS resolver
inet_reshas aqcuired 3 new functions
inet_res:gethostbyname/4,inet_res;getbyname/4and
inet_res:gethostbyaddr/3, that all take an option list argument.This option list can be used to override the Kernel applicationâs resolver
options when calling theinet_resfunction directly.Own Id: OTP-19737
Related Id(s): ERIERL-1209, PR-10112
Full runtime dependencies of kernel-10.4
crypto-5.0, erts-15.2.5, sasl-3.0, stdlib-6.0
megaco-4.8.1
The megaco-4.8.1 application can be applied independently of other applications
on a full OTP 28 installation.
Fixed Bugs and Malfunctions
-
Documentation improvements.
Own Id: OTP-19669
Related Id(s): PR-9927 -
Rendering of some tables in the documentation has been improved.
Own Id: OTP-19752
Related Id(s): PR-10142
Full runtime dependencies of megaco-4.8.1
asn1-3.0, debugger-4.0, erts-12.0, et-1.5, kernel-8.0, runtime_tools-1.8.14,
stdlib-2.5
mnesia-4.24.1
The mnesia-4.24.1 application can be applied independently of other applications
on a full OTP 28 installation.
Fixed Bugs and Malfunctions
-
Mnesia no longer crashes when the node name is used as a table name.
Own Id: OTP-19745
Related Id(s): PR-10147
Full runtime dependencies of mnesia-4.24.1
erts-9.0, kernel-5.3, stdlib-5.0
observer-2.18.1
The observer-2.18.1 application can be applied independently of other
applications on a full OTP 28 installation.
Fixed Bugs and Malfunctions
-
etopwill now fully stop before returning frometop:stop/0.Own Id: OTP-19754
Related Id(s): PR-9815
Full runtime dependencies of observer-2.18.1
erts-15.0, et-1.5, kernel-10.0, runtime_tools-2.1, stdlib-5.0, wx-2.3
os_mon-2.11.1
The os_mon-2.11.1 application can be applied independently of other applications
on a full OTP 28 installation.
Fixed Bugs and Malfunctions
-
NIFs and linked-in drivers are now loadable when running in an Erlang source
tree on Windows.Own Id: OTP-19686
Related Id(s): PR-9969
Full runtime dependencies of os_mon-2.11.1
erts-14.0, kernel-9.0, sasl-4.2.1, stdlib-5.0
public_key-1.18.3
Note! The public_key-1.18.3 application cannot be applied independently of
other applications on an arbitrary OTP 28 installation.
On a full OTP 28 installation, also the following runtime
dependency has to be satisfied:
-- crypto-5.7 (first satisfied in OTP 28.1)
Fixed Bugs and Malfunctions
-
NIFs and linked-in drivers are now loadable when running in an Erlang source
tree on Windows.Own Id: OTP-19686
Related Id(s): PR-9969 -
Added missing reference to
SignedAttributesso that it now works with the
der_encodeandder_decodefunctions.Own Id: OTP-19727
Related Id(s): PR-10091
Improvements and New Features
-
Added support for quantum crypto signature algorithm ML-DSA (ssl and
public_key) and key exchange algorithm ML-KEM (ssl).Own Id: OTP-19552
Related Id(s): PR-10004*** HIGHLIGHT ***
Full runtime dependencies of public_key-1.18.3
asn1-5.0, crypto-5.7, erts-13.0, kernel-8.0, stdlib-4.0
runtime_tools-2.3
The runtime_tools-2.3 application can be applied independently of other
applications on a full OTP 28 installation.
Fixed Bugs and Malfunctions
-
NIFs and linked-in drivers are now loadable when running in an Erlang source
tree on Windows.Own Id: OTP-19686
Related Id(s): PR-9969
Improvements and New Features
-
The default tracer is now aware that it is started by a remote shell
(-remsh), in which case the traces will be sent to the remote group_leader
to make the traces visible in the remote shell.Own Id: OTP-19648
Related Id(s): PR-9589 -
A Userâs Guide to
dbgis now available in the documentation.Own Id: OTP-19655
Related Id(s): PR-9853*** HIGHLIGHT ***
Full runtime dependencies of runtime_tools-2.3
erts-16.0, kernel-10.0, mnesia-4.12, stdlib-6.0
snmp-5.19.1
The snmp-5.19.1 application can be applied independently of other applications
on a full OTP 28 installation.
Fixed Bugs and Malfunctions
-
Using ASN.1 generated code for decode/encode of basic types, starting with
Counter64.
Improvements and New Features
-
Reworked the timer handling of the (SNMP) manager start notification feature.
Own Id: OTP-19696
Related Id(s): PR-10014 -
Added missing specs to already documented functions.
Own Id: OTP-19723
Related Id(s): PR-10087
Full runtime dependencies of snmp-5.19.1
asn1-5.4, crypto-4.6, erts-12.0, kernel-8.0, mnesia-4.12,
runtime_tools-1.8.14, stdlib-5.0
ssl-11.4
Note! The ssl-11.4 application cannot be applied independently of other
applications on an arbitrary OTP 28 installation.
On a full OTP 28 installation, also the following runtime
dependencies have to be satisfied:
-- crypto-5.7 (first satisfied in OTP 28.1)
-- public_key-1.18.3 (first satisfied in OTP 28.1)
Fixed Bugs and Malfunctions
-
The sender side is now closed if an error occurs on the socket.
Own Id: OTP-19694
Related Id(s): PR-10011 -
The PEM cache process no longer crashes when a configured file has been
deleted before it could be read. -
Corrected handling of
ssl:sockname/1for DTLS, so that it now will return
the correct result in all situations. -
Rendering of some tables in the documentation has been improved.
Own Id: OTP-19752
Related Id(s): PR-10142
Improvements and New Features
-
Added support for quantum crypto signature algorithm ML-DSA (ssl and
public_key) and key exchange algorithm ML-KEM (ssl).Own Id: OTP-19552
Related Id(s): PR-10004*** HIGHLIGHT ***
-
Now allowing
send/2to buffer data when using sockets backend. Use
âhigh_watermarkâ and âlow_watermarkâ to steer buffering as gen_tcp does.Own Id: OTP-19651
Related Id(s): PR-9879 -
Now allowing the PSK identity to be the empty string in TLS-1.2 for
compatibility reasons. It is allowed according to the spec, although providing
a proper value makes more sense.Own Id: OTP-19688
Related Id(s): PR-9843 -
TLS server now fails early for supplied PEM file issues, such as the file not
being found.Own Id: OTP-19706
Related Id(s): GH-9631, PR-10046*** HIGHLIGHT ***
Full runtime dependencies of ssl-11.4
crypto-5.7, erts-16.0, inets-5.10.7, kernel-10.3, public_key-1.18.3,
runtime_tools-1.15.1, stdlib-7.0
stdlib-7.1
Note! The stdlib-7.1 application cannot be applied independently of other
applications on an arbitrary OTP 28 installation.
On a full OTP 28 installation, also the following runtime
dependency has to be satisfied:
-- erts-16.0.3 (first satisfied in OTP 28.0.3)
Fixed Bugs and Malfunctions
-
The
save_module/1command in the shell now saves both the locally defined
records and the imported records using therr/1command. -
Itâs now possible to write
lists:map(fun is_atom/1, [])or
lists:map(fun my_func/1, [])in the shell, instead of
lists:map(fun erlang:is_atom/1, [])or
lists:map(fun shell_default:my_func/1, []). -
The shell no longer crashes when requesting to auto-complete map keys
containing non-atoms.Own Id: OTP-19659
Related Id(s): PR-9896 -
A remote shell can now exit by closing the input stream, without terminating
the remote node.Own Id: OTP-19667
Related Id(s): PR-9912 -
Fixed guard check for
is_record/2in the linter.
Improvements and New Features
-
Added a flag option
shell_hintsand functionshell:hints/1. You can now
disable the warning in the shell when a command is taking longer than 5
seconds.Own Id: OTP-19759
Related Id(s): PR-10121
Full runtime dependencies of stdlib-7.1
compiler-5.0, crypto-4.5, erts-16.0.3, kernel-10.0, sasl-3.0,
syntax_tools-3.2.1
syntax_tools-4.0.1
The syntax_tools-4.0.1 application can be applied independently of other
applications on a full OTP 28 installation.
Fixed Bugs and Malfunctions
-
Fixed zip generator crash in
annotate_bindings/1
Full runtime dependencies of syntax_tools-4.0.1
compiler-9.0, erts-16.0, kernel-10.3, stdlib-7.0
tools-4.1.3
The tools-4.1.3 application can be applied independently of other applications
on a full OTP 28 installation.
Improvements and New Features
-
Fixed some deprecations for newer emacs versions.
Own Id: OTP-19726
Related Id(s): PR-10106
Full runtime dependencies of tools-4.1.3
compiler-8.5, erts-15.0, erts-15.0, kernel-10.0, runtime_tools-2.1, stdlib-6.0
wx-2.5.2
The wx-2.5.2 application can be applied independently of other applications on a
full OTP 28 installation.
Fixed Bugs and Malfunctions
-
NIFs and linked-in drivers are now loadable when running in an Erlang source
tree on Windows.Own Id: OTP-19686
Related Id(s): PR-9969 -
Now avoiding that wx crashes the VM when running on OTP28+ due to one of the
new compiler hardening options.
Improvements and New Features
-
wxwas missing licenses that come from OpenGL documentation and wxWidgets
documentation.Own Id: OTP-19735
Related Id(s): PR-10094
Full runtime dependencies of wx-2.5.2
erts-12.0, kernel-8.0, stdlib-5.0
xmerl-2.1.6
The xmerl-2.1.6 application can be applied independently of other applications
on a full OTP 28 installation.
Fixed Bugs and Malfunctions
-
Corrected the bug that comments couldnât be exported.
#xmlCommentelements is now exported when callingexport/3or
export_simple/3and similar functions. Top level comments will only be
exported if one creates and export elements as a document.
Full runtime dependencies of xmerl-2.1.6
erts-6.0, kernel-8.4, stdlib-2.5
Thanks to
Alberto Sartori, Alexander Clouter, ausimian, Danil Zagoskin, dependabot[bot],
Dmytro Lytovchenko, Dunya Kokoschka, HÄkan Stenholm, Hans Svensson, Jan Uhlig,
Magnus Henoch, Mend Renovate, Paulo Tomé, Rodolfo Carvalho, Savvas Nicholas,
Simon Oulevay, Tomas Abrahamsson, Tom Schuster, Yaroslav Maslennikov