Patch Package:           OTP 27.3
Git Tag:                 OTP-27.3
Date:                    2025-03-05
Trouble Report Id:       OTP-19397, OTP-19399, OTP-19400, OTP-19405,
                         OTP-19410, OTP-19416, OTP-19418, OTP-19423,
                         OTP-19428, OTP-19429, OTP-19433, OTP-19442,
                         OTP-19443, OTP-19447, OTP-19449, OTP-19458,
                         OTP-19459, OTP-19468, OTP-19471, OTP-19475,
                         OTP-19489, OTP-19490, OTP-19491, OTP-19495,
                         OTP-19496, OTP-19501, OTP-19504
Seq num:                 ERIERL-1195, GH-8208, GH-8634, GH-9000,
                         GH-9096, GH-9150, GH-9163, GH-9190, GH-9222,
                         GH-9306, GH-9332, GH-9348, GH-9359, PR-8209,
                         PR-8640, PR-8811, PR-9136, PR-9151, PR-9160,
                         PR-9185, PR-9188, PR-9248, PR-9274, PR-9288,
                         PR-9295, PR-9303, PR-9307, PR-9308, PR-9331,
                         PR-9335, PR-9338, PR-9349, PR-9358, PR-9368,
                         PR-9371, PR-9379, PR-9419, PR-9424, PR-9463,
                         PR-9469, PR-9499
System:                  OTP
Release:                 27
Application:             asn1-5.3.2, common_test-1.27.7, compiler-8.6,
                         crypto-5.5.3, erts-15.2.3, kernel-10.2.3,
                         mnesia-4.23.4, ssh-5.2.8, ssl-11.2.9,
                         stdlib-6.2.1, syntax_tools-3.2.2, xmerl-2.1.1
Predecessor:             OTP 27.2.4

Check out the git tag OTP-27.3, 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.

# asn1-5.3.2

The asn1-5.3.2 application can be applied independently of other applications on
a full OTP 27 installation.

## Fixed Bugs and Malfunctions

- Multiple bugs in decoding of the `REAL` type has been eliminated. Also, the
  documentation for `REAL` has been updated to mention the special values `0`,
  `PLUS-INFINITY`, and `MINUS-INFINITY`.

  Own Id: OTP-19504
  Related Id(s): GH-9096, PR-9469

> #### Full runtime dependencies of asn1-5.3.2
>
> erts-14.0, kernel-9.0, stdlib-5.0

# common_test-1.27.7

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

## Fixed Bugs and Malfunctions

- Reduced the memory usage when testcases prints a lot to the log.

  Own Id: OTP-19489
  Related Id(s): PR-9424

- Fixed the built-in hook `cth_surefire` to not crash when a group within a
  skipped group is skipped.

  Own Id: OTP-19491
  Related Id(s): PR-9419

> #### Full runtime dependencies of common_test-1.27.7
>
> 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.6

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

## Improvements and New Features

- The `beam_validator` pass in the compiler that validates generated BEAM now
  does stronger checks for binary syntax matching.

  Own Id: OTP-19449
  Related Id(s): PR-9338

> #### Full runtime dependencies of compiler-8.6
>
> crypto-5.1, erts-13.0, kernel-8.4, stdlib-6.0

# crypto-5.5.3

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

## Fixed Bugs and Malfunctions

- `crypto` will now work when ED25519 and X25519 are available while ED448 and
  X448 are not, which is the case in LibreSSL. This is necessary for supporting
  TLS1.3 using LibreSSL.

  Own Id: OTP-19399
  Related Id(s): GH-9000, PR-9136

> #### Full runtime dependencies of crypto-5.5.3
>
> erts-9.0, kernel-5.3, stdlib-3.9

# erts-15.2.3

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

## Fixed Bugs and Malfunctions

- Fixed failed runtime assert in debug VM when built with statically linked
  NIFs.

  Own Id: OTP-19443
  Related Id(s): GH-9306, PR-9307

- Fixed a bug where reading a binary from `persistent_term` could cause a
  segmentation fault on Windows. This bug was introduced in Erlang/OTP 27.0.

  Own Id: OTP-19458
  Related Id(s): GH-9222, PR-9349

- Fixed a crash in `erlexec` (an executable used by `erl` during startup) when a
  `PATH` longer than 10240 was set.

  Own Id: OTP-19471
  Related Id(s): PR-9331

- Fixed bug in `erlang:halt`. Two processes calling `erlang:halt` at the same
  time could lead to one of them crashing with `badarg` as if it called
  `erlang:halt(undefined,undefined)`.

  Own Id: OTP-19490
  Related Id(s): GH-8634, PR-8640

- Fixed BEAM crash when a custom thread sends a large map (>128 keys) externally
  encoded with, for example, `erl_drv_send_term()`.

  Own Id: OTP-19495
  Related Id(s): GH-8208, PR-8209

