Patch Package | OTP 18.1 |
Git Tag | OTP-18.1 |
Date | 2015-09-22 |
Issue Id |
seq12878
seq12891
seq12900
seq12906
seq12947
|
System | OTP |
Release | 18 |
Application |
Highlights #
- OTP-11397
-
- Application(s):
- ssl
Add possibility to downgrade an SSL/TLS connection to a tcp connection, and give back the socket control to a user process.
This also adds the possibility to specify a timeout to the ssl:close function.
- OTP-12622
-
The key exchange algorithms 'ecdh-sha2-nistp256', 'ecdh-sha2-nistp384' and 'ecdh-sha2-nistp521' are implemented. See RFC 5656.
This raises the security level considerably.
- OTP-12671
-
The key exchange algorithm 'diffie-hellman-group14-sha1' is implemented. See RFC 4253.
This raises the security level.
- OTP-12672
-
The key exchange algorithms 'diffie-hellman-group-exchange-sha1' and 'diffie-hellman-group-exchange-sha256' are implemented. See RFC 4419.
This raises the security level.
- OTP-12864
-
- Application(s):
- kernel, sasl, stdlib
A mechanism for limiting the amount of text that the built-in error logger events will produce has been introduced. It is useful for limiting both the size of log files and the CPU time used to produce them.
This mechanism is experimental in the sense that it may be changed if it turns out that it does not solve the problem it is supposed to solve. In that case, there may be backward incompatible improvements to this mechanism.
See the documentation for the config parameter error_logger_format_depth in the Kernel application for information about how to turn on this feature.
compiler-6.0.1 #
The compiler-6.0.1 application can be applied independently of other applications on a full OTP 18 installation.
- OTP-12967
-
- Application(s):
- compiler
Fix get_map_elements register corruption
Instruction get_map_elements might destroy target registers when the fail-label is taken. Only seen for patterns with two, and only two, target registers. Specifically if we copy one register and then jump.
Full runtime dependencies of compiler-6.0.1: crypto-3.6, erts-7.0, hipe-3.12, kernel-4.0, stdlib-2.5
crypto-3.6.1 #
The crypto-3.6.1 application can be applied independently of other applications on a full OTP 18 installation.
- OTP-12944
-
- Application(s):
- crypto
Make crypto:ec_curves/0 return empty list if elliptic curve is not supported at all.
Full runtime dependencies of crypto-3.6.1: erts-6.0, kernel-3.0, stdlib-2.0
debugger-4.1.1 #
The debugger-4.1.1 application can be applied independently of other applications on a full OTP 18 installation.
- OTP-12911
-
- Application(s):
- debugger
- Related Id(s):
- seq12906
Fix crash when starting a quick debugging session. Thanks Alan Duffield.
Full runtime dependencies of debugger-4.1.1: compiler-5.0, erts-6.0, kernel-3.0, stdlib-2.5, wx-1.2
dialyzer-2.8.1 #
Note! The dialyzer-2.8.1 application can *not* be applied independently of other applications on an arbitrary OTP 18 installation. On a full OTP 18 installation, also the following runtime dependency has to be satisfied: -- hipe-3.13 (first satisfied in OTP 18.1)
- OTP-12865
-
- Application(s):
- dialyzer
Improve the translation of forms to types.
- OTP-12866
-
- Application(s):
- dialyzer
Fix a bug concerning parameterized opaque types.
- OTP-12940
-
- Application(s):
- dialyzer
Fix a bug concerning parameterized opaque types.
- OTP-12948
-
- Application(s):
- dialyzer, hipe
Fix bugs concerning erlang:abs/1.
- OTP-12949
-
- Application(s):
- dialyzer, hipe
Fix a bug concerning lists:keydelete/3 with union and opaque types.
- OTP-12964
-
Use new function hipe:erts_checksum to get correct runtime checksum for cached beam files.
Full runtime dependencies of dialyzer-2.8.1: compiler-5.0, erts-7.0, hipe-3.13, kernel-3.0, stdlib-2.5, syntax_tools-1.6.14, wx-1.2
diameter-1.11 #
The diameter-1.11 application can be applied independently of other applications on a full OTP 18 installation.
- OTP-12879
-
- Application(s):
- diameter
- Related Id(s):
- OTP-12475
Fix relay encode of nested, Grouped AVPs.
A fault in OTP-12475 caused encode to fail if the first AVP in a Grouped AVP was itself Grouped.
- OTP-12902
-
- Application(s):
- diameter
Match acceptable peer addresses case insensitively.
Regular expressions passed in an 'accept' tuple to diameter_tcp or diameter_sctp inappropriately matched case.
- OTP-12969
-
- Application(s):
- diameter
Fix diameter_watchdog function clause.
OTP-12912 introduced an error with accepting transports setting {restrict_connections, false}, causing processes to fail when peer connections were terminated.
- OTP-12871
-
- Application(s):
- diameter
Don't report 5005 (DIAMETER_AVP_MISSING) errors unnecessarily.
An AVP whose decode failed was reported as missing, despite having been reported with another error as a consequence of the failure.
- OTP-12891
-
- Application(s):
- diameter
Improve decode performance.
The time required to decode a message increased quadratically with the number of AVPs in the worst case, leading to extremely long execution times.
- OTP-12912
-
- Application(s):
- diameter
Improve watchdog and statistics performance.
Inefficient use of timers contributed to poor performance at high load, as did ordering of the table statistics are written to.
- OTP-12947
-
- Application(s):
- diameter
Add service_opt() strict_mbit.
There are differing opinions on whether or not reception of an arbitrary AVP setting the M-bit is an error. The default interpretation is strict: if a command grammar doesn't explicitly allow an AVP setting the M-bit then reception of such an AVP is regarded as an error. Setting {strict_mbit, false} disables this check.
Full runtime dependencies of diameter-1.11: erts-6.0, kernel-3.0, ssl-5.3.4, stdlib-2.0
erts-7.1 #
The erts-7.1 application can be applied independently of other applications on a full OTP 18 installation.
- OTP-12870
-
- Application(s):
- erts
Fix bug in ETS that could cause stray objects marked for deletion to occasionally be missed by the cleanup done by safe_fixtable(_,false).
- OTP-12901
-
- Application(s):
- erts
Fixed VM crash that could occur if a trace port was linked to a process, and the trace port terminated abnormally while handling a trace message. This bug has always existed in the runtime system with SMP support.
- OTP-12934
-
- Application(s):
- erts
Instead of aborting, the vm now creates a crash dump when a system process is terminated.
- OTP-12943
-
- Application(s):
- erts
Fixed a rare emulator dead lock that occurred when erlang:process_flag(priority,...) was called by a process that was also scheduled for an internal system activity.
- OTP-12954
-
- Application(s):
- erts
The runtime system on various posix platforms (except for Linux and Solaris) could crash when large amounts of file-descriptors were in use.
- OTP-12962
-
- Application(s):
- erts, hipe
A beam file compiled by hipe for an incompatible runtime system was sometimes not rejected by the loader, which could lead to vm crash. This fix will also allow the same hipe compiler to be used by both normal and debug-built vm.
- OTP-12965
-
- Application(s):
- erts
Fix bug in maps:merge/2 when called by hipe compiled code that could cause vm crash. Bug exists since erts-7.0 (OTP 18.0).
- OTP-12968
-
- Application(s):
- erts
When tracing with process_dump option, the VM could abort if there was an ongoing binary match somewhere in the call stack of the traced process.
- OTP-12987
-
- Application(s):
- erts
- Related Id(s):
- seq12947
Fixed possible output deadlock in tty driver when hitting "CTRL-C" in a non-smp emulator shell on unix.
- OTP-12988
-
- Application(s):
- erts
Fix binary_to_integer to throw badarg for "+" and "-" similar to list_to_integer.
- OTP-12989
-
- Application(s):
- erts
Suppress warning of unused argument when using macro enif_make_pid.
- OTP-12945
-
- Application(s):
- erts
- Related Id(s):
- OTP-12892
Changed default clock source used for OS system time on MacOS X to gettimeofday() in order to improve performance. The system can be configured during build to use the previously used higher resolution clock source by passing the switch --with-clock-resolution=high when configuring the build.
- OTP-12971
-
- Application(s):
- erts
Added the configure option --disable-saved-compile-time which disables saving of compile date and time in the emulator binary.
Full runtime dependencies of erts-7.1: kernel-4.0, sasl-2.4, stdlib-2.5
eunit-2.2.11 #
The eunit-2.2.11 application can be applied independently of other applications on a full OTP 18 installation.
- OTP-12952
-
- Application(s):
- eunit
Improve success message when 2 tests have passed
Full runtime dependencies of eunit-2.2.11: erts-6.0, kernel-3.0, stdlib-2.5
hipe-3.13 #
Note! The hipe-3.13 application can *not* be applied independently of other applications on an arbitrary OTP 18 installation. On a full OTP 18 installation, also the following runtime dependency has to be satisfied: -- erts-7.1 (first satisfied in OTP 18.1)
- OTP-12948
-
- Application(s):
- dialyzer, hipe
Fix bugs concerning erlang:abs/1.
- OTP-12949
-
- Application(s):
- dialyzer, hipe
Fix a bug concerning lists:keydelete/3 with union and opaque types.
- OTP-12962
-
- Application(s):
- erts, hipe
A beam file compiled by hipe for an incompatible runtime system was sometimes not rejected by the loader, which could lead to vm crash. This fix will also allow the same hipe compiler to be used by both normal and debug-built vm.
- OTP-12963
-
New function hipe:erts_checksum/0 which returns a value identifying the target runtime system for the compiler. Used by dialyzer for its beam cache directory.
Full runtime dependencies of hipe-3.13: compiler-5.0, erts-7.1, kernel-3.0, stdlib-2.5, syntax_tools-1.6.14
inets-6.0.1 #
The inets-6.0.1 application can be applied independently of other applications on a full OTP 18 installation.
- OTP-12875
-
- Application(s):
- inets
- Related Id(s):
- seq12878
Fix broken socket feature, that is on Linux systems a socket may be opened before starting Erlang and then passed to Erlang's httpd daemon. This is useful as the wrap program can open a privileged port and Erlang does not have to be run as root.
- OTP-12898
-
- Application(s):
- inets
- Related Id(s):
- seq12900
Fix broken socket feature, that is on Linux systems a socket may be opened before starting Erlang and then passed to Erlangs tftp daemon. This is useful as the wrap program can open a privileged port and Erlang does not have to be run as root.
- OTP-12922
-
- Application(s):
- inets
httpc_handler should react properly to cancel requests even when the request to be canceled was already finished but httpc_manager did not get notified about that yet.
- OTP-12976
-
- Application(s):
- inets
Added format_status function to httpd process to avoid sensitive information to be printed in supervisor logs.
- OTP-12984
-
- Application(s):
- inets
Return meaningful error reason disregarding whether a http proxy is used or not.
Full runtime dependencies of inets-6.0.1: erts-6.0, kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0
kernel-4.1 #
Note! The kernel-4.1 application can *not* be applied independently of other applications on an arbitrary OTP 18 installation. On a full OTP 18 installation, also the following runtime dependencies have to be satisfied: -- sasl-2.6 (first satisfied in OTP 18.1) -- stdlib-2.6 (first satisfied in OTP 18.1)
- OTP-12864
-
- Application(s):
- kernel, sasl, stdlib
*** HIGHLIGHT ***
A mechanism for limiting the amount of text that the built-in error logger events will produce has been introduced. It is useful for limiting both the size of log files and the CPU time used to produce them.
This mechanism is experimental in the sense that it may be changed if it turns out that it does not solve the problem it is supposed to solve. In that case, there may be backward incompatible improvements to this mechanism.
See the documentation for the config parameter error_logger_format_depth in the Kernel application for information about how to turn on this feature.
Full runtime dependencies of kernel-4.1: erts-7.0, sasl-2.6, stdlib-2.6
mnesia-4.13.1 #
The mnesia-4.13.1 application can be applied independently of other applications on a full OTP 18 installation.
- OTP-12972
-
- Application(s):
- mnesia
Improved index updates to avoid a timing glitch in dirty_index_read.
Full runtime dependencies of mnesia-4.13.1: erts-7.0, kernel-3.0, stdlib-2.0
odbc-2.11.1 #
The odbc-2.11.1 application can be applied independently of other applications on a full OTP 18 installation.
- OTP-12935
-
- Application(s):
- odbc
New application variable to set timeout of internal communication setup between the erlang code and the c-port program that interfaces the odbc driver. This can be useful if you have an underlying system that is slow due to heavy load at startup.
With this environment variable you can easily bypass and tailor odbc to the needs of the underlying actual system without changing the configuration. Which is a good thing because this value is very system specific.
Full runtime dependencies of odbc-2.11.1: erts-6.0, kernel-3.0, stdlib-2.0
public_key-1.0.1 #
The public_key-1.0.1 application can be applied independently of other applications on a full OTP 18 installation.
- OTP-12986
-
- Application(s):
- public_key
Document enhancements
Full runtime dependencies of public_key-1.0.1: asn1-3.0, crypto-3.3, erts-6.0, kernel-3.0, stdlib-2.0
sasl-2.6 #
Note! The sasl-2.6 application can *not* be applied independently of other applications on an arbitrary OTP 18 installation. On a full OTP 18 installation, also the following runtime dependencies have to be satisfied: -- kernel-4.1 (first satisfied in OTP 18.1) -- stdlib-2.6 (first satisfied in OTP 18.1)
- OTP-12864
-
- Application(s):
- kernel, sasl, stdlib
*** HIGHLIGHT ***
A mechanism for limiting the amount of text that the built-in error logger events will produce has been introduced. It is useful for limiting both the size of log files and the CPU time used to produce them.
This mechanism is experimental in the sense that it may be changed if it turns out that it does not solve the problem it is supposed to solve. In that case, there may be backward incompatible improvements to this mechanism.
See the documentation for the config parameter error_logger_format_depth in the Kernel application for information about how to turn on this feature.
Full runtime dependencies of sasl-2.6: erts-6.0, kernel-4.1, stdlib-2.6, tools-2.6.14
ssh-4.1 #
The ssh-4.1 application can be applied independently of other applications on a full OTP 18 installation.
- OTP-11531
-
- Application(s):
- ssh
Send an understandable disconnect message when the key exchange phase can't find a common algorithm. There are also some test cases added.
- OTP-12853
-
- Application(s):
- ssh
- Related Id(s):
- seq12891
The third parameter in ssh_sftp:write_file is now accepting iolists again. Unicode handling adjusted.
- OTP-12230
-
- Application(s):
- ssh
First part of ssh test suite re-organization and extension.
- OTP-12622
-
*** HIGHLIGHT ***
The key exchange algorithms 'ecdh-sha2-nistp256', 'ecdh-sha2-nistp384' and 'ecdh-sha2-nistp521' are implemented. See RFC 5656.
This raises the security level considerably.
- OTP-12671
-
*** HIGHLIGHT ***
The key exchange algorithm 'diffie-hellman-group14-sha1' is implemented. See RFC 4253.
This raises the security level.
- OTP-12672
-
*** HIGHLIGHT ***
The key exchange algorithms 'diffie-hellman-group-exchange-sha1' and 'diffie-hellman-group-exchange-sha256' are implemented. See RFC 4419.
This raises the security level.
- OTP-12831
-
- Application(s):
- ssh
Adding random length extra padding as recommended in RFC 4253 section 6.
- OTP-12858
-
- Application(s):
- ssh
New test library for low-level protocol testing. There is also a test suite using it for some preliminary tests. The intention is to build on that for more testing of individual ssh messages. See lib/ssh/test/ssh_trpt_test_lib.erl and ssh_protocol_SUITE.erl in the same directory.
- OTP-12937
-
- Application(s):
- ssh
Increased default values for diffie-hellman-group-exchange-sha* to Min = 1024, N = 6144, Max = 8192.
Added 6144 and 8192 bit default gex groups.
- OTP-12938
-
- Application(s):
- ssh
The mac algorithm 'hmac-sha2-512' is implemented. See RFC 6668.
Full runtime dependencies of ssh-4.1: crypto-3.3, erts-6.0, kernel-3.0, public_key-0.22, stdlib-2.3
ssl-7.1 #
The ssl-7.1 application can be applied independently of other applications on a full OTP 18 installation.
- OTP-12974
-
- Application(s):
- ssl
Add DER encoded ECPrivateKey as valid input format for key option.
- OTP-12980
-
- Application(s):
- ssl
Correct return value of default session callback module
This error had the symptom that the client check for unique session would always fail, potentially making the client session table grow a lot and causing long setup times.
- OTP-11397
-
- Application(s):
- ssl
*** HIGHLIGHT ***
Add possibility to downgrade an SSL/TLS connection to a tcp connection, and give back the socket control to a user process.
This also adds the possibility to specify a timeout to the ssl:close function.
- OTP-12832
-
- Application(s):
- ssl
Add application setting to be able to change fatal alert shutdown timeout, also shorten the default timeout. The fatal alert timeout is the number of milliseconds between sending of a fatal alert and closing the connection. Waiting a little while improves the peers chances to properly receiving the alert so it may shutdown gracefully.
Full runtime dependencies of ssl-7.1: crypto-3.3, erts-6.0, inets-5.10.7, kernel-3.0, public_key-1.0, stdlib-2.0
stdlib-2.6 #
Note! The stdlib-2.6 application can *not* be applied independently of other applications on an arbitrary OTP 18 installation. On a full OTP 18 installation, also the following runtime dependencies have to be satisfied: -- kernel-4.1 (first satisfied in OTP 18.1) -- sasl-2.6 (first satisfied in OTP 18.1)
- OTP-12946
-
- Application(s):
- stdlib
In OTP 18.0, qlc does not handle syntax errors well. This bug has been fixed.
- OTP-12950
-
- Application(s):
- stdlib
Optimize zip:unzip/2 when uncompressing to memory.
- OTP-12973
-
- Application(s):
- stdlib
The stdlib reference manual is updated to show correct information about the return value of gen_fsm:reply/2.
- OTP-12977
-
- Application(s):
- stdlib
re:split2,3 and re:replace/3,4 now correctly handles pre-compiled patterns that have been compiled using the 'unicode' option.
- OTP-12990
-
- Application(s):
- stdlib
Export shell:catch_exception/1 as documented.
- OTP-12864
-
- Application(s):
- kernel, sasl, stdlib
*** HIGHLIGHT ***
A mechanism for limiting the amount of text that the built-in error logger events will produce has been introduced. It is useful for limiting both the size of log files and the CPU time used to produce them.
This mechanism is experimental in the sense that it may be changed if it turns out that it does not solve the problem it is supposed to solve. In that case, there may be backward incompatible improvements to this mechanism.
See the documentation for the config parameter error_logger_format_depth in the Kernel application for information about how to turn on this feature.
Full runtime dependencies of stdlib-2.6: compiler-5.0, crypto-3.3, erts-7.0, kernel-4.1, sasl-2.6
tools-2.8.1 #
The tools-2.8.1 application can be applied independently of other applications on a full OTP 18 installation.
- OTP-12981
-
- Application(s):
- tools
If a module includes eunit.hrl, a parse transform adds the function test/0 on line 0 in the module. A bug in OTP-18.0 caused cover:analyse_to_file/1 to fail to insert cover data in the output file when line 0 existed in the cover data table. This is now corrected.
Full runtime dependencies of tools-2.8.1: compiler-5.0, erts-7.0, inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5, webtool-0.8.10
wx-1.5 #
The wx-1.5 application can be applied independently of other applications on a full OTP 18 installation.
- OTP-12961
-
- Application(s):
- wx
Extend AUI functionality.
Full runtime dependencies of wx-1.5: erts-6.0, kernel-3.0, stdlib-2.0
Thanks To #
Attila Gulyas, Constantin Rack, Daniel Goertzen, Eric Meadows-Jönsson, Jimmy Zöger, Kirilll Zaborsky, Leo Liu, Lukas Larsson, Mikael Pettersson, Red, Shane Howley, Stefan Strigler, Yuki Ito, eksperimental, tmanevik