<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/kernel/test, branch OTP-18.0.2</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>Change license text to APLv2</title>
<updated>2015-06-18T09:31:02+00:00</updated>
<author>
<name>Bruce Yinhe</name>
<email>bruce@erlang.org</email>
</author>
<published>2015-06-18T09:31:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=738c34d4bb8f1a3811acd00af8c6c12107f8315b'/>
<id>738c34d4bb8f1a3811acd00af8c6c12107f8315b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'egil/cuddle-tests'</title>
<updated>2015-06-17T14:32:08+00:00</updated>
<author>
<name>Björn-Egil Dahlberg</name>
<email>egil@erlang.org</email>
</author>
<published>2015-06-17T14:32:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=00f92e552cb62233ad9dec788f4826b3e1dab4f7'/>
<id>00f92e552cb62233ad9dec788f4826b3e1dab4f7</id>
<content type='text'>
* egil/cuddle-tests:
  kernel: Remove ?line macros in inet_SUITE:t_gethostbyaddr/1
  erts: Tweak statistics_SUITE:scheduler_wall_time/1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* egil/cuddle-tests:
  kernel: Remove ?line macros in inet_SUITE:t_gethostbyaddr/1
  erts: Tweak statistics_SUITE:scheduler_wall_time/1
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'nybek/fix_so_linger_zero__simple'</title>
<updated>2015-06-17T07:35:14+00:00</updated>
<author>
<name>Raimo Niskanen</name>
<email>raimo@erlang.org</email>
</author>
<published>2015-06-17T07:35:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=5fc3d37e65d31dea7938750a3d75c7a1f7ebbd25'/>
<id>5fc3d37e65d31dea7938750a3d75c7a1f7ebbd25</id>
<content type='text'>
* 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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'egil/fix-cover-error_logger/OTP-12818'</title>
<updated>2015-06-10T12:37:17+00:00</updated>
<author>
<name>Björn-Egil Dahlberg</name>
<email>egil@erlang.org</email>
</author>
<published>2015-06-10T12:37:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=d8f343b234174d49bc66d5bddbe79f24400868e6'/>
<id>d8f343b234174d49bc66d5bddbe79f24400868e6</id>
<content type='text'>
* 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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'nybek/fix_inet_drv_add_multi_timer_logic'</title>
<updated>2015-06-10T11:00:19+00:00</updated>
<author>
<name>Henrik Nord</name>
<email>henrik@erlang.org</email>
</author>
<published>2015-06-10T11:00:08+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=e01955643f503d1cb9d9450c22d5f02213117a91'/>
<id>e01955643f503d1cb9d9450c22d5f02213117a91</id>
<content type='text'>
* 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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'richcarl/avoid-try-native-load'</title>
<updated>2015-06-10T10:52:05+00:00</updated>
<author>
<name>Henrik Nord</name>
<email>henrik@erlang.org</email>
</author>
<published>2015-06-10T10:51:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=355f4b567baf84c9ec3f61f70eaf64ff20500fd5'/>
<id>355f4b567baf84c9ec3f61f70eaf64ff20500fd5</id>
<content type='text'>
* 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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix socket option {linger, {true, 0}} to abort TCP connections</title>
<updated>2015-06-09T20:51:29+00:00</updated>
<author>
<name>Rory Byrne</name>
<email>rory@nybek.com</email>
</author>
<published>2015-04-16T17:01:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=eed21b4fd99c8ab71dcefd3802104186af1cb6b0'/>
<id>eed21b4fd99c8ab71dcefd3802104186af1cb6b0</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Apply 'show_econnreset' socket option to send errors as well</title>
<updated>2015-06-09T19:50:14+00:00</updated>
<author>
<name>Rory Byrne</name>
<email>rory@nybek.com</email>
</author>
<published>2015-05-02T19:34:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=0098eed847516cc6760d961421c83527816e35ae'/>
<id>0098eed847516cc6760d961421c83527816e35ae</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add 'show_econnreset' TCP socket option</title>
<updated>2015-06-09T19:50:06+00:00</updated>
<author>
<name>Rory Byrne</name>
<email>rory@nybek.com</email>
</author>
<published>2015-04-20T09:57:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=4f63e427f1345b40b484ef16f6ff5e922bf14dac'/>
<id>4f63e427f1345b40b484ef16f6ff5e922bf14dac</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>kernel: Remove ?line macros in inet_SUITE:t_gethostbyaddr/1</title>
<updated>2015-06-09T14:51:11+00:00</updated>
<author>
<name>Björn-Egil Dahlberg</name>
<email>egil@erlang.org</email>
</author>
<published>2015-06-09T14:51:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=549428e11f1d9b4d61135a36fc9ab594c5512d6b'/>
<id>549428e11f1d9b4d61135a36fc9ab594c5512d6b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
