Patch Package: OTP 24.1.5
Git Tag: OTP-24.1.5
Date: 2021-11-11
Trouble Report Id: OTP-17734, OTP-17735, OTP-17736, OTP-17737
Seq num: GH-4989, GH-5279, GH-5327, GH-5339, GH-5346
System: OTP
Release: 24
Application: erts-12.1.5, kernel-8.1.3
Predecessor: OTP 24.1.4
Check out the git tag OTP-24.1.5, 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 -------------------------------------
---------------------------------------------------------------------
OTP-17734 Application(s): kernel
Related Id(s): GH-5327, OTP-17659
The internal, undocumented, but used, module inet_dns
has been fixed to handle mDNS high bit usage of the
Class field.
Code that uses the previously obsolete, undocumented
and unused record field #dns_rr.func will need to be
updated since that field is now used as a boolean flag
for the mDNS high Class bit. Code that uses the also
undocumented record #dns_query will need to be
recompiled since a boolean field
#dns_query.unicast_response has been added for the mDNS
high Class bit.
---------------------------------------------------------------------
--- erts-12.1.5 -----------------------------------------------------
---------------------------------------------------------------------
The erts-12.1.5 application can be applied independently of other
applications on a full OTP 24 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17735 Application(s): erts
Related Id(s): GH-5339
The runtime system could call select() with a too large
timeout value when executing on MacOS. This could in
turn cause the runtime system to crash.
OTP-17736 Application(s): erts, kernel
Related Id(s): GH-5279, OTP-17559, PR-5120
The fix for Linux's behaviour when reconnecting an UDP
socket in PR-5120 released in OTP-24.1.2 has been
refined to only dissolve the socket's connection before
a connect if the socket is already connected, that is:
only for a reconnect.
This allows code to open a socket with an ephemeral
port, get the port number and connect; without the port
number changing (on Linux). This turned out to have at
least one valid use case (besides test cases).
Should one reconnect the socket then the port number
may change, on Linux; it is a known quirk, which can be
worked around by binding to a specific port number when
opening the socket. If you can do without an ephemeral
port, that is...
OTP-17737 Application(s): erts
Related Id(s): GH-4989, GH-5346
Certain distributed signals that for various reasons
must to be forced into the distribution buffer even
when it is full would instead be lost if the
distribution buffer was full when sent. The effected
signals:
-- EXIT signals with exit reasons of one word size.
-- DOWN signals with exit reasons of one word size.
-- demonitor signals from a terminating process.
-- unlink_ack signals on OTP 23 and 24.
-- spawn_reply signals on OTP 23 and 24.
Full runtime dependencies of erts-12.1.5: kernel-8.0, sasl-3.3,
stdlib-3.13
---------------------------------------------------------------------
--- kernel-8.1.3 ----------------------------------------------------
---------------------------------------------------------------------
The kernel-8.1.3 application can be applied independently of other
applications on a full OTP 24 installation.
--- Fixed Bugs and Malfunctions ---
OTP-17734 Application(s): kernel
Related Id(s): GH-5327, OTP-17659
*** POTENTIAL INCOMPATIBILITY ***
The internal, undocumented, but used, module inet_dns
has been fixed to handle mDNS high bit usage of the
Class field.
Code that uses the previously obsolete, undocumented
and unused record field #dns_rr.func will need to be
updated since that field is now used as a boolean flag
for the mDNS high Class bit. Code that uses the also
undocumented record #dns_query will need to be
recompiled since a boolean field
#dns_query.unicast_response has been added for the mDNS
high Class bit.
OTP-17736 Application(s): erts, kernel
Related Id(s): GH-5279, OTP-17559, PR-5120
The fix for Linux's behaviour when reconnecting an UDP
socket in PR-5120 released in OTP-24.1.2 has been
refined to only dissolve the socket's connection before
a connect if the socket is already connected, that is:
only for a reconnect.
This allows code to open a socket with an ephemeral
port, get the port number and connect; without the port
number changing (on Linux). This turned out to have at
least one valid use case (besides test cases).
Should one reconnect the socket then the port number
may change, on Linux; it is a known quirk, which can be
worked around by binding to a specific port number when
opening the socket. If you can do without an ephemeral
port, that is...
Full runtime dependencies of kernel-8.1.3: crypto-5.0, erts-12.0,
sasl-3.0, stdlib-3.13
---------------------------------------------------------------------
---------------------------------------------------------------------
---------------------------------------------------------------------