aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel
AgeCommit message (Collapse)Author
2015-09-21Prepare releaseErlang/OTP
2015-09-18Update application versionsHans Bolinder
2015-09-07Add documentationBjörn Gustavsson
2015-08-18Handle ERRNO_BLOCK in fd_driver async functionsSteve Vinoski
Several users on erlang-questions have reported problems with recent releases where output to standard_error causes standard_error_sup to die from receiving an unexpected eagain error. In the fd_driver, change the fd_async() function to handle EINTR, and change fd_ready_async() to handle ERRNO_BLOCK. Add a new test to standard_error_SUITE to generate output to standard_error and ensure that standard_error_sup does not die. Thanks to Kota Uenishi for contributing the test case.
2015-06-23Prepare releaseErlang/OTP
2015-06-18Change license text to APLv2Bruce Yinhe
2015-06-17Merge branch 'egil/cuddle-tests'Björn-Egil Dahlberg
* egil/cuddle-tests: kernel: Remove ?line macros in inet_SUITE:t_gethostbyaddr/1 erts: Tweak statistics_SUITE:scheduler_wall_time/1
2015-06-17Merge branch 'nybek/fix_so_linger_zero__simple'Raimo Niskanen
* nybek/fix_so_linger_zero__simple: Update prim_inet.beam Fix socket option {linger, {true, 0}} to abort TCP connections Apply 'show_econnreset' socket option to send errors as well Add 'show_econnreset' TCP socket option
2015-06-16Fix typo in commentYuki Ito
2015-06-10Merge branch 'egil/fix-cover-error_logger/OTP-12818'Björn-Egil Dahlberg
* egil/fix-cover-error_logger/OTP-12818: cover: Unstick modules before loading remote kernel: Add module name to sticky_dir error message kernel: Remove ?line macros in error_logger_warn_SUITE
2015-06-10Merge branch 'nybek/fix_inet_drv_add_multi_timer_logic'Henrik Nord
* nybek/fix_inet_drv_add_multi_timer_logic: Fix add_multi_timer() in inet_drv Fix 6 tests in gen_tcp_misc_SUITE OTP-12817
2015-06-10Merge branch 'richcarl/avoid-try-native-load'Henrik Nord
* richcarl/avoid-try-native-load: Update list of funcalls in kernel code_SUITE Move architecture knowledge out of hipe loader Avoid repeated calls to system_info in hipe loader Avoid exception overhead if HiPE is disabled HiPE help shouldn't modify the calling process OTP-12816
2015-06-09Fix socket option {linger, {true, 0}} to abort TCP connectionsRory Byrne
Up until now, if {linger, {true, 0}} is set on the socket and there is data in the port driver queue, the connection is not aborted until the port queue is empty and close() is called on the underlying file descriptor. This bug allows an idle TCP client to prevent a server from terminating the connection and freeing resources. This patch fixes the problem by discarding the port queue if the socket is closed when {linger, {true, 0}} is set.
2015-06-09Apply 'show_econnreset' socket option to send errors as wellRory Byrne
Up till now all send errors have been translated into a generic {error, closed}. This patch allows {error, econnreset} to be returned on send errors when it is detected that the TCP peer has sent an RST.
2015-06-09Add 'show_econnreset' TCP socket optionRory Byrne
An ECONNRESET is a socket error which tells us that a TCP peer has sent an RST. The RST indicates that they have aborted the connection and that the payload we have received should not be considered complete. Up until now, the implementation of TCP in inet_drv.c has hidden the receipt of the RST from the user, treating it as though it was just a FIN terminating the read side of the socket. There are many cases where user code needs to be able to distinguish between a socket that was closed normally and one that was aborted. Setting the option {show_econnreset, true} enables the user to receive ECONNRESET errors on both active and passive sockets. A connected socket returned from gen_tcp:accept/1 will inherit the show_econnreset setting of the listening socket. By default this option is set to {show_econnreset, false}. Note that this patch only enables the reporting of ECONNRESET when the socket is being read from. It does not report ECONNRESET (or EPIPE) when the user tries to write to a connection when an RST has already been received. Currently the TCP implementation in inet_drv.c hides all such send errors from the user in favour of returning {error, close}. A separate patch will be needed to enable the reporting of such errors.
2015-06-09kernel: Remove ?line macros in inet_SUITE:t_gethostbyaddr/1Björn-Egil Dahlberg
2015-06-08kernel: Add module name to sticky_dir error messageBjörn-Egil Dahlberg
2015-06-08kernel: Remove ?line macros in error_logger_warn_SUITEBjörn-Egil Dahlberg
2015-06-08Merge branch 'egil/fix-inet_res'Björn-Egil Dahlberg
* egil/fix-inet_res: kernel: Fix inet time conversion
2015-06-08kernel: Fix inet time conversionBjörn-Egil Dahlberg
2015-06-05Merge branch 'bjorn/kernel/cuddle-with-tests'Björn Gustavsson
* bjorn/kernel/cuddle-with-tests: Clean up rpc_SUITE:call_benchmark/1 Eliminate use of erlang:now/0 for generating random numbers Eliminate use of erlang:now/0 for measuring time Eliminate use of erlang:now/0 for generating unique node names
2015-06-05Clean up rpc_SUITE:call_benchmark/1Björn Gustavsson
The call_benchmark/1 test case is supposed to return a comment about the number of RPC calls per second, but the return value from the function that produces the comment (do_call_benchmark/4) is ignored. The test case is essentially useless except as a smoke test. Simplify the test case and correct the showing of the number of RPC calls per second, as well as eliminate the use of erlang:now/0.
2015-06-04Fix add_multi_timer() in inet_drvRory Byrne
Fix the sorting logic in add_multi_timer() and expand the test case coverage around this area.
2015-06-04Fix 6 tests in gen_tcp_misc_SUITERory Byrne
All of the tests are related to gen_tcp:accept/[1,2] and each of them has the same problem: they ignore the return value of the ?EXPECT_ACCEPTS macro.
2015-06-04Merge branch 'egil/cuddle-tests'Björn-Egil Dahlberg
* egil/cuddle-tests: erts: Remove remaining ?line macros in trace_meta_SUITE erts: Relax trace_meta_SUITE:on_and_off_test/1 erts: Remove ?line macro in trace_meta_SUITE:on_and_off_test/1 kernel: Remove remaining ?line macros in gen_tcp_misc_SUITE kernel: Relax gen_tcp_misc_SUITE don't wait for timeout kernel: Relax test gen_tcp_misc_SUITE:wrapping_oct/1
2015-06-04kernel: Remove remaining ?line macros in gen_tcp_misc_SUITEBjörn-Egil Dahlberg
Also, fixup some confusing indentations. This commit only contains whitespace changes and removal of ?line macros.
2015-06-04Update list of funcalls in kernel code_SUITERichard Carlsson
2015-06-04Move architecture knowledge out of hipe loaderRichard Carlsson
Make code_server be responsible for finding the architecture and deciding whether to try to load native code, in order to avoid repeated calls to system_info(hipe_architecture) and clumsy uses of try/catch to test if hipe is enabled.
2015-06-04Avoid repeated calls to system_info in hipe loaderRichard Carlsson
Make hipe_unified_loader not call system_info(hipe_architecture) repeatedly. Also clean up some ugly architecture-dependent case switches.
2015-06-04Avoid exception overhead if HiPE is disabledRichard Carlsson
2015-06-02Merge branch 'nybek/fix_gen_tcp_shutdown'Zandra Hird
OTP-12797
2015-06-02Merge branch 'weiss/propagate-setopt-error'Henrik Nord
* weiss/propagate-setopt-error: Don't throw exception on prim_inet:setopt/3 error OTP-12798
2015-05-28kernel: Relax gen_tcp_misc_SUITE don't wait for timeoutBjörn-Egil Dahlberg
It's unnecessary to wait for timeout in some of these testcases. The tests should not check for stray messages while waiting for timeout, that is mostly covered by message order and pattern matching anyway.
2015-05-28kernel: Relax test gen_tcp_misc_SUITE:wrapping_oct/1Björn-Egil Dahlberg
2015-05-28Merge branch 'richcarl/warnings-by-default/OTP-12781'Björn-Egil Dahlberg
* richcarl/warnings-by-default/OTP-12781: stdlib: Use warning channel in test qlc_SUITE:otp_6964/1 stdlib: Fix testcase for qlc_SUITE kernel: Fix code_SUITE with respect to new logger default Map error logger warnings to warning messages by default
2015-05-27kernel: Fix code_SUITE with respect to new logger defaultBjörn-Egil Dahlberg
2015-05-27Update application versionsHans Bolinder
2015-05-27Eliminate use of erlang:now/0 for generating random numbersBjörn Gustavsson
2015-05-27Eliminate use of erlang:now/0 for measuring timeBjörn Gustavsson
2015-05-26Eliminate use of erlang:now/0 for generating unique node namesBjörn Gustavsson
Use erlang:unique_integer([positive]) when generating unique node names.
2015-05-26Merge branch 'nybek/limit_leading_zeros_in_ipv6_addresses'Henrik Nord
* nybek/limit_leading_zeros_in_ipv6_addresses: Fix parsing of IPv6 addresses to limit leading zeros OTP-12773
2015-05-25Merge branch 'bjorn/kernel/code-loading'Björn Gustavsson
* bjorn/kernel/code-loading: code: Eliminate dialyzer warnings for unmatched returns
2015-05-25Merge branch 'rickard/user_drv_q_bug/OTP-12239'Rickard Green
* rickard/user_drv_q_bug/OTP-12239: Fix usage of io-request queue
2015-05-22Map error logger warnings to warning messages by defaultRichard Carlsson
Also fix and document the broken +We option.
2015-05-22Merge branch 'richcarl/ac_tab-concurrency'Henrik Nord
* richcarl/ac_tab-concurrency: Use read_concurrency for application environment
2015-05-22code: Eliminate dialyzer warnings for unmatched returnsBjörn Gustavsson
We want to have the core applications of Erlang/OTP free from any dialyzer warnings. Eliminate the warnings for unmatched returns that were introduced in 7309ff4c3832.
2015-05-22Fix parsing of IPv6 addresses to limit leading zerosRory Byrne
The current implementations of inet:parse_ipv6_address/1 and inet:parse_ipv6strict_address/1 permit address strings which have an unlimited number of leading zeros. Addresses such as: "0000000000000000000000000000000ffff::" "::00000000000000000000000000000000000000000000000000000000" "::0000000f435:1" If we are using this facility to validate string representations of IPv6 addresses, then we would end up validating addresses which are non-conformant (with respect to RFC 4291 section 2.2) and potentially dangerous. This patch ensures that each segment of an IPv6 address has a maximum of 4 hex digits.
2015-05-22Merge branch 'richcarl/md5-fixes'Björn Gustavsson
* richcarl/md5-fixes: code: Correct type spec for code:make_stub_module/3
2015-05-21Update runtime dependenciesRickard Green
2015-05-20Fix usage of io-request queueRickard Green