Patch Package OTP 27.2 Released
Erlang/OTP
otp@REDACTED
Wed Dec 11 10:46:48 CET 2024
Patch Package: OTP 27.2
Git Tag: OTP-27.2
Date: 2024-12-11
Trouble Report Id: OTP-19158, OTP-19221, OTP-19223, OTP-19225,
OTP-19232, OTP-19234, OTP-19243, OTP-19248,
OTP-19253, OTP-19260, OTP-19261, OTP-19264,
OTP-19270, OTP-19273, OTP-19280, OTP-19281,
OTP-19282, OTP-19283, OTP-19284, OTP-19289,
OTP-19292, OTP-19299, OTP-19300, OTP-19301,
OTP-19302, OTP-19304, OTP-19305, OTP-19307,
OTP-19309, OTP-19310, OTP-19320, OTP-19321,
OTP-19322, OTP-19329, OTP-19330, OTP-19331,
OTP-19333, OTP-19335, OTP-19338, OTP-19341,
OTP-19342, OTP-19344, OTP-19351, OTP-19353,
OTP-19360, OTP-19361, OTP-19362, OTP-19368,
OTP-19370, OTP-19372, OTP-19373, OTP-19375,
OTP-19377, OTP-19379, OTP-19380, OTP-19387
Seq num: ERIERL-1091, ERIERL-1093, ERIERL-1149,
ERIERL-1152, ERIERL-1154, GH-7466, GH-8487,
GH-8510, GH-8544, GH-8706, GH-8755, GH-8759,
GH-8769, GH-8783, GH-8810, GH-8815, GH-8818,
GH-8821, GH-8829, GH-8867, GH-8899, GH-8903,
GH-8942, GH-8948, GH-8963, GH-8983, GH-8997,
GH-9027, GH-9087, PR-8532, PR-8671, PR-8744,
PR-8776, PR-8788, PR-8789, PR-8794, PR-8800,
PR-8801, PR-8816, PR-8833, PR-8838, PR-8844,
PR-8856, PR-8878, PR-8879, PR-8884, PR-8889,
PR-8898, PR-8902, PR-8906, PR-8907, PR-8909,
PR-8912, PR-8919, PR-8920, PR-8921, PR-8947,
PR-8949, PR-8954, PR-8955, PR-8956, PR-8959,
PR-8970, PR-8972, PR-8978, PR-8986, PR-8987,
PR-9002, PR-9003, PR-9008, PR-9016, PR-9021,
PR-9023, PR-9034, PR-9043, PR-9062, PR-9067,
PR-9078, PR-9093, PR-9097, PR-9108, PR-9127
System: OTP
Release: 27
Application: common_test-1.27.5, compiler-8.5.4,
crypto-5.5.2, debugger-5.5, dialyzer-5.3,
eldap-1.2.14, erts-15.2, inets-9.3.1,
kernel-10.2, megaco-4.7, mnesia-4.23.3,
observer-2.17, os_mon-2.10.1,
public_key-1.17, snmp-5.18, ssh-5.2.5,
ssl-11.2.6, stdlib-6.2, tools-4.1.1
Predecessor: OTP 27.1.3
Check out the git tag OTP-27.2, 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.
# POTENTIAL INCOMPATIBILITIES
- The HTTP client now correctly takes into account the `full_result` option when
returning an asynchronous request.
Own Id: OTP-19158
Application(s): inets
# OTP-27.2
## Improvements and New Features
- The `SECURITY.md` file with guidelines for reporting vulnerabilities and
security issues has been added to the git repository.
Own Id: OTP-19338
Related Id(s): PR-9023
# common_test-1.27.5
The common_test-1.27.5 application can be applied independently of other
applications on a full OTP 27 installation.
## Fixed Bugs and Malfunctions
- Fixed a bug where the sum of testcases' execution time in HTML logs was
sometimes miscalculated, and the table was not fully printed.
Own Id: OTP-19284
Related Id(s): ERIERL-1093, PR-8909
> #### Full runtime dependencies of common_test-1.27.5
>
> 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.5.4
The compiler-8.5.4 application can be applied independently of other
applications on a full OTP 27 installation.
## Fixed Bugs and Malfunctions
- Fixed a crash in the common sub-expression elimination pass.
Own Id: OTP-19243
Related Id(s): GH-8818, PR-8838
- Fixed a bug where bogus code was generated for consecutive calls to
erlang:setelement/2, potentially crashing the runtime system.
Own Id: OTP-19270
Related Id(s): GH-8783, PR-8898
- When the `line_coverage` option was used, exceptions could show the wrong line
for where the exception was raised.
Own Id: OTP-19282
Related Id(s): PR-8907
- The `line_coverage` option would be ignored if given in a `compile()`
attribute within a module.
Own Id: OTP-19309
Related Id(s): GH-8942, PR-8970
- A segment matching a float in a binary generator will now skip any invalid
float (such as a NaN) and continue matching the rest of the binary. Before
this correction, the comprehension would stop as soon as an invalid float was
encountered.
Example:
1> BadFloat = <<-1:64>>.
<<"ÿÿÿÿÿÿÿÿ">>
2> [X || <<X:64/float>> <= <<0.0/float,BadFloat/binary,42.0/float>>].
[0.0,42.0]
Own Id: OTP-19331
Related Id(s): PR-8978
> #### Full runtime dependencies of compiler-8.5.4
>
> crypto-5.1, erts-13.0, kernel-8.4, stdlib-6.0
# crypto-5.5.2
The crypto-5.5.2 application can be applied independently of other applications
on a full OTP 27 installation.
## Fixed Bugs and Malfunctions
- crypto:strong_rand_bytes/2 fixed to work on Ubuntu pro with installed FIPS
support.
Own Id: OTP-19223
Related Id(s): GH-8769, PR-8800
- Fixed crypto:hash_final/1 for digest types `shake128` and `shake256` when
using OpenSSL 3.4 or newer.
Own Id: OTP-19329
Related Id(s): GH-8997, PR-9002
> #### Full runtime dependencies of crypto-5.5.2
>
> erts-9.0, kernel-5.3, stdlib-3.9
# debugger-5.5
The debugger-5.5 application can be applied independently of other applications
on a full OTP 27 installation.
## Fixed Bugs and Malfunctions
- Defining a fun in the shell using the syntax `fun Name/Arity` would fail. This
has been corrected so that the following now works:
1> F = fun is_atom/1.
#Fun.erl.42.18682967>
> F(a).
true
3> Id = fun id/1.
#Fun.erl.42.18682967>
4> Id(42).
** exception error: undefined shell command id/1
5> id(I) -> I.
ok
6> Id(42).
42
The Debugger has also been corrected to correctly handle this syntax for a
BIF.
Own Id: OTP-19322
Related Id(s): GH-8963, PR-8987
## Improvements and New Features
- Erlang/OTP type specifications has been updated to eliminate overlapping
domains.
Own Id: OTP-19310
Related Id(s): GH-8810, GH-8821, PR-8986
> #### Full runtime dependencies of debugger-5.5
>
> compiler-8.0, erts-15.0, kernel-10.0, stdlib-3.15, wx-2.0
# dialyzer-5.3
The dialyzer-5.3 application can be applied independently of other applications
on a full OTP 27 installation.
## Fixed Bugs and Malfunctions
- Fixed type inference for `erlang:system_info(logical_processors)`.
Own Id: OTP-19307
Related Id(s): GH-8948, PR-8954
- Dialyzer would crash when attempting to analyze a module compiled with the
`line_coverage` option.
Own Id: OTP-19344
Related Id(s): GH-9027, PR-9034
## Improvements and New Features
- Erlang/OTP type specifications has been updated to eliminate overlapping
domains.
Own Id: OTP-19310
Related Id(s): GH-8810, GH-8821, PR-8986
> #### Full runtime dependencies of dialyzer-5.3
>
> compiler-8.0, erts-12.0, kernel-8.0, stdlib-5.0, syntax_tools-2.0
# eldap-1.2.14
The eldap-1.2.14 application can be applied independently of other applications
on a full OTP 27 installation.
## Fixed Bugs and Malfunctions
- Corrected dialyzer spec for usage of TLS options. The incorrect usage for the
options in `eldap` could cause dialyzer warnings in user code referring to
`eldap` specs.
Own Id: OTP-19281
Related Id(s): PR-8906
> #### Full runtime dependencies of eldap-1.2.14
>
> asn1-3.0, erts-6.0, kernel-3.0, ssl-5.3.4, stdlib-3.4
# erts-15.2
The erts-15.2 application can be applied independently of other applications on
a full OTP 27 installation.
## Fixed Bugs and Malfunctions
- gen_sctp:peeloff/2 has been fixed to inherit socket options to the peeled
off socket more like gen_tcp:accept/1, for example the options `tos` or
`tclass`.
When setting SCTP options that are unsupported on the platform, some should be
silently ignored, but a bug caused the option parsing to derail so the options
after could bail out and cause an error instead. This has been fixed.
Own Id: OTP-19225
Related Id(s): PR-8789
- Fixed a bug where Erlang would corrupt the terminal settings if stdin was a
TTY but stdout was not.
Own Id: OTP-19232
Related Id(s): GH-8487, PR-8794
- Fixed a bug in the non-JIT VM when loading a NIF over a function that is
already traced by more than one session. This caused a VM crash. This bug has
existed since OTP-27.0, where multiple trace sessions were introduced.
Own Id: OTP-19248
Related Id(s): PR-8856
- Fixed a bug where the loading of modules with extremely large binary
construction instructions crashed the emulator on AArch64.
Own Id: OTP-19261
Related Id(s): GH-8815, PR-8816
- `inet:getifaddrs/0,1` is improved when using inet_backend = socket.
Own Id: OTP-19264
- win32reg:value/2 will no longer crash the emulator when the value is an
unterminated REG_SZ of size 0.
Own Id: OTP-19283
Related Id(s): GH-8903, PR-8912
- `Makefile` dependency generation on Windows in WSL 2 has been corrected.
Own Id: OTP-19300
Related Id(s): PR-8955
- Fix lock order violation if a NIF monitor `down` callback calls
`enif_whereis_pid`. Would cause debug emulator to crash but could potentially
lead to deadlocks in optimized emulator.
Own Id: OTP-19330
Related Id(s): GH-8983, PR-9008
- Fixed compilation faults when compiling using `--enable-vm-probes`.
Own Id: OTP-19333
- Fixed `erl_nif.h` on Windows to compile when gcc or clang is used.
Own Id: OTP-19341
Related Id(s): PR-9016
- Fixed a minor issue in the JIT debug information that confused tools like GDB
and perf.
Own Id: OTP-19362
Related Id(s): PR-9003
## Improvements and New Features
- Improved documentation of timers.
Own Id: OTP-19360
Related Id(s): ERIERL-1149, PR-9062
- The label for a process can now be retrieved also using
`process_info(Pid, label)` in addition to proc_lib:get_label/1.
This new option is useful when one wants to retrieve more than one process
info item. For example:
process_info(Pid, [label,registered_name])
Own Id: OTP-19373
Related Id(s): PR-9108
> #### Full runtime dependencies of erts-15.2
>
> kernel-9.0, sasl-3.3, stdlib-4.1
# inets-9.3.1
The inets-9.3.1 application can be applied independently of other applications
on a full OTP 27 installation.
## Fixed Bugs and Malfunctions
- The HTTP client now correctly takes into account the `full_result` option when
returning an asynchronous request.
Own Id: OTP-19158
*** POTENTIAL INCOMPATIBILITY ***
- A synchronous httpc:request now timeouts after the `Timeout` specified in
`HttpOption {timeout, Timeout}`.
Own Id: OTP-19221
Related Id(s): ERIERL-1091, PR-8788, PR-8801
- Fixed a bug where calling httpc:set_options/2 when one of keys: _ipfamily_ or
_unix_socket_, was not present, would cause the other value to get overriden
by the default value. The validation of these options was also improved.
Own Id: OTP-19379
Related Id(s): GH-8829, PR-8878
## Improvements and New Features
- The variable `Env` in the `mod_esi` callback will now have an additional
property `{connect_addr, Addr}` indicating on which address the server
received a connection.
Own Id: OTP-19377
Related Id(s): ERIERL-1152, PR-9127
> #### Full runtime dependencies of inets-9.3.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-6.0
# kernel-10.2
Note! The kernel-10.2 application _cannot_ be applied independently of other
applications on an arbitrary OTP 27 installation.
On a full OTP 27 installation, also the following runtime
dependency has to be satisfied:
-- erts-15.1 (first satisfied in OTP 27.1)
## Fixed Bugs and Malfunctions
- gen_sctp:peeloff/2 has been fixed to inherit socket options to the peeled
off socket more like gen_tcp:accept/1, for example the options `tos` or
`tclass`.
When setting SCTP options that are unsupported on the platform, some should be
silently ignored, but a bug caused the option parsing to derail so the options
after could bail out and cause an error instead. This has been fixed.
Own Id: OTP-19225
Related Id(s): PR-8789
- Made it possible to expand help text displayed by pressing ^[h by pressing ^[h
again.
Own Id: OTP-19260
Related Id(s): PR-8884
- `inet:getifaddrs/0,1` is improved when using inet_backend = socket.
Own Id: OTP-19264
- Fixed logger:report/0 to mandate at least one element in the report. This
fixes an issue with overlapping `spec` domains in all `logger` functions
that use logger:report/0.
Own Id: OTP-19302
Related Id(s): PR-8959
- Fixed deadlock on `code_server`. Multiple calls loading the same module with
an `on_load` function loading call would create a deadlock.
Own Id: OTP-19305
Related Id(s): GH-7466, GH-8510, PR-8744
## Improvements and New Features
- The Kernel application now recognizes the `epmd_module` and
`erl_epmd_listen_port` parameters, similar to `-kernel:connect_all`.
Own Id: OTP-19253
Related Id(s): PR-8671
- The `inetrc` kernel argument will now tolerate atoms again to improve
compatibility with old configurations that relied on atoms working by
accident.
The expected type always was, and still remains, a string.
Own Id: OTP-19280
Related Id(s): GH-8899, PR-8902
- The file:io_device/0 type has been updated to clearly show the difference
between a `raw` and `cooked` IoDevice.
Own Id: OTP-19301
Related Id(s): PR-8956
- Erlang/OTP type specifications has been updated to eliminate overlapping
domains.
Own Id: OTP-19310
Related Id(s): GH-8810, GH-8821, PR-8986
- Added the kernel parameter `os_cmd_shell` that controls which shell should
be used by os:cmd/1.
Own Id: OTP-19342
Related Id(s): PR-8972
- Added logging support to io:user/0, io:standard_io/0 and
io:standard_error/0. See io:setopts/2 for more details.
Own Id: OTP-19372
Related Id(s): PR-8947
> #### Full runtime dependencies of kernel-10.2
>
> crypto-5.0, erts-15.1, sasl-3.0, stdlib-6.0
# megaco-4.7
The megaco-4.7 application can be applied independently of other applications on
a full OTP 27 installation.
## Improvements and New Features
- Erlang/OTP type specifications has been updated to eliminate overlapping
domains.
Own Id: OTP-19310
Related Id(s): GH-8810, GH-8821, PR-8986
> #### Full runtime dependencies of megaco-4.7
>
> 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.23.3
The mnesia-4.23.3 application can be applied independently of other applications
on a full OTP 27 installation.
## Fixed Bugs and Malfunctions
- Mnesia table converted from `ext_copies` to `disc_copies` will now be properly
saved to disk.
Own Id: OTP-19292
Related Id(s): GH-8706, PR-8921
- Mnesia could crash if table was deleted during checkpoint initialization.
Own Id: OTP-19368
Related Id(s): ERIERL-1154, PR-9093
> #### Full runtime dependencies of mnesia-4.23.3
>
> erts-9.0, kernel-5.3, stdlib-5.0
# observer-2.17
The observer-2.17 application can be applied independently of other applications
on a full OTP 27 installation.
## Fixed Bugs and Malfunctions
- In the Memory tab of `crashdump_viewer`, the blocks sizes in
`Allocator Summary` would all be `N/A`.
Own Id: OTP-19353
Related Id(s): PR-8532
## Improvements and New Features
- The Kernel application now recognizes the `epmd_module` and
`erl_epmd_listen_port` parameters, similar to `-kernel:connect_all`.
Own Id: OTP-19253
Related Id(s): PR-8671
> #### Full runtime dependencies of observer-2.17
>
> erts-15.0, et-1.5, kernel-10.0, runtime_tools-2.1, stdlib-5.0, wx-2.3
# os_mon-2.10.1
The os_mon-2.10.1 application can be applied independently of other applications
on a full OTP 27 installation.
## Fixed Bugs and Malfunctions
- Fixed the `memsup` memory alarm to use `available_memory` when available,
instead of always using `free_memory`.
Own Id: OTP-19304
Related Id(s): GH-8759, PR-8776
> #### Full runtime dependencies of os_mon-2.10.1
>
> erts-14.0, kernel-9.0, sasl-4.2.1, stdlib-5.0
# public_key-1.17
The public_key-1.17 application can be applied independently of other
applications on a full OTP 27 installation.
## Improvements and New Features
- public_key:cacerts_load/1 can now be configured via the application
environment.
Own Id: OTP-19321
Related Id(s): PR-8920
- On MacOS, CA certificates are now also loaded from the system keychain.
Own Id: OTP-19375
Related Id(s): PR-8844
> #### Full runtime dependencies of public_key-1.17
>
> asn1-5.0, crypto-5.0, erts-13.0, kernel-8.0, stdlib-4.0
# snmp-5.18
The snmp-5.18 application can be applied independently of other applications on
a full OTP 27 installation.
## Improvements and New Features
- Erlang/OTP type specifications has been updated to eliminate overlapping
domains.
Own Id: OTP-19310
Related Id(s): GH-8810, GH-8821, PR-8986
> #### Full runtime dependencies of snmp-5.18
>
> crypto-4.6, erts-12.0, kernel-8.0, mnesia-4.12, runtime_tools-1.8.14,
> stdlib-5.0
# ssh-5.2.5
The ssh-5.2.5 application can be applied independently of other applications on
a full OTP 27 installation.
## Fixed Bugs and Malfunctions
- Documentation is polished after OTP-27 migration to markdown.
Own Id: OTP-19335
Related Id(s): PR-9021
> #### Full runtime dependencies of ssh-5.2.5
>
> crypto-5.0, erts-14.0, kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1,
> stdlib-5.0, stdlib-6.0
# ssl-11.2.6
Note! The ssl-11.2.6 application _cannot_ be applied independently of other
applications on an arbitrary OTP 27 installation.
On a full OTP 27 installation, also the following runtime
dependency has to be satisfied:
-- public_key-1.16.4 (first satisfied in OTP 27.1.3)
## Improvements and New Features
- Enhanced return value spec for active messages from the TLS connection socket.
Own Id: OTP-19387
Related Id(s): PR-9067
> #### Full runtime dependencies of ssl-11.2.6
>
> crypto-5.0, erts-15.0, inets-5.10.7, kernel-9.0, public_key-1.16.4,
> runtime_tools-1.15.1, stdlib-6.0
# stdlib-6.2
The stdlib-6.2 application can be applied independently of other applications on
a full OTP 27 installation.
## Fixed Bugs and Malfunctions
- Made it possible to expand help text displayed by pressing ^[h by pressing ^[h
again.
Own Id: OTP-19260
Related Id(s): PR-8884
- Defining a fun in the shell using the syntax `fun Name/Arity` would fail. This
has been corrected so that the following now works:
1> F = fun is_atom/1.
#Fun.erl.42.18682967>
> F(a).
true
3> Id = fun id/1.
#Fun.erl.42.18682967>
4> Id(42).
** exception error: undefined shell command id/1
5> id(I) -> I.
ok
6> Id(42).
42
The Debugger has also been corrected to correctly handle this syntax for a
BIF.
Own Id: OTP-19322
Related Id(s): GH-8963, PR-8987
- Fixed a bug where completion of 'fun(' would cause the shell to crash.
Own Id: OTP-19351
Related Id(s): PR-9043
- Fixed a bug causing the shell to crash while trying to complete an expression
starting with a '/' or a variable followed by '(' or '/'. E.g. Foo/ and Foo(.
Own Id: OTP-19361
Related Id(s): PR-9078
- zip:extract/2 with `keep_old_files` now respects the `cwd` option.
Own Id: OTP-19370
Related Id(s): GH-9087, PR-9097
- Fixed an error in uri_string:percent_decode spec
Own Id: OTP-19380
Related Id(s): GH-8755
## Improvements and New Features
- Updated shell docs to display the type spec, that is, `h(erlang, min, 2)` now
prints the type spec and documentation in the shell.
> h(erlang,min,2).
-spec min(Term1, Term2) -> Minimum
when Term1 :: term(), Term2 :: term(), Minimum :: term().
Returns the smallest of Term1 and Term2. If the terms compare equal with the == operator, Term1 is returned.
Own Id: OTP-19234
Related Id(s): GH-8544, PR-8833
- The file:io_device/0 type has been updated to clearly show the difference
between a `raw` and `cooked` IoDevice.
Own Id: OTP-19301
Related Id(s): PR-8956
- Added json:format_key_value_list/3 and
json:format_key_value_list_checked/3.
Own Id: OTP-19320
Related Id(s): PR-8889
- Improved documentation of timers.
Own Id: OTP-19360
Related Id(s): ERIERL-1149, PR-9062
- Added logging support to io:user/0, io:standard_io/0 and
io:standard_error/0. See io:setopts/2 for more details.
Own Id: OTP-19372
Related Id(s): PR-8947
> #### Full runtime dependencies of stdlib-6.2
>
> compiler-5.0, crypto-4.5, erts-15.0, kernel-10.0, sasl-3.0
# tools-4.1.1
The tools-4.1.1 application can be applied independently of other applications
on a full OTP 27 installation.
## Fixed Bugs and Malfunctions
- Fixed some deprecated errors on emacs-29.
Own Id: OTP-19273
Related Id(s): PR-8879
- The `cover` tool could sometimes wrongly report lines as uncovered.
Own Id: OTP-19289
Related Id(s): GH-8867, PR-8919
- Fixed `tprof:format(IoDevice, ...)` to not demand unicode encoding supported
by `IoDevice`.
Own Id: OTP-19299
Related Id(s): PR-8949
> #### Full runtime dependencies of tools-4.1.1
>
> compiler-8.5, erts-15.0, erts-15.0, kernel-10.0, runtime_tools-2.1, stdlib-6.0
# Thanks to
Bryan Paxton, Daniel Finke, Dániel Szoboszlay, dependabotbot, Ildar Khizbulin,
Jakub Witczak, Jonatan KÅosko, José Valim, Loïc Hoguin, Maas-Maarten Zeeman,
Maria Scott, Marko Mindek, Péter Gömöri, Radek Szymczyszyn, Svilen Ivanov,
Yaroslav Maslennikov, zmstone
More information about the erlang-announce
mailing list