<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/test/drb, branch ruby_2_7</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>merge revision(s) fbbc37dc1d5b329777e6d9716118db528ab70730: [Backport #17802]</title>
<updated>2021-04-15T20:30:08+00:00</updated>
<author>
<name>NAKAMURA Usaku</name>
<email>usa@ruby-lang.org</email>
</author>
<published>2021-04-15T20:30:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=67f1cd20bfb97ff6e5a15d27c8ef06cdb97ed37a'/>
<id>67f1cd20bfb97ff6e5a15d27c8ef06cdb97ed37a</id>
<content type='text'>
	test/drb/test_drb.rb: Specify the host of DRbServer

	to try fixing the following error.

	http://rubyci.s3.amazonaws.com/opensuseleap/ruby-master/log/20210407T063004Z.log.html.gz
	```
	[  605/21105] DRbTests::TestDRbSSLAry#test_06_next/home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/lib/drb/drb.rb:1138:in `method_missing': undefined method `regist' for [1, 2, "III", 4, "five", 6]:Array (NoMethodError)
		from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/lib/drb/extserv.rb:21:in `block in initialize'
		from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/.ext/common/monitor.rb:202:in `synchronize'
		from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/.ext/common/monitor.rb:202:in `mon_synchronize'
		from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/lib/drb/extserv.rb:20:in `initialize'
		from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/test/drb/ut_array_drbssl.rb:35:in `new'
		from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/test/drb/ut_array_drbssl.rb:35:in `&lt;main&gt;'
	 = 100.05 s
	```

	Here is my analysis:
	The test of drb used both `druby://:0` and `druby://localhost:0` for
	DRbServer. However, the former listens on IPv4, and the latter does on
	IPv6, depending on environments. The port 0 is automatically assigned,
	but sometimes the same port is used to both because they are different
	protocols (IPv4 and IPv6). In this case, their URIs are resolved to the
	completely same one (`druby://localhost:port`), which confuses the
	method `DRb.here?` which determines the DRbObject is remote or local.

	This changeset uses `druby://localhost:0` consistently.
	---
	 test/drb/test_drb.rb    | 4 ++--
	 test/drb/test_drbssl.rb | 2 +-
	 2 files changed, 3 insertions(+), 3 deletions(-)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	test/drb/test_drb.rb: Specify the host of DRbServer

	to try fixing the following error.

	http://rubyci.s3.amazonaws.com/opensuseleap/ruby-master/log/20210407T063004Z.log.html.gz
	```
	[  605/21105] DRbTests::TestDRbSSLAry#test_06_next/home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/lib/drb/drb.rb:1138:in `method_missing': undefined method `regist' for [1, 2, "III", 4, "five", 6]:Array (NoMethodError)
		from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/lib/drb/extserv.rb:21:in `block in initialize'
		from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/.ext/common/monitor.rb:202:in `synchronize'
		from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/.ext/common/monitor.rb:202:in `mon_synchronize'
		from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/lib/drb/extserv.rb:20:in `initialize'
		from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/test/drb/ut_array_drbssl.rb:35:in `new'
		from /home/chkbuild/chkbuild/tmp/build/20210407T063004Z/ruby/test/drb/ut_array_drbssl.rb:35:in `&lt;main&gt;'
	 = 100.05 s
	```

	Here is my analysis:
	The test of drb used both `druby://:0` and `druby://localhost:0` for
	DRbServer. However, the former listens on IPv4, and the latter does on
	IPv6, depending on environments. The port 0 is automatically assigned,
	but sometimes the same port is used to both because they are different
	protocols (IPv4 and IPv6). In this case, their URIs are resolved to the
	completely same one (`druby://localhost:port`), which confuses the
	method `DRb.here?` which determines the DRbObject is remote or local.

	This changeset uses `druby://localhost:0` consistently.
	---
	 test/drb/test_drb.rb    | 4 ++--
	 test/drb/test_drbssl.rb | 2 +-
	 2 files changed, 3 insertions(+), 3 deletions(-)
</pre>
</div>
</content>
</entry>
<entry>
<title>lib/drb/drb.rb: Use ruby2_keywords for keyword separation</title>
<updated>2020-03-13T13:38:05+00:00</updated>
<author>
<name>Yusuke Endoh</name>
<email>mame@ruby-lang.org</email>
</author>
<published>2020-02-15T07:27:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=2339be74e737b4c5f5330f845af2e7db0c7450e1'/>
<id>2339be74e737b4c5f5330f845af2e7db0c7450e1</id>
<content type='text'>
[Bug #16634]

(cherry picked from commit fb472ca7adbaceb35aae1b3a6b948720ffc9eb53)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[Bug #16634]

(cherry picked from commit fb472ca7adbaceb35aae1b3a6b948720ffc9eb53)
</pre>
</div>
</content>
</entry>
<entry>
<title>Stop Thread.new in `DRb::TimerIdConv::TimerHolder2#on_gc`</title>
<updated>2019-12-10T03:43:49+00:00</updated>
<author>
<name>Kazuhiro NISHIYAMA</name>
<email>zn@mbf.nifty.com</email>
</author>
<published>2019-12-10T03:41:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7be550d046c726c2a3aa625ceb260d9b2268fb5a'/>
<id>7be550d046c726c2a3aa625ceb260d9b2268fb5a</id>
<content type='text'>
and add more stop_pool after stop_service
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
and add more stop_pool after stop_service
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Add debug option to check ci failures on solaris"</title>
<updated>2019-12-05T00:44:09+00:00</updated>
<author>
<name>Kazuhiro NISHIYAMA</name>
<email>zn@mbf.nifty.com</email>
</author>
<published>2019-12-05T00:43:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=88ee375dd6c93523bd5d8f9517e49215b9d8cf67'/>
<id>88ee375dd6c93523bd5d8f9517e49215b9d8cf67</id>
<content type='text'>
This reverts commit f289e3994bbc6560e2e4e5905b52c35c829c972d.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit f289e3994bbc6560e2e4e5905b52c35c829c972d.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix thread leak in drb</title>
<updated>2019-12-04T11:57:24+00:00</updated>
<author>
<name>Kazuhiro NISHIYAMA</name>
<email>zn@mbf.nifty.com</email>
</author>
<published>2019-12-04T09:43:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=a0bc0e1ba15e83c72426ac243ea96e6497c49859'/>
<id>a0bc0e1ba15e83c72426ac243ea96e6497c49859</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Deprecate taint/trust and related methods, and make the methods no-ops</title>
<updated>2019-11-17T23:00:25+00:00</updated>
<author>
<name>Jeremy Evans</name>
<email>code@jeremyevans.net</email>
</author>
<published>2019-09-25T03:59:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=ffd0820ab317542f8780aac475da590a4bdbc7a8'/>
<id>ffd0820ab317542f8780aac475da590a4bdbc7a8</id>
<content type='text'>
This removes the related tests, and puts the related specs behind
version guards.  This affects all code in lib, including some
libraries that may want to support older versions of Ruby.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This removes the related tests, and puts the related specs behind
version guards.  This affects all code in lib, including some
libraries that may want to support older versions of Ruby.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix DRbServer#any_to_s</title>
<updated>2019-10-16T19:51:13+00:00</updated>
<author>
<name>Jeremy Evans</name>
<email>code@jeremyevans.net</email>
</author>
<published>2019-10-14T16:00:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d5744aff3a164c358f92ef9dc2cda5c7a7612d97'/>
<id>d5744aff3a164c358f92ef9dc2cda5c7a7612d97</id>
<content type='text'>
My previous fix in d0ed935d5bf8c3fce9800742a36e44fb7f63dda4 was
not correct, as pointed out by cremno on GitHub.

This simplifies things by just using Kernel#to_s.  Also switch to
bind_call(obj) instead of bind(obj).call for better performance.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
My previous fix in d0ed935d5bf8c3fce9800742a36e44fb7f63dda4 was
not correct, as pointed out by cremno on GitHub.

This simplifies things by just using Kernel#to_s.  Also switch to
bind_call(obj) instead of bind(obj).call for better performance.
</pre>
</div>
</content>
</entry>
<entry>
<title>Do not raise an exception on a closed DRb socket</title>
<updated>2019-10-16T19:51:13+00:00</updated>
<author>
<name>Jeremy Evans</name>
<email>code@jeremyevans.net</email>
</author>
<published>2019-08-08T22:44:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=567e312d1f56c27ecb4fa20deac4311f05ee5507'/>
<id>567e312d1f56c27ecb4fa20deac4311f05ee5507</id>
<content type='text'>
This rescues some exceptions that could happen with a closed or
shutdown DRb socket. This can prevent the server from
exiting if an client socket is closed directly after it is
accepted.

Fixes [Bug #8039]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This rescues some exceptions that could happen with a closed or
shutdown DRb socket. This can prevent the server from
exiting if an client socket is closed directly after it is
accepted.

Fixes [Bug #8039]
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix some DRb issues (#2552)</title>
<updated>2019-10-14T05:20:32+00:00</updated>
<author>
<name>Jeremy Evans</name>
<email>code@jeremyevans.net</email>
</author>
<published>2019-10-14T05:20:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d0ed935d5bf8c3fce9800742a36e44fb7f63dda4'/>
<id>d0ed935d5bf8c3fce9800742a36e44fb7f63dda4</id>
<content type='text'>
* Handle BasicObject in drb

Also fix a bug in rescue clause of any_to_s because sprintf
does not handle the %l modifier.

Fixes [Bug #7833]

* Do not send a reply to the client if there is a connection error

This allows for normal TCP shutdown (fin-ack-fin-ack instead of
fin-ack-push-rst).

Patch from pierre@mouraf.org (Pierre-Alexandre Meyer).

Fixes [Bug #2339]

* Detect fork and do not reuse forked connections in drb

This associates each DRbConn with a pid, and if the pid changes,
it closes any DRbConns in the pool with a pid that no longer
matches.  This fixes DRb servers from sending messages intended
for one client to another client after forking.

Fixes [Bug #2718]
Fixes [Bug #14471]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Handle BasicObject in drb

Also fix a bug in rescue clause of any_to_s because sprintf
does not handle the %l modifier.

Fixes [Bug #7833]

* Do not send a reply to the client if there is a connection error

This allows for normal TCP shutdown (fin-ack-fin-ack instead of
fin-ack-push-rst).

Patch from pierre@mouraf.org (Pierre-Alexandre Meyer).

Fixes [Bug #2339]

* Detect fork and do not reuse forked connections in drb

This associates each DRbConn with a pid, and if the pid changes,
it closes any DRbConns in the pool with a pid that no longer
matches.  This fixes DRb servers from sending messages intended
for one client to another client after forking.

Fixes [Bug #2718]
Fixes [Bug #14471]
</pre>
</div>
</content>
</entry>
<entry>
<title>test/drb/drbtest.rb: Skip test_06_timeout on Solaris10s</title>
<updated>2019-09-02T13:33:27+00:00</updated>
<author>
<name>Yusuke Endoh</name>
<email>mame@ruby-lang.org</email>
</author>
<published>2019-09-02T13:30:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=53a7abe2cd6bd07b816a7a7e2235befd5e1b4446'/>
<id>53a7abe2cd6bd07b816a7a7e2235befd5e1b4446</id>
<content type='text'>
The test seems to have a race condition, which fails on very slow
machine like Solaris10s.  So skip it.

In addition, this change restores timeout guard that was removed at
0660d7cb538cf5284d50f66adfcbd78609839715.  This is because the test gets
stuck forever when something wrong occurs.  It is better to fail the
test than stuck.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The test seems to have a race condition, which fails on very slow
machine like Solaris10s.  So skip it.

In addition, this change restores timeout guard that was removed at
0660d7cb538cf5284d50f66adfcbd78609839715.  This is because the test gets
stuck forever when something wrong occurs.  It is better to fail the
test than stuck.
</pre>
</div>
</content>
</entry>
</feed>
