Patch Package | OTP 20.3 |
Git Tag | OTP-20.3 |
Date | 2018-03-14 |
Issue Id | |
System | OTP |
Release | 20 |
Application | |
Potential Incompatibilities |
Highlights #
- OTP-14760
-
- Application(s):
- ssl
Added new API functions to facilitate cipher suite handling
Potential Incompatibilities #
- OTP-14850
-
- Application(s):
- erts, hipe
- Related Id(s):
- PR-1664
Fix HiPE bug for binary constructs like <<X/utf8>> which could in rare cases cause faulty results or VM crash.
This fix affects both the hipe compiler and erts runtime in an *incompatible* way. Old hipe compiled files need to be recompiled to load and run properly as native.
asn1-5.0.5 #
The asn1-5.0.5 application can be applied independently of other applications on a full OTP 20 installation.
- OTP-13882
-
- Application(s):
- asn1
- Related Id(s):
- ERIERL-144
Dialyzer suppression has been added for the generated ASN.1 helper function to_bitstring/1 that previously created irrelevant warnings.
Full runtime dependencies of asn1-5.0.5: erts-7.0, kernel-3.0, stdlib-2.0
common_test-1.15.4 #
The common_test-1.15.4 application can be applied independently of other applications on a full OTP 20 installation.
- OTP-14953
-
- Application(s):
- common_test
Fixed problem with 'skip_groups' in combination with 'all suites' option in test specification.
Full runtime dependencies of common_test-1.15.4: compiler-6.0, crypto-3.6, debugger-4.1, erts-7.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.4, syntax_tools-1.7, tools-2.8, xmerl-1.3.8
compiler-7.1.5 #
The compiler-7.1.5 application can be applied independently of other applications on a full OTP 20 installation.
- OTP-14863
-
- Application(s):
- compiler
The internal compiler pass (beam_validator) that validates the generated code has been strengthened.
When compiling from BEAM assembly code, the beam_type optimizer pass could make the code unsafe. Corrected.
- OTP-14898
-
- Application(s):
- compiler
Corrected optimizations of integers matched out from binaries and used in bit operations.
Full runtime dependencies of compiler-7.1.5: crypto-3.6, erts-9.0, hipe-3.12, kernel-4.0, stdlib-2.5
crypto-4.2.1 #
The crypto-4.2.1 application can be applied independently of other applications on a full OTP 20 installation.
- OTP-14873
-
- Application(s):
- crypto
Fix build error caused by removed RSA padding functions in LibreSSL >= 2.6.1
Full runtime dependencies of crypto-4.2.1: erts-9.0, kernel-5.3, stdlib-3.4
dialyzer-3.2.4 #
Note! The dialyzer-3.2.4 application can *not* be applied independently of other applications on an arbitrary OTP 20 installation. On a full OTP 20 installation, also the following runtime dependency has to be satisfied: -- hipe-3.16.1 (first satisfied in OTP 20.1)
- OTP-14858
-
- Application(s):
- dialyzer
- Related Id(s):
- ERL-551
Fix bugs concerning erlang:abs/1 and erlang:bsl/2.
- OTP-14911
-
- Application(s):
- dialyzer
Fix a bug that caused Dialyzer to crash instead of emitting a warning.
- OTP-14925
-
- Application(s):
- dialyzer
- Related Id(s):
- ERL-565
Fix a bug concerning parameterized opaque types.
Full runtime dependencies of dialyzer-3.2.4: compiler-7.0, erts-9.0, hipe-3.16.1, kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2
diameter-2.1.4 #
The diameter-2.1.4 application can be applied independently of other applications on a full OTP 20 installation.
- OTP-14839
-
- Application(s):
- diameter
Fix close of diameter_tcp/sctp listening socket at diameter:remove_transport/2, that was broken in diameter 2.1. A reconfigured transport could not listen on the same endpoint as a result.
- OTP-14947
-
- Application(s):
- diameter
- Related Id(s):
- ERIERL-124
Fix handling of SUSPECT connections at service termination. A connection with this watchdog state caused diameter_service:terminate/2 to fail.
Full runtime dependencies of diameter-2.1.4: erts-6.4, kernel-3.2, ssl-6.0, stdlib-2.4
erts-9.3 #
The erts-9.3 application can be applied independently of other applications on a full OTP 20 installation.
- OTP-14840
-
- Application(s):
- erts, otp
- Related Id(s):
- ERL-529
Fixed a configure test for libz internals that unintentionally caused various native code in OTP to link against libz. Under certain circumstances this caused the build of OTP to fail.
- OTP-14847
-
- Application(s):
- erts
- Related Id(s):
- ERL-544
File names containing unicode codepoints larger than 255 were not correctly encoded in stack traces.
- OTP-14850
-
- Application(s):
- erts, hipe
- Related Id(s):
- PR-1664
*** POTENTIAL INCOMPATIBILITY ***
Fix HiPE bug for binary constructs like <<X/utf8>> which could in rare cases cause faulty results or VM crash.
This fix affects both the hipe compiler and erts runtime in an *incompatible* way. Old hipe compiled files need to be recompiled to load and run properly as native.
- OTP-14876
-
- Application(s):
- erts
- Related Id(s):
- ERL-548
Fix term_to_binary/2 spec for minor_version.
- OTP-14879
-
- Application(s):
- erts
Fix bug in erlang:binary_to_integer/2 where invalid characters were not detected for bases larger then 10. e.g. binary_to_integer(<<":">>, 16) would return 3 and not badarg as it should.
- OTP-14890
-
- Application(s):
- erts
Fixed bug in float_to_list/2 and float_to_binary/2 with option decimals that caused a faulty rounding up of the last decimal digit for about 6% of floats with a fraction part.
For example, float_to_list(0.145, [{decimals,1}]) returned "0.2" instead of "0.1".
- OTP-14891
-
- Application(s):
- erts
Fix bug causing slow hipe execution in modules loaded early during boot or loaded by code:atomic_load or code:finish_loading.
- OTP-14920
-
- Application(s):
- erts
Fixed a buffer overflow in an internal string formatting function that could be hit if specifying a long floating-point format specifier to erts_sprintf or similar.
- OTP-14921
-
- Application(s):
- erts
erlang:iolist_to_iovec/1 and enif_inspect_iovec will no longer fail when provided with binaries that have been matched-out on a non-byte boundary.
- OTP-14926
-
- Application(s):
- erts
iolist_to_binary/1 and erlang:iolist_to_iovec/1 will now badarg if supplied with a bitstring (without a list).
- OTP-14933
-
Reject loading modules with names containing directory separators ('/' or '\' on Windows).
- OTP-14938
-
- Application(s):
- erts
Fix potential dead-lock when the tracer process dies while a the traced process is running on a dirty scheduler.
- OTP-14820
-
- Application(s):
- erts, observer
More crash dump info such as: process binary virtual heap stats, full info for process causing out-of-mem during GC, more port related info, and dirty scheduler info.
Full runtime dependencies of erts-9.3: kernel-5.0, sasl-3.0.1, stdlib-3.0
hipe-3.17.1 #
Note! The hipe-3.17.1 application can *not* be applied independently of other applications on an arbitrary OTP 20 installation. On a full OTP 20 installation, also the following runtime dependency has to be satisfied: -- erts-9.3 (first satisfied in OTP 20.3)
- OTP-14850
-
- Application(s):
- erts, hipe
- Related Id(s):
- PR-1664
*** POTENTIAL INCOMPATIBILITY ***
Fix HiPE bug for binary constructs like <<X/utf8>> which could in rare cases cause faulty results or VM crash.
This fix affects both the hipe compiler and erts runtime in an *incompatible* way. Old hipe compiled files need to be recompiled to load and run properly as native.
- OTP-14886
-
- Application(s):
- hipe
The BEAM compiler chooses not to perform tailcall optimisations for some calls in tail position, for example to some built-in functions. However, when the ErLLVM HiPE backend is used, LLVM may choose to perform tailcall optimisation on these calls, breaking the expected semantics.
To preserve the precise semantics exhibited by BEAM, the 'notail' marker, present in LLVM since version 3.8, is added to call instructions that BEAM has not turned into tail calls, which inhibits LLVM from performing tail-call optimisation in turn.
Full runtime dependencies of hipe-3.17.1: compiler-5.0, erts-9.3, kernel-5.3, stdlib-3.4, syntax_tools-1.6.14
inets-6.5 #
The inets-6.5 application can be applied independently of other applications on a full OTP 20 installation.
- OTP-14908
-
- Application(s):
- inets
httpc_manager crashes when a long running request is sent on a persistent HTTP connection (keep-alive). Fixed httpc_manager to use proper timeouts on keep-alive connections.
- OTP-14854
-
- Application(s):
- inets
Add support for unix domain sockets in the http client.
Full runtime dependencies of inets-6.5: erts-6.0, kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0
kernel-5.4.3 #
Note! The kernel-5.4.3 application can *not* be applied independently of other applications on an arbitrary OTP 20 installation. On a full OTP 20 installation, also the following runtime dependency has to be satisfied: -- erts-9.3 (first satisfied in OTP 20.3)
- OTP-14889
-
- Application(s):
- kernel, stdlib
Correct a few contracts.
- OTP-14933
-
Reject loading modules with names containing directory separators ('/' or '\' on Windows).
- OTP-14940
-
- Application(s):
- kernel
Fix bug in handling of os:cmd/2 option max_size on windows.
Full runtime dependencies of kernel-5.4.3: erts-9.3, sasl-3.0, stdlib-3.4
observer-2.7 #
The observer-2.7 application can be applied independently of other applications on a full OTP 20 installation.
- OTP-14842
-
- Application(s):
- observer
- Related Id(s):
- ERL-534
etop.hrl used a relative path to include observer_backend.hrl, this is now changed to use include_lib instead. runtime_tools/include is added to the tertiary bootstrap.
- OTP-14846
-
- Application(s):
- observer
- Related Id(s):
- ERL-537
If a crashdump was truncated in the attributes section for a module, crashdump_viewer would crash when a module view was opened from the GUI. This bug was introduced in OTP-20.2 and is now corrected.
- OTP-14856
-
- Application(s):
- observer
- Related Id(s):
- ERIERL-117
Optimized ets and mnesia table view tab in observer gui, listing 10000 tables was previously very slow.
- OTP-14725
-
- Application(s):
- observer
When a process has many links and/or monitors, it could earlier take very long time to display the process information window. This is now improved by only showing a few links and monitors, and then an link named "more..." to expand the rest.
- OTP-14820
-
- Application(s):
- erts, observer
More crash dump info such as: process binary virtual heap stats, full info for process causing out-of-mem during GC, more port related info, and dirty scheduler info.
Full runtime dependencies of observer-2.7: erts-7.0, et-1.5, inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-3.4, wx-1.2
runtime_tools-1.12.5 #
The runtime_tools-1.12.5 application can be applied independently of other applications on a full OTP 20 installation.
- OTP-14816
-
- Application(s):
- runtime_tools
system_information:to_file/1 will now use slightly less memory.
Full runtime dependencies of runtime_tools-1.12.5: erts-8.0, kernel-5.0, mnesia-4.12, stdlib-3.0
snmp-5.2.10 #
The snmp-5.2.10 application can be applied independently of other applications on a full OTP 20 installation.
- OTP-14204
-
- Application(s):
- snmp
- Related Id(s):
- PR-1726
The example MIB EX1-MIB in the SNMP application has been corrected to match its example.
Full runtime dependencies of snmp-5.2.10: crypto-3.3, erts-6.0, kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5
ssh-4.6.6 #
Note! The ssh-4.6.6 application can *not* be applied independently of other applications on an arbitrary OTP 20 installation. On a full OTP 20 installation, also the following runtime dependencies have to be satisfied: -- crypto-4.2 (first satisfied in OTP 20.2) -- public_key-1.5.2 (first satisfied in OTP 20.2)
- OTP-14939
-
- Application(s):
- ssh
Remove a blocking risk when a channel is closed and an operation is tried on that channel after at least a second's time gap.
- OTP-14194
-
- Application(s):
- ssh
- Related Id(s):
- OTP-12487
Added ssh_compat_SUITE.
This suite contains a number of interoperability tests mainly with OpenSSH. The tests start docker containers with different OpenSSH and OpenSSL/LibreSSLcryptolib versions and performs a number of tests of supported algorithms.
All login methods and all user's public key types are tested both for the client and the server.
All algorithms for kex, cipher, host key, mac and compressions are tested with a number of exec and sftp tests, both for the client and the server.
- OTP-14881
-
- Application(s):
- ssh
Default exec is disabled when a user-defined shell is enabled.
Full runtime dependencies of ssh-4.6.6: crypto-4.2, erts-6.0, kernel-3.0, public_key-1.5.2, stdlib-3.3
ssl-8.2.4 #
Note! The ssl-8.2.4 application can *not* be applied independently of other applications on an arbitrary OTP 20 installation. On a full OTP 20 installation, also the following runtime dependencies have to be satisfied: -- crypto-4.2 (first satisfied in OTP 20.2) -- public_key-1.5 (first satisfied in OTP 20.1)
- OTP-14843
-
- Application(s):
- ssl
Optimization of bad merge conflict resolution causing dubble decode
- OTP-14852
-
- Application(s):
- ssl
Restore error propagation to OTP-19.3 behaviour, in OTP-20.2 implementation adjustments to gen_statem needed some further adjustments to avoid a race condition. This could cause a TLS server to not always report file path errors correctly.
- OTP-14871
-
- Application(s):
- ssl
Corrected RC4 suites listing function to regard TLS version
- OTP-14919
-
- Application(s):
- ssl
Fix alert handling so that unexpected messages are logged and alerted correctly
- OTP-14929
-
- Application(s):
- ssl
Fix alert handling so that unexpected messages are logged and alerted correctly
- OTP-14952
-
- Application(s):
- ssl
Correct handling of anonymous cipher suites
- OTP-14760
-
- Application(s):
- ssl
*** HIGHLIGHT ***
Added new API functions to facilitate cipher suite handling
- OTP-14828
-
- Application(s):
- ssl
Correct TLS_FALLBACK_SCSV handling so that this special flag suite is always placed last in the cipher suite list in accordance with the specs. Also make sure this functionality is used in DTLS.
- OTP-14892
-
- Application(s):
- ssl
Add TLS record version sanity check for early as possible error detection and consistency in ALERT codes generated
Full runtime dependencies of ssl-8.2.4: crypto-4.2, erts-7.0, inets-5.10.7, kernel-3.0, public_key-1.5, stdlib-3.2
stdlib-3.4.4 #
The stdlib-3.4.4 application can be applied independently of other applications on a full OTP 20 installation.
- OTP-14832
-
- Application(s):
- stdlib
- Related Id(s):
- ERL-527
Correct filelib:find_source() and filelib:find_file() to by default also search one level below src. This is in accordance with the Design Principles which states that an application can have Erlang source files one level below the src directory.
- OTP-14860
-
- Application(s):
- stdlib
- Related Id(s):
- 1670 , PR
The contract of erl_tar:table/2 is corrected.
- OTP-14889
-
- Application(s):
- kernel, stdlib
Correct a few contracts.
- OTP-14942
-
- Application(s):
- stdlib
- Related Id(s):
- PR-1702
Fix string:prefix/2 to handle an empty string as second argument.
Full runtime dependencies of stdlib-3.4.4: compiler-5.0, crypto-3.3, erts-9.0, kernel-5.0, sasl-3.0
tools-2.11.2 #
Note! The tools-2.11.2 application can *not* be applied independently of other applications on an arbitrary OTP 20 installation. On a full OTP 20 installation, also the following runtime dependencies have to be satisfied: -- erts-9.1 (first satisfied in OTP 20.1) -- kernel-5.4 (first satisfied in OTP 20.1)
- OTP-14817
-
- Application(s):
- tools
- Related Id(s):
- 1641 , PR
A counting bug is corrected in Cover. The bug was introduced in Erlang/OTP 18.0.
- OTP-14912
-
- Application(s):
- tools
The lcnt server will no longer crash if lcnt:information/0 is called before lcnt:collect/0.
- OTP-14913
-
- Application(s):
- tools
lcnt:collect will now implicitly start the lcnt server, as per the documentation.
- OTP-14944
-
- Application(s):
- tools
Improved indentation in emacs and various other updates.
Full runtime dependencies of tools-2.11.2: compiler-5.0, erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4