> #### Full runtime dependencies of erts-15.2.3
>
> kernel-9.0, sasl-3.3, stdlib-4.1

# kernel-10.2.3

Note! The kernel-10.2.3 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

- Clarify inet:setopts documentation

  Own Id: OTP-19416
  Related Id(s): PR-9248

- Fix bug where log printouts would go missing when `application_controller` is
  stopping while log messages are being sent.

  This bug was introduced by OTP-19078 in Erlang/OTP 26.2.5.

  Own Id: OTP-19418
  Related Id(s): GH-9163, PR-9274

- Fixes a bug in the socket type spec, which caused Dialyzer to reject some
  valid programs.

  Own Id: OTP-19429
  Related Id(s): PR-9295, PR-9379

> #### Full runtime dependencies of kernel-10.2.3
>
> crypto-5.0, erts-15.1, sasl-3.0, stdlib-6.0

# mnesia-4.23.4

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

## Fixed Bugs and Malfunctions

- Mnesia could fail to load a table, if one of the copy holders was moved during
  startup.

  Own Id: OTP-19501
  Related Id(s): ERIERL-1195, PR-9499

> #### Full runtime dependencies of mnesia-4.23.4
>
> erts-9.0, kernel-5.3, stdlib-5.0

# ssh-5.2.8

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

## Fixed Bugs and Malfunctions

- Minor documentation improvements.

  Own Id: OTP-19410
  Related Id(s): PR-9188

- Function specification for ssh_sftp:start_channel/2 is fixed.

  Own Id: OTP-19475
  Related Id(s): GH-9359, PR-9368

> #### Full runtime dependencies of ssh-5.2.8
>
> 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.9

Note! The ssl-11.2.9 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)

## Fixed Bugs and Malfunctions

- The function for selecting the best server certificate and key pair has been
  enhanced when several options are available to ensure that the fallback will
  not always be chosen.

  Own Id: OTP-19423
  Related Id(s): PR-9185

- Avoided duplicating a few algorithms in default values caused by an
  interoperability workaround not needed in this case.

  Own Id: OTP-19428
  Related Id(s): PR-9288

- Fixed two alert bugs, which could result in a crash instead of an alert.

  Own Id: OTP-19433
  Related Id(s): PR-9308

> #### Full runtime dependencies of ssl-11.2.9
>
> 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.1

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

## Fixed Bugs and Malfunctions

- Fixed argparse:help/2 to accept the program name as part of the command
  path.

  Own Id: OTP-19397
  Related Id(s): PR-9160

- Fixed argparse:format_help/2 crash on 'hidden' command.

  Own Id: OTP-19400
  Related Id(s): GH-9150, PR-9151

- Fixed the type specification for timer:sleep/1 by adding the value
  `infinity` to its input type.

  Own Id: OTP-19442
  Related Id(s): PR-9303

- Eliminated a crash in zip:unzip/1 while unzipping an archive where a
  directory within was read-only. This bug was introduced in Erlang/OTP 27.1.

  Own Id: OTP-19447
  Related Id(s): GH-9332, PR-9335

- Fixed map comprehension result when a key value is replaced.

  Own Id: OTP-19459
  Related Id(s): GH-9348, PR-9358

- Fixed string:jaro_similarity/1 for matching strings of length 1.

  Own Id: OTP-19468
  Related Id(s): PR-9371

> #### Full runtime dependencies of stdlib-6.2.1
>
> compiler-5.0, crypto-4.5, erts-15.0, kernel-10.0, sasl-3.0

# syntax_tools-3.2.2

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

## Fixed Bugs and Malfunctions

- Annotation of `maybe` expressions has been corrected.

  Own Id: OTP-19405
  Related Id(s): PR-8811

> #### Full runtime dependencies of syntax_tools-3.2.2
>
> compiler-7.0, erts-9.0, kernel-5.0, stdlib-4.0

# xmerl-2.1.1

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

## Fixed Bugs and Malfunctions

- Some old-style `catch` expressions in the xmerl_sax_parser when the
  continuation fun was called caused the stack to grow until all free memory was
  exhausted. These parts have been rewritten so that the parser now runs
  correctly without growing the stack. At the same time all old-style `catch`
  expressions in xmerl were replaced with `try`/`catch`.

  Own Id: OTP-19496
  Related Id(s): GH-9190, PR-9463

> #### Full runtime dependencies of xmerl-2.1.1
>
> erts-6.0, kernel-8.4, stdlib-2.5

# Thanks to

Adam Bray, Alexandre Rodrigues, Brandon Duff, Daniel Gorin, dependabotbot,
Eric Meadows-Jönsson, Jan Uhlig, Jean-Sébastien Pédron, Jesse Stimpson,
lexprfuncall, Maria Scott, Marko Mindek, Nikita Vorobey, Olivier Boudeville, Rin
Kuryloski, Roberto Aloi, Simon Cornish, Stefan Grundmann, victor23k, Volker
Schlecht