Bug fix release : otp_src_R15B01
Build date : 2012-04-02
This is R15B01, the first maintenance release for the R15B major release.
You can find the README file for the release at
http://www.erlang.org/download/otp_src_R15B01.readme (this file)
The source distribution and binary distributions for Windows can be
downloaded from
http://www.erlang.org/download/otp_src_R15B01.tar.gz
http://www.erlang.org/download/otp_win32_R15B01.exe
http://www.erlang.org/download/otp_win64_R15B01.exe
Note: To unpack the TAR archive you need a GNU TAR compatible program.
For installation instructions please read the README file that is part
of the distribution.
The on-line documentation can be found at: http://www.erlang.org/doc/
You can also download the complete HTML documentation or the Unix manual files
http://www.erlang.org/download/otp_doc_html_R15B01.tar.gz
http://www.erlang.org/download/otp_doc_man_R15B01.tar.gz
We also want to thank those that sent us patches, suggestions and bug reports,
The OTP Team
--- HIGHLIGHTS ----------------------------------------------------------
OTP-9858 == erts ==
Add erlang:statistics(scheduler_wall_time) to ensure correct
determination of scheduler utilization. Measuring scheduler
utilization is strongly preferred over CPU utilization, since
CPU utilization gives very poor indications of actual
scheduler/vm usage.
OTP-9911 == ssh public_key ==
Changed ssh implementation to use the public_key application
for all public key handling. This is also a first step for
enabling a callback API for supplying public keys and
handling keys protected with password phrases.
Additionally the test suites where improved so that they do
not copy the users keys to test server directories as this is
a security liability. Also ipv6 and file access issues found
in the process has been fixed.
This change also solves OTP-7677 and OTP-7235
This changes also involves some updates to public_keys
ssh-functions.
OTP-9985 == erts stdlib ==
When an escript ends now all printout to standard output and
standard error gets out on the terminal. This bug has been
corrected by changing the behaviour of erlang:halt/0,1, which
should fix the same problem for other escript-like
applications, i.e that data stored in the output port driver
buffers got lost when printing on a TTY and exiting through
erlang:halt/0,1.
The BIF:s erlang:halt/0,1 has gotten improved semantics and
there is a new BIF erlang:halt/2 to accomplish something like
the old semantics. See the documentation.
Now erlang:halt/0 and erlang:halt/1 with an integer argument
will close all ports and allow all pending async threads
operations to finish before exiting the emulator. Previously
erlang:halt/0 and erlang:halt(0) would just wait for pending
async threads operations but not close ports. And
erlang:halt/1 with a non-zero integer argument would not even
wait for pending async threads operations.
To roughly the old behaviour, to not wait for ports and async
threads operations when you exit the emulator, you use
erlang:halt/2 with an integer first argument and an option
list containing {flush,false} as the second argument. Note
that now is flushing not dependant of the exit code, and you
can not only flush async threads operations which we deemed
as a strange behaviour anyway.
Also, erlang:halt/1,2 has gotten a new feature: If the first
argument is the atom 'abort' the emulator is aborted
producing a core dump, if the operating system so allows.
OTP-10017 == erts runtime_tools ==
The DTrace source patch from Scott Lystig Fritchie is
integrated in the source tree. Using an emulator with dtrace
probe is still not supported for production use, but may be a
valuable debugging tool. Configure with
--with-dynamic-trace=dtrace (or
--with-dynamic-trace=systemtap) to create a build with dtrace
probes enabled. See runtime_tools for documentation and
examples.
OTP-10034 == eldap ==
Added Torbjörn Törnkvists eldap client.
OTP-10036 == ssh ==
Added options for the ssh client to support user keys files
that are password protected.
--- otp -----------------------------------------------------------------
OTP-9082 When building with --enable-native-libs, the hipe application
itself did not get hipe compiled. This is now corrected.
OTP-9846 The readme for windows did not correctly describe how to
build OpenSSL. The documentation is now corrected.
OTP-9914 Update xcomp config for AVR32/buildroot-v3.0.0
With Atmel's recent buildroot-v3.0.0 release for AVR32, some
changes were needed in order to properly cross compile
Erlang/OTP for the platform. Tested with R14B04 on a mk I
NGW100. (thanks to Smith Winston)
OTP-9937 Add documentation about on_load attribute in module
attributes section. (Thanks to José Valim)
--- appmon-2.1.14.1 -----------------------------------------------------
OTP-9907 The GS applications is now deprecated and will be removed in
the R16 release. The following GS-based applications have
been superseded by the Observer application and will removed
in R16: Appmon, Pman, Tv.
--- asn1-1.7 ------------------------------------------------------------
OTP-9688 Some ASN.1 INTEGER type and SEQUENCE constructor variants
previously not handled by the ASN.1 compiler are now
correctly handled
OTP-9946 An INTEGER with a value constraint where unions are used e.g.
X1 ::= INTEGER (1..4 | 6 | 8 | 10 | 20) is not handled
correctly. For PER the value is encoded in wrong number of
bits.
--- common_test-1.6.1 ---------------------------------------------------
OTP-9595 Common Test adds the test suite directories to the code path
before executing the tests. These directories should also be
removed from the code path at the end of the test run, which,
prior to this fix, was not performed.
OTP-9634 An entry is now created in the index.html file (i.e. the
overview file for the test run) for each repeated test during
a test run. This was previously not the case. Note that in
the top level (logdir) index file, however, only the last
test result is listed. For example, given the test spec:
[{merge_tests,false},{dirs,"test1"},{dirs,"test1"}]. In the
index file for the test run (under
Logdir/ct_run.Node.Date.Time), both tests are listed. In the
top level index file (under Logdir), only the last test is
listed (one has to find the previous results through the
all_runs.html file).
OTP-9659 A new optional feature has been introduced that enables
Common Test to generate priv_dir directory names that are
unique for each test case or config function. The name of the
option/flag is 'create_priv_dir' and it can be set to value
'auto_per_run' (which is the default, existing, behaviour),
or 'auto_per_tc' or 'manual_per_tc'. If 'auto_per_tc' is
used, Test Server creates a dedicated priv_dir automatically
for each test case (which can be very expensive in case of
many and/or repeated cases). If 'manual_per_tc' is used, the
user needs to create the priv_dir explicitly by calling the
new function ct:make_priv_dir/0.
OTP-9666 After a test case timeout or abortion, the end_per_testcase
function executes on a new dedicated process. The group
leader for this process should be set to the IO server for
the test case, which was not done properly. The result of
this error was that no warnings about end_per_testcase
failing or timing out were ever printed in the test case log.
Also, help functions such as e.g. test_server:stop_node/1,
attempting to synchronize with the IO server, would hang. The
fault has been corrected.
OTP-9730 A column for test case group name has been added to the suite
overview HTML log file.
OTP-9830 The ct:get_status/0 function would cause the calling process
to receive 'DOWN' messages if no tests were running at the
time of the call. This bug has been fixed.
OTP-9855 It is now possible to use the post_end_per_testcase CT hook
function to print a comment for a test case in the overview
log file, even if the test case gets killed by a timetrap or
unknown exit signal, or if the end_per_testcase function
times out.
OTP-9880 The pre- and post CT hook functions are now always called for
all configuration functions, even for configuration functions
that are not implemented in the test suite.
OTP-9894 A deadlock situation could occur if Common Test is forwarding
error_handler printouts to Test Server at the same time a new
test case is starting. This error has been fixed.
OTP-9898 A link to the ct_run program is now created, as expected, in
the installation bin directory (default /usr/local/bin)
during 'make install'.
OTP-9899 Using the repeat, duration or until option with
ct:run_test/1, would cause an infinite loop. This has been
fixed.
OTP-9900 Two or more test cases executing in parallel and printing to
screen at the same time with ct:pal/2/3 or ct:print/2/3 could
write into each other's "slots" and create a mess of mixed
strings. In order to avoid this, only a single IO message is
now ever sent per printout call.
OTP-9904 Common Test will now print error information (with a time
stamp) in the test case log file immediately when a test case
fails. This makes it easier to see when, in time, the fault
actually occured, and aid the job of locating relevant trace
and debug printouts in the log.
OTP-9930 When a test case was killed because of a timetrap timeout,
the current location (suite, case and line) was not printed
correctly in the log files. This has been corrected.
OTP-9933 The wrong exit location was printed in the log file when
ct:fail/1 or ct_fail/2 was called.
OTP-9941 Test Server and Common Test would add new error handlers with
each test run and fail to remove previously added ones. In
the case of Test Server, this would only happen if SASL was
not running on the test node. This has been fixed.
OTP-9955 Test Server has been modified to check the SASL errlog_type
parameter when receiving an error logger event, so that it
doesn't print reports of type that the user has disabled.
OTP-9958 If a test case process was terminated due to an exit signal
from a linked process, Test Server failed to report the
correct name of the suite and case to the framework. This has
been corrected.
OTP-9964 When starting a test with ct_run and adding a directory to
the code path using -pa or -pz (preceding -erl_args), Common
Test would delete any existing directory in the code path
with the same base name (see filename:basename/1) as the
directory being added. This has been fixed.
OTP-9972 The test specification term 'skip_groups' was implemented in
Common Test v1.6. It was never documented however, which has
now been attended to. Please see the Test Specifications
chapter in the User's Guide for information.
OTP-9973 The Common Test Master has been updated to use a CSS style
sheet for the html log files.
OTP-9975 If passing two or more directories with the same base name
(see filename:basename/1) to Common Test with ct_run -pa,
only one of the directories would actually be added.
OTP-9986 If the init_per_group/2 and end_per_group/2 functions are not
implemented in the test suite, Common Test calls it's own
local init- and end functions - previously named
ct_init_per_group/2 and ct_end_per_group/2 - when a group is
executed. These functions have been renamed init_per_group/2
and end_per_group/2 respectively. Note that this may affect
any user event handler identifying events by the old names.
OTP-9988 By specifying a user defined function ({M,F,A} or fun) as
timetrap value, either by means of an info function or by
calling ct:timetrap/1, it is now possible to set a timetrap
that will be triggered when the user function returns.
OTP-9989 Configuration data required by the group info function was
deleted before the call to post_end_per_group, which made it
impossible for the hook function to read and use the data in
question. This has been fixed.
OTP-9992 If the optional configuration functions init_per_suite/1 and
end_per_suite/1 are not implemented in the test suite, local
Common Test versions of these functions are called instead,
and will be displayed in the overview log file. Any printouts
made by the pre- or post_init_per_suite and pre- or
post_end_per_suite hook functions are saved in the log files
for these functions.
OTP-9995 A hook has been added to common test which outputs surefire
XML for usage together with CI tools such as Jenkins. To
enable the hook pass '-ct_hooks cth_surefire' to ct_run. See
the CTH documentation for more details.
OTP-10009 Disabling built-in hooks in a test specification was ignored,
this has now been fixed.
OTP-10037 Various typographical errors corrected in documentation for
common_test, driver, erl_driver and windows installation
instructions. (Thanks to Tuncer Ayaz)
--- compiler-4.8.1 ------------------------------------------------------
OTP-9842 In rare circumstance, the compiler could crash when compiling
a case statement. (Thanks to Hakan Mattsson.)
OTP-9866 Calling a guard test (such as is_list/1) from the top-level
in a guard, would cause a compiler crash if there was a local
definition with the same name. Corrected to reject the
program with an error message.
OTP-9867 Using get/1 in a try block could in some cases cause an
internal compiler error. (Thanks to Eric Merritt.)
OTP-9910 An unexported on_load function would not get run if the
module was compiled with the inline option. (Thanks to
Yiannis Tsiouris.)
OTP-9917 Fixed a discrepancy in compile_info
The BEAM disassembler used the atom 'none' to signify the
absence of a compile_info chunk in a .beam file. This clashed
with the type declaration of the compile_info field of a
#beam_file{} record as containing a list. Now [] signifies
the absence of this chunk. This simplifies the code and
avoids a dialyzer warning.
OTP-9919 Fix typo in `compile' doc: unmatched parenthesis (Thanks to
Ricardo Catalinas Jiménez)
OTP-9982 In a try...catch statement that always returned false, the
compiler would remove calls to BIFs that could not cause an
exception (such as put/2). Example of such code: try put(K,
V), false catch _:_ -> false end.
--- debugger-3.2.8 ------------------------------------------------------
OTP-9950 Fixed disappearing breakpoints bug, reported by Ricardo
Catalinas Jiménez.
--- dialyzer-2.5.1 ------------------------------------------------------
OTP-9833 Handle nowarn_unused_function the same way as the compiler
does.
--- diameter-1.1 --------------------------------------------------------
OTP-9824 Fix fault in sending of 'closed' events.
The fault made it possible for the 'closed' event not to be
sent following a failed capabilities exchange.
OTP-9826 Fix faulty diameterc -name/-prefix.
A minor blunder when introducing the new dictionary parser in
diameter-1.0 broke these options.
--- eldap-1.0 -----------------------------------------------------------
OTP-10034 Added Torbjörn Törnkvists eldap client.
--- erl_docgen-0.3.1 ----------------------------------------------------
OTP-9832 Some links in C libraries were not generated correctly. This
bug has been fixed.
OTP-9877 Optimize and improve handling of multiple func:s.
OTP-9893 The generation of the libraries' HTML documentation has been
optimized.
OTP-9918 Set `font-family: Courier, monospace' in OTP doc CSS
left Courier as the primary original font and also added
monospace as secondary for people which in Linux does not
have it installed.
Also adds minor cosmetic changes to the CSS. (Thanks to
Ricardo Catalinas Jiménez)
OTP-9970 When generating from edoc it is now possible to use ranges in
specs and tags in the description.
--- erl_interface-3.7.7 -------------------------------------------------
OTP-10016 Minor suppressions and fixes of compilation warnings
--- erts-5.9.1 ----------------------------------------------------------
OTP-9820 Driver output has been corrected so output of large binaries
(> 4 GiB) now does not silently fail or crash the emulator,
but either outputs the binary or fails the call. This means
that writing a binary > 4 Gib to file now works but on e.g
64-bit Windows (that has scatter/gather I/O buffer segment
lengths of 32 bits) fails. The behaviour may change in the
future to always write the binary, in parts if necessary.
OTP-9849 erlang:system_profile errorneous profiled the profiler
process when observing runnable processes. This has been
corrected.
OTP-9857 Makefiles in erts, hipe and tools have been corrected to
enable parallel make, i.e MAKEFLAGS=-jX where X is the
parallelity number. As a result of this dependencies were
corrected since that is what is needed for parallel make to
work.
OTP-9858 Add erlang:statistics(scheduler_wall_time) to ensure correct
determination of scheduler utilization. Measuring scheduler
utilization is strongly preferred over CPU utilization, since
CPU utilization gives very poor indications of actual
scheduler/vm usage.
OTP-9886 Calling trace_info/2 asking for information about a function
that had native could could crash the run-time system.
OTP-9912 reduce smp locking time range in erts_garbage_collect (thanks
to Jovi Zhang)
OTP-9922 ERTS internal API improvements. In some cases the amount of
atomic read operations needed have been reduced due to this.
OTP-9924 Fix typo in supervisor behaviour doc (Thanks to Ricardo
Catalinas Jiménez)
OTP-9925 Correct spelling of registered (Thanks to Richard Carlsson)
OTP-9926 erts: Remove unused variable (Thanks to Jovi Zhang)
OTP-9932 Fix bug in ETS with compressed option and insertion of term
containing large integers (>2G) on 64-bit machines. Seen to
cause emulator crash. (Thanks to Diego Llarrull for excellent
bug report)
OTP-9978 Handle Linux OS where /sys/devices/system/node is only
readable by root. Fallback to /sys/devices/system/cpu for
topology info.
OTP-9985 When an escript ends now all printout to standard output and
standard error gets out on the terminal. This bug has been
corrected by changing the behaviour of erlang:halt/0,1, which
should fix the same problem for other escript-like
applications, i.e that data stored in the output port driver
buffers got lost when printing on a TTY and exiting through
erlang:halt/0,1.
The BIF:s erlang:halt/0,1 has gotten improved semantics and
there is a new BIF erlang:halt/2 to accomplish something like
the old semantics. See the documentation.
Now erlang:halt/0 and erlang:halt/1 with an integer argument
will close all ports and allow all pending async threads
operations to finish before exiting the emulator. Previously
erlang:halt/0 and erlang:halt(0) would just wait for pending
async threads operations but not close ports. And
erlang:halt/1 with a non-zero integer argument would not even
wait for pending async threads operations.
To roughly the old behaviour, to not wait for ports and async
threads operations when you exit the emulator, you use
erlang:halt/2 with an integer first argument and an option
list containing {flush,false} as the second argument. Note
that now is flushing not dependant of the exit code, and you
can not only flush async threads operations which we deemed
as a strange behaviour anyway.
Also, erlang:halt/1,2 has gotten a new feature: If the first
argument is the atom 'abort' the emulator is aborted
producing a core dump, if the operating system so allows.
OTP-9996 Added check to inet driver to avoid building on operating
systems that do not yet have IPv6 compatible socket API.
(Thanks to Peer Stritzinger)
OTP-10004 Fix bug when the number of CPUs actually found is lower than
the configured value. (Thanks to Benjamin Herrenschmidt)
OTP-10017 The DTrace source patch from Scott Lystig Fritchie is
integrated in the source tree. Using an emulator with dtrace
probe is still not supported for production use, but may be a
valuable debugging tool. Configure with
--with-dynamic-trace=dtrace (or
--with-dynamic-trace=systemtap) to create a build with dtrace
probes enabled. See runtime_tools for documentation and
examples.
OTP-10019 The runtime system without SMP support and without thread
support erroneously busy waited when no work was present.
This bug first appeared in erts-5.9.
OTP-10037 Various typographical errors corrected in documentation for
common_test, driver, erl_driver and windows installation
instructions. (Thanks to Tuncer Ayaz)
OTP-10041 Fix memory leak caused by race on exiting process
--- et-1.4.4.1 ----------------------------------------------------------
OTP-9907 The GS applications is now deprecated and will be removed in
the R16 release. The following GS-based applications have
been superseded by the Observer application and will removed
in R16: Appmon, Pman, Tv.
--- gs-1.5.15.1 ---------------------------------------------------------
OTP-9907 The GS applications is now deprecated and will be removed in
the R16 release. The following GS-based applications have
been superseded by the Observer application and will removed
in R16: Appmon, Pman, Tv.
--- hipe-3.9.1 ----------------------------------------------------------
OTP-6454 References to is_constant/1 (which was removed in the R12
release) has been removed from documentation and code.
OTP-9857 Makefiles in erts, hipe and tools have been corrected to
enable parallel make, i.e MAKEFLAGS=-jX where X is the
parallelity number. As a result of this dependencies were
corrected since that is what is needed for parallel make to
work.
OTP-9917 Fixed a discrepancy in compile_info
The BEAM disassembler used the atom 'none' to signify the
absence of a compile_info chunk in a .beam file. This clashed
with the type declaration of the compile_info field of a
#beam_file{} record as containing a list. Now [] signifies
the absence of this chunk. This simplifies the code and
avoids a dialyzer warning.
OTP-9923 Make dialyzer recognize the process_flag option sensitive add
missing specs to documentation (Thanks to Tobias Schlager)
OTP-9939 Remove hipe_ceach from hipe.app.src to fix reltool-generated
release startup. (Thanks to Tim Stewart)
--- ic-4.2.30 -----------------------------------------------------------
OTP-9998 Add generation of Erlang callback functions to generated
Erlang source code to avoid compiler warnings.
--- inets-5.8.1 ---------------------------------------------------------
OTP-9827 [ftp] Fails to open IPv6 connection due to badly formatted
IPv6 address in EPRT command. The address part of the command
incorrectly contained decimal elements instead of hexadecimal.
OTP-9847 [httpc] Bad Keep Alive Mode. When selecting a session, the
"state" of the session (specifically if the server has responded)
was not taken into account.
OTP-9860 [httpc] The client incorrectly streams 404 responses.
The documentation specifies that only 200 and 206 responses
shall be streamed.
--- inets-5.9 -----------------------------------------------------------
OTP-9805 [httpd] Make the server header configurable with new config
option server_tokens. The value of the server header, which
was previously hard-coded (at compile time), is now possible
to manipulate through the means of the server_tokens config
option.
OTP-9960 Improve inets support for inets as an included application.
inets_app calls supervisor:start_link/3 directly rather than
calling the root supervisor function inets_sup:start_link/0.
This precludes using included_applications to start inets
without having a wrapper function.
OTP-9979 [httpc] Add function to retreive current options,
httpc:get_options/1,2.
OTP-9983 The module http_uri now officially supported. Also, the
http_uri:parse/1,2 function has been extended with more
scheme support and a way to provide your own scheme info.
--- jinterface-1.5.6 ----------------------------------------------------
OTP-9925 Correct spelling of registered (Thanks to Richard Carlsson)
OTP-9927 Java 1.5 has a bug where detecting codepoint offsets in
strings that are created by String.substring() gives wrong
results. The new implementation uses a different method,
avoinding the issue. (Thanks to Vlad Dumitrescu)
OTP-9928 Improve error message when creating a too long OtpErlangAtom.
Also print the value that we tried to use for the atom.
(Thanks to Vlad Dumitrescu)
--- kernel-2.15.1 -------------------------------------------------------
OTP-9820 Driver output has been corrected so output of large binaries
(> 4 GiB) now does not silently fail or crash the emulator,
but either outputs the binary or fails the call. This means
that writing a binary > 4 Gib to file now works but on e.g
64-bit Windows (that has scatter/gather I/O buffer segment
lengths of 32 bits) fails. The behaviour may change in the
future to always write the binary, in parts if necessary.
OTP-9872 erts: minor fix for unnecessary condition erts: change
SENDFILE_CHUNK_SIZE from signed to unsigned (Thanks to jovi
zhang)
OTP-9874 Two contracts in gen_sctp have been corrected.
OTP-9875 If a process calls a module with an running on_load handler,
the process is supposed to be suspended. But if the module
with the on_load handler was loading used code:load_binary/3,
the call would instead fail with an undef exception.
OTP-9954 File name and error reason is now returned if creation of a
cookie fails. (Thanks to Magnus Henoch)
OTP-9981 Fix port leak in zlib when passing invalid data to
compress,uncompress,zip,unzip,gzip,gunzip.
OTP-9987 Various typographical errors corrected in documentation for
the global, error_logger, etop, lists, ets and supervisor
modules and in the c_portdriver and kernel_app documentation.
(Thanks to Ricardo Catalinas Jiménez)
OTP-9990 Fix returned error from gen_tcp:accept/1,2 when running out
of ports
The {error, enfile} return value is badly misleading and
confusing for this case, since the Posix ENFILE errno value
has a well-defined meaning that has nothing to do with Erlang
ports. The fix changes the return value to {error,
system_limit}, which is consistent with e.g. various file(3)
functions. inet:format_error/1 has also been updated to
support system_limit in the same manner as
file:format_error/1. (Thanks to Per Hedeland)
OTP-9991 erts_debug:size/1 has been corrected to take sharing in the
environment of funs into account. For funs it used to always
give the same result as erts_debug:flat_size/1.
OTP-9993 In some cases when the process doing file:sendfile crashes
while sending the file the efile_drv code would not clean up
after itself correctly. This has now been fixed.
OTP-9994 On BSD based platforms file:sendfile would sometime go into
an infinite loop when sending big files. This has now been
fixed.
OTP-9999 While disk_log eagerly collects logged terms for better
performance, collecting too much data may choke the system
and cause huge binaries to be written.
The problem was addressed in OTP-9764, but the situation was
not improved in all cases.
(Thanks to Richard Carlsson.)
OTP-10002 The documentation of .app files incorrectly said that the
default value for the mod parameter is undefined. This is now
corrected to [].
--- megaco-3.16.0.1 -----------------------------------------------------
OTP-9949 Removed use of deprecated system flag, scheduler_bind_type,
in the measurement tool mstone1.
--- mnesia-4.7 ----------------------------------------------------------
OTP-9890 Improved table lock algorithm.
OTP-10015 Returns the same value for mnesia_loader:disc_load_table/2 as
mnesia_loader:net_load_table/4 if a table copy can not be
found. (Thanks to Uwe Dauernheim)
--- observer-1.1 --------------------------------------------------------
OTP-9878 Fixed various bugs in observer gui.
Tv edit entry dialog crashed on cancel and ok
Search with bad regexps caused a crash, thanks Peti Gömöri.
Process refresh on dead process caused a crash, thanks Eric
Pailleau .
Several indexes on mnesia tables caused a crash, thanks Eric
Pailleau.
Fixed report interval in table viewer, thanks Matthew Evans.
OTP-9891 Implement a system monitor.
--- orber-3.6.24 --------------------------------------------------------
OTP-9887 Fix number of arguments in orber dbg printout
OTP-9966 The descriptions of ssl_server_options and ssl_client_options
are corrected.
Seq. Id: seq12018
OTP-10016 Minor suppressions and fixes of compilation warnings
--- os_mon-2.2.9 --------------------------------------------------------
OTP-9913 Fix segmentation fault in memsup
when /proc/meminfo does not include information about
buffers/cache (for instance inside OpenVZ container) (Thanks
to Anton Vorobev)
--- pman-2.7.1.2 --------------------------------------------------------
OTP-9907 The GS applications is now deprecated and will be removed in
the R16 release. The following GS-based applications have
been superseded by the Observer application and will removed
in R16: Appmon, Pman, Tv.
--- public_key-0.15 -----------------------------------------------------
OTP-9911 Changed ssh implementation to use the public_key application
for all public key handling. This is also a first step for
enabling a callback API for supplying public keys and
handling keys protected with password phrases.
Additionally the test suites where improved so that they do
not copy the users keys to test server directories as this is
a security liability. Also ipv6 and file access issues found
in the process has been fixed.
This change also solves OTP-7677 and OTP-7235
This changes also involves some updates to public_keys
ssh-functions.
--- reltool-0.6 ---------------------------------------------------------
OTP-9792 Miscellaneous corrections:
Start of reltool GUI would sometimes crash with a badmatch in
reltool_sys_win:do_init. This has been corrected.
Minor corrections of documentation and type specifications of
app() and mod() are done.
If a module name is duplicated in an app file reltool would
return an error. This is now changed to a warning.
Reltool would earlier not necessarily keep the order of
applications as listed in the rel specification in the
configuration. This has been corrected.
Reltool would earlier set the default for included
applications to an empty list if it was not set in the rel
specification in the configuration. This was correct
according to sasl/systools documentation, but not according
to sasl/systools implementation. We decided to change the
documentation and reltool to use the value of
included_applications from the .app file as default instead
of the empty list, since this seems more intuitive and since
systools always has done the same.
The value of included applications in the rel specification
in the configuration did not overwrite included_applications
in the .app file if it was set to an empty list. This has
been corrected.
Reltool would earlier add load instructions in the
script/boot files for ALL modules in the ebin directory of an
application even if mod_cond was set to app (include only
modules listed in the .app file). This has been corrected.
Reltool would earlier add start instructions in the
script/boot file for included applications. This has been
corrected - included applications shall only be loaded since
the including application is responsible for starting them.
Status bar now indicates that reltool is working (Processing
libraries...) for all configuration changes, and when
generating target system.
Title of dependecies column in app and mod window is changed
from "Modules used by others" to "Modules using this".
OTP-9794 Configuration changes via the GUI had a few bugs related to
error handling, rollback and undo. A major re-write of the
reltool_server has been done in order to align the way
reltool_server updates and uses its state and tables for all
different kinds of configuration change.
All configuration changes (except undo) now cause a re-read
of the file system, meaning that if something has changed in
the file system it will be reflected in the result of the
configuration change.
When loading a new configuration file via the GUI, the old
configuration is now completely scratched, and only the new
is valid.
OTP-9967 A warning list is added to the sys window of the reltool GUI.
This list will continuously show all warnings produced by the
current configuration.
OTP-9968 Some bug fixes related to the handling of escripts:
Reltool could not handle escripts with inlined applications.
This has been corrected. Inlined applications will be visible
in the GUI, but not possible to include/exclude separately.
Loading a config which contains an escript via the GUI menu
did not produce the same result as when using the same
configuration at reltool start. Paths, version and label
could differ. This has been corrected.
Loading config with same escript (source) twice caused
reltool to add same module twice. This has been corrected.
Loading config with same escript (inlined beam) twice caused
reltool to fail saying module is included by two different
applications. This has been corrected.
Loading config which in addition to an existing escript also
adds another escript, for which the name sorts before the
existing one, would cause reltool to fail saying "Application
name clash". This has been corrected.
OTP-9977 As a way of specifying one specific version of an
application, the following configuration parameter is added
on application level:
{lib_dir,Dir}, Dir = string()
This can be useful if the parent directory of the application
directory is not suitable to use as a lib dir on system
level.
OTP-10003 Reltool would sometimes generate a .app file containing
{start_phases,undefined}, which would cause an exception in
systools at parse time. This has been corrected so reltool
now omits the start_phases entry if the value is undefined.
(Thanks to Juan Jose Comellas)
In order to align with reltool, sasl will also omit
start_phases entries with value undefined in .script files.
--- runtime_tools-1.8.8 -------------------------------------------------
OTP-10017 The DTrace source patch from Scott Lystig Fritchie is
integrated in the source tree. Using an emulator with dtrace
probe is still not supported for production use, but may be a
valuable debugging tool. Configure with
--with-dynamic-trace=dtrace (or
--with-dynamic-trace=systemtap) to create a build with dtrace
probes enabled. See runtime_tools for documentation and
examples.
--- sasl-2.2.1 ----------------------------------------------------------
OTP-9539 If sys.config existed, but was not readable or parseable,
this would not be detected until after the upgrade and at the
next node restart. The possibility for this to happen is now
reduced by adding a check to systools:make_tar which fails
the creation of the tar file if sys.config or relup does not
have reasonable contents. Note that there are no detailed
checks, only parsing and erlang term format check.
OTP-9652 systools:make_script would allow {kernel,Vsn,load} in the
.rel file, causing a .boot file which only loaded kernel and
did not start it. This has been corrected. Only start type
'permanent', which is the default, is now allowed for kernel
and stdlib.
OTP-9864 release_handler:remove_release/1 now handles symlinked files
properly
OTP-9888 If stdlib was stated with a start type different from
permanent in a .rel file, systools would incorrectly say that
sasl had faulty start type. This has been corrected.
OTP-9980 Sasl documentation earlier said that the InclApps parameters
in a .rel file defaults to the empty list. This is not
correct. It defaults to the same value as specified in the
.app file. This has been corrected.
OTP-9984 Applications that are listed in {applications,Apps} in the
.app file were not sorted correctly by
systools:make_script/1,2. They got the reverse order of how
they were listed in the .app file. This is corrected so they
are now sorted (internally between each other) in the same
order as they are listed in the .rel file (i.e. the order
they are listed in the .app file does no longer matter).
OTP-10001 Documentation of .appup files now also states that UpFromVsn
and DownToVsn can be specified as regular expressions in
order to avoid duplicated upgrade instructions.
OTP-10003 Reltool would sometimes generate a .app file containing
{start_phases,undefined}, which would cause an exception in
systools at parse time. This has been corrected so reltool
now omits the start_phases entry if the value is undefined.
(Thanks to Juan Jose Comellas)
In order to align with reltool, sasl will also omit
start_phases entries with value undefined in .script files.
--- snmp-4.21.5 ---------------------------------------------------------
OTP-9783 [agent] Removed use of old style tuple funs.
OTP-9851 [agent] Repeated vacm table dumping fails due to file name
conflict. When dumping the vacm table to disk, a temoporary
file with a fixed name was used. If the table dumping
(snmpa_vacm:dump_table/0)
was initiated from several different processes in rapid
succesion, the dumping could fail because the different
processes was simultaniously trying to write to the same
file. This problem has been eliminated by creating a unique
name for the temporary file.
--- snmp-4.21.6 ---------------------------------------------------------
OTP-9700 [agent] DoS using GET-BULK with large value of MaxRepetitions.
A preventive method has been implementing by simply limit
the number of varbinds that can be included in a Get-BULK
response message. This is specified by the new config option,
gb_max_vbs.
OTP-9868 [agent] Mib server cache gclimit update function incorrectly
calls age update function. The gclimit update function
update_mibs_cache_gclimit/1 incorrectly called
update_mibs_cache_age/2 update function.
--- snmp-4.21.7 ---------------------------------------------------------
OTP-9884 [agent] Simultaneous snmpa:backup/1 calls can interfere.
The master agent did not check if a backup was already in
progress when a backup request was accepted.
--- snmp-4.22 -----------------------------------------------------------
OTP-9876 [manager] As an option, handle every incomming and outgoing
message in a temporary (newly spawned) process.
OTP-9940 [snmp] Added the log_to_io audit-trail-log converter function
to the api modules of both the manager and agent.
OTP-9942 [agent] Documenting previously existing but undocumented
function, snmp_generic:get_table_info/2.
OTP-9943 [agent] Improve error handling while reading agent config
files. Some files contain mandatory information and is
therefor themself mandatory
OTP-9969 [compiler] Extend table info for augmented tables. The table
information the MIB compiler provides with augmented tables
has been extended with nbr_of_cols, first_accessible and
not_accessible.
--- ssh-2.1 -------------------------------------------------------------
OTP-7235 All keys in authorized_keys are considerd, wrongly only the
first one was before.
OTP-7677 ssh daemon now properly handles ras host keys, in previous
versions only dsa host keys sufficed to set up a connection.
OTP-8109 Document supported algorithms
OTP-8111 ssh:shell/3 and ssh:connect/3 does not hang anymore if
connection negotiation fails
OTP-8380 Improve check so that we will not try to read ssh packet
length indicator if not sure we have enough data.
OTP-9391 Graceful handling of premature close from an sftp client.
OTP-9466 Do not try to use user interaction when it is disabled.
OTP-9905 Improved error handling of internal errors i the ssh
connection handling process
OTP-9911 Changed ssh implementation to use the public_key application
for all public key handling. This is also a first step for
enabling a callback API for supplying public keys and
handling keys protected with password phrases.
Additionally the test suites where improved so that they do
not copy the users keys to test server directories as this is
a security liability. Also ipv6 and file access issues found
in the process has been fixed.
This change also solves OTP-7677 and OTP-7235
This changes also involves some updates to public_keys
ssh-functions.
OTP-9948 sftp daemon generates file handles correct
OTP-10036 Added options for the ssh client to support user keys files
that are password protected.
--- ssl-5.0.1 -----------------------------------------------------------
OTP-9915 Robustness and improvement to distribution over SSL
Fix a bug where ssl_tls_dist_proxy would crash at caller
timeout. Fix a bug where a timeout from the SSL layer would
block the distribution indefinately. Run the proxy
exclusively on the loopback interface. (Thanks to Paul Guyot)
OTP-9916 Fix setup loop of SSL TLS dist proxy
Fix potential leak of processes waiting indefinately for data
from closed sockets during socket setup phase. (Thanks to
Paul Guyot)
OTP-9925 Correct spelling of registered (Thanks to Richard Carlsson)
OTP-10024 Added TLS PRF function to the SSL API for generation of
additional key material from a TLS session. (Thanks to
Andreas Schultz)
--- stdlib-1.18.1 -------------------------------------------------------
OTP-6454 References to is_constant/1 (which was removed in the R12
release) has been removed from documentation and code.
OTP-9549 Leave control back to gen_server during supervisor's restart
loop
When an attempt to restart a child failed, supervisor would
earlier keep the execution flow and try to restart the child
over and over again until it either succeeded or the restart
frequency limit was reached. If none of these happened,
supervisor would hang forever in this loop.
This commit adds a timer of 0 ms where the control is left
back to the gen_server which implements the supervisor. This
way any incoming request to the supervisor will be handled -
which could help breaking the infinite loop - e.g. shutdown
request for the supervisor or for the problematic child.
This introduces some incompatibilities in stdlib due to new
return values from supervisor:
restart_child/2 can now return {error,restarting}
delete_child/2 can now return {error,restarting}
which_children/1 returns a list of {Id,Child,Type,Mods},
where Child, in addition to the old pid() or 'undefined', now
also can be 'restarting'.
OTP-9782 If a temporary child's start function returned 'ignore', then
the supervisor would keep it's child specification. This has
been corrected. Child specifications for non-existing
temporary children shall never be kept.
OTP-9854 Use universal time as base in error logger
Previous conversion used the deprecated
calendar:local_time_to_universal_time/1
OTP-9866 Calling a guard test (such as is_list/1) from the top-level
in a guard, would cause a compiler crash if there was a local
definition with the same name. Corrected to reject the
program with an error message.
OTP-9920 Fix the type spec from the doc of binary:part/3 (Thanks to
Ricardo Catalinas Jiménez)
OTP-9925 Correct spelling of registered (Thanks to Richard Carlsson)
OTP-9929 Put gb_trees documentation into alphabetical order (Thanks to
Aidan Hobson Sayers)
OTP-9932 Fix bug in ETS with compressed option and insertion of term
containing large integers (>2G) on 64-bit machines. Seen to
cause emulator crash. (Thanks to Diego Llarrull for excellent
bug report)
OTP-9945 Add plugin support for alternative name lookup This patch
introduces a new way of locating a behaviour instance: {via,
Module, Name}. (Thanks to Ulf Wiger)
OTP-9953 The function digraph_utils:condensation/1 used to create a
digraph containing loops contradicting the documentation
which states that the created digraph is free of cycles. This
bug has been fixed. (Thanks to Kostis Sagonas for finding the
bug.)
OTP-9985 When an escript ends now all printout to standard output and
standard error gets out on the terminal. This bug has been
corrected by changing the behaviour of erlang:halt/0,1, which
should fix the same problem for other escript-like
applications, i.e that data stored in the output port driver
buffers got lost when printing on a TTY and exiting through
erlang:halt/0,1.
The BIF:s erlang:halt/0,1 has gotten improved semantics and
there is a new BIF erlang:halt/2 to accomplish something like
the old semantics. See the documentation.
Now erlang:halt/0 and erlang:halt/1 with an integer argument
will close all ports and allow all pending async threads
operations to finish before exiting the emulator. Previously
erlang:halt/0 and erlang:halt(0) would just wait for pending
async threads operations but not close ports. And
erlang:halt/1 with a non-zero integer argument would not even
wait for pending async threads operations.
To roughly the old behaviour, to not wait for ports and async
threads operations when you exit the emulator, you use
erlang:halt/2 with an integer first argument and an option
list containing {flush,false} as the second argument. Note
that now is flushing not dependant of the exit code, and you
can not only flush async threads operations which we deemed
as a strange behaviour anyway.
Also, erlang:halt/1,2 has gotten a new feature: If the first
argument is the atom 'abort' the emulator is aborted
producing a core dump, if the operating system so allows.
OTP-9997 Add escript win32 alternative invocation. escript can now be
started as both "escript.exe" and "escript" (Thanks to Pierre
Rouleau)
--- syntax_tools-1.6.8 --------------------------------------------------
OTP-10016 Minor suppressions and fixes of compilation warnings
--- test_server-3.5.1 ---------------------------------------------------
OTP-9659 A new optional feature has been introduced that enables
Common Test to generate priv_dir directory names that are
unique for each test case or config function. The name of the
option/flag is 'create_priv_dir' and it can be set to value
'auto_per_run' (which is the default, existing, behaviour),
or 'auto_per_tc' or 'manual_per_tc'. If 'auto_per_tc' is
used, Test Server creates a dedicated priv_dir automatically
for each test case (which can be very expensive in case of
many and/or repeated cases). If 'manual_per_tc' is used, the
user needs to create the priv_dir explicitly by calling the
new function ct:make_priv_dir/0.
OTP-9666 After a test case timeout or abortion, the end_per_testcase
function executes on a new dedicated process. The group
leader for this process should be set to the IO server for
the test case, which was not done properly. The result of
this error was that no warnings about end_per_testcase
failing or timing out were ever printed in the test case log.
Also, help functions such as e.g. test_server:stop_node/1,
attempting to synchronize with the IO server, would hang. The
fault has been corrected.
OTP-9730 A column for test case group name has been added to the suite
overview HTML log file.
OTP-9855 It is now possible to use the post_end_per_testcase CT hook
function to print a comment for a test case in the overview
log file, even if the test case gets killed by a timetrap or
unknown exit signal, or if the end_per_testcase function
times out.
OTP-9894 A deadlock situation could occur if Common Test is forwarding
error_handler printouts to Test Server at the same time a new
test case is starting. This error has been fixed.
OTP-9904 Common Test will now print error information (with a time
stamp) in the test case log file immediately when a test case
fails. This makes it easier to see when, in time, the fault
actually occured, and aid the job of locating relevant trace
and debug printouts in the log.
OTP-9930 When a test case was killed because of a timetrap timeout,
the current location (suite, case and line) was not printed
correctly in the log files. This has been corrected.
OTP-9941 Test Server and Common Test would add new error handlers with
each test run and fail to remove previously added ones. In
the case of Test Server, this would only happen if SASL was
not running on the test node. This has been fixed.
OTP-9955 Test Server has been modified to check the SASL errlog_type
parameter when receiving an error logger event, so that it
doesn't print reports of type that the user has disabled.
OTP-9958 If a test case process was terminated due to an exit signal
from a linked process, Test Server failed to report the
correct name of the suite and case to the framework. This has
been corrected.
OTP-9971 If an application cannot be found by ts it is automatically
skipped when testing.
OTP-9988 By specifying a user defined function ({M,F,A} or fun) as
timetrap value, either by means of an info function or by
calling ct:timetrap/1, it is now possible to set a timetrap
that will be triggered when the user function returns.
OTP-9992 If the optional configuration functions init_per_suite/1 and
end_per_suite/1 are not implemented in the test suite, local
Common Test versions of these functions are called instead,
and will be displayed in the overview log file. Any printouts
made by the pre- or post_init_per_suite and pre- or
post_end_per_suite hook functions are saved in the log files
for these functions.
--- toolbar-1.4.2.2 -----------------------------------------------------
OTP-9907 The GS applications is now deprecated and will be removed in
the R16 release. The following GS-based applications have
been superseded by the Observer application and will removed
in R16: Appmon, Pman, Tv.
--- tools-2.6.7 ---------------------------------------------------------
OTP-9857 Makefiles in erts, hipe and tools have been corrected to
enable parallel make, i.e MAKEFLAGS=-jX where X is the
parallelity number. As a result of this dependencies were
corrected since that is what is needed for parallel make to
work.
OTP-10016 Minor suppressions and fixes of compilation warnings
--- tv-2.1.4.9 ----------------------------------------------------------
OTP-9907 The GS applications is now deprecated and will be removed in
the R16 release. The following GS-based applications have
been superseded by the Observer application and will removed
in R16: Appmon, Pman, Tv.
--- wx-0.99.2 -----------------------------------------------------------
OTP-9947 Fix errors in wxDC and wxGraphicsContext api.
Add wxTaskBarIcon.
Add wxStyledTextControl:setEdgeMode/2.
Add type and specs for all functions and records.
--- xmerl-1.3.1 ---------------------------------------------------------
OTP-9873 Add missing spaces in xmerl doc (Thanks to Ricardo Catalinas
Jiménez)
OTP-9961 Fixed a continuation error in the sax parser and added latin1
as recognized encoding (not only the iso-8859 variants).
OTP-9965 Removed the unused file xmerl_xlink.hrl. Thanks to Vlad
Dumitrescu for informing us about it.
OTP-10023 xmerl couldn't handle comments inside a type specification.
OTP-10026 Fix some small errors in the sax parser: error message bug,
removal of trailing blanks in DTD element definitions and an
documentation error of the startDTD event in xmerl_sax_parser
module.