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.