<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/ruby.git/test/ruby/test_process.rb, branch ruby_3_2</title>
<subtitle>github.com: ruby/ruby.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/'/>
<entry>
<title>Remove `require 'io/wait'` where it's no longer necessary. (#6932)</title>
<updated>2022-12-14T22:37:01+00:00</updated>
<author>
<name>Samuel Williams</name>
<email>samuel.williams@oriontransfer.co.nz</email>
</author>
<published>2022-12-14T22:37:01+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/commit/?id=d20bd06a97555a4493458d866590107da6cb21f4'/>
<id>d20bd06a97555a4493458d866590107da6cb21f4</id>
<content type='text'>
* Remove `require 'io/wait'` as it's part of core now.

* Update ruby specs using version gates.

* Add note about why it's conditional.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Remove `require 'io/wait'` as it's part of core now.

* Update ruby specs using version gates.

* Add note about why it's conditional.</pre>
</div>
</content>
</entry>
<entry>
<title>Make the timeout of test_system_sigpipe longer</title>
<updated>2022-11-28T06:48:19+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2022-11-28T06:48:18+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/commit/?id=168b0e1f025a3c8927bbf548cc4631862fe22d29'/>
<id>168b0e1f025a3c8927bbf548cc4631862fe22d29</id>
<content type='text'>
https://github.com/ruby/ruby/actions/runs/3562236318/jobs/5983796689
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/ruby/actions/runs/3562236318/jobs/5983796689
</pre>
</div>
</content>
</entry>
<entry>
<title>Ignore EPERM which means already being process-leader</title>
<updated>2022-09-20T02:12:11+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2022-09-20T02:12:11+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/commit/?id=55e540f7ab6adb3ea0de16912dfde8e0bf94cc6e'/>
<id>55e540f7ab6adb3ea0de16912dfde8e0bf94cc6e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add another test for `Process.daemon`</title>
<updated>2022-09-19T06:34:16+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2022-09-18T15:26:49+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/commit/?id=1c9381283e68b9021df2509fb64d663998d8cb5a'/>
<id>1c9381283e68b9021df2509fb64d663998d8cb5a</id>
<content type='text'>
Check for that the daemon process is detached, that means it is not a
child and not waitable.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Check for that the daemon process is detached, that means it is not a
child and not waitable.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use omit instead of skip: test/ruby/**/*.rb</title>
<updated>2022-01-04T08:25:30+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2022-01-04T08:25:30+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/commit/?id=47bf64a26d3d95a312ea5cf5d94ee1d2104f5e26'/>
<id>47bf64a26d3d95a312ea5cf5d94ee1d2104f5e26</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use `to_s` and `puts` in tests</title>
<updated>2021-12-16T06:12:12+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2021-12-16T06:07:23+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/commit/?id=69a7eaae389b49eb2a99c1c44c11b3d5004d186f'/>
<id>69a7eaae389b49eb2a99c1c44c11b3d5004d186f</id>
<content type='text'>
`to_s` has the explict specification while `inspect` is often
vague.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`to_s` has the explict specification while `inspect` is often
vague.
</pre>
</div>
</content>
</entry>
<entry>
<title>Prepare for removing RubyVM::JIT (#5262)</title>
<updated>2021-12-14T07:07:46+00:00</updated>
<author>
<name>Takashi Kokubun</name>
<email>takashikkbn@gmail.com</email>
</author>
<published>2021-12-14T07:07:46+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/commit/?id=1a63468831524f68e73cbb068071652c6486cfc6'/>
<id>1a63468831524f68e73cbb068071652c6486cfc6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>process.c: Add Process._fork (#5017)</title>
<updated>2021-10-25T11:47:19+00:00</updated>
<author>
<name>Yusuke Endoh</name>
<email>mame@ruby-lang.org</email>
</author>
<published>2021-10-25T11:47:19+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/commit/?id=13068ebe32a7b8a1a9bd4fc2d5f157880b374e1d'/>
<id>13068ebe32a7b8a1a9bd4fc2d5f157880b374e1d</id>
<content type='text'>
* process.c: Add Process._fork

This API is supposed for application monitoring libraries to hook fork
event.

[Feature #17795]

Co-authored-by: Nobuyoshi Nakada &lt;nobu@ruby-lang.org&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* process.c: Add Process._fork

This API is supposed for application monitoring libraries to hook fork
event.

[Feature #17795]

Co-authored-by: Nobuyoshi Nakada &lt;nobu@ruby-lang.org&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>test/ruby/test_process (test_no_curdir): tentatively skipped on Solaris</title>
<updated>2021-10-07T01:40:40+00:00</updated>
<author>
<name>Yusuke Endoh</name>
<email>mame@ruby-lang.org</email>
</author>
<published>2021-10-07T01:40:40+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/commit/?id=273673aeafd5e5a40a6212de17c788c2c029865e'/>
<id>273673aeafd5e5a40a6212de17c788c2c029865e</id>
<content type='text'>
The test gets stuck on Solaris CI.

http://rubyci.s3.amazonaws.com/solaris11-gcc/ruby-master/log/20211006T050007Z.fail.html.gz#test-all
```
[14558/21042] TestProcess#test_no_curdirtimeout: output interval exceeds 1800.0 seconds.
timeout: the process group 3857 is alive.
```

Related to ee89543e09a2d4e4c503267c248ba7bfffa668cb
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The test gets stuck on Solaris CI.

http://rubyci.s3.amazonaws.com/solaris11-gcc/ruby-master/log/20211006T050007Z.fail.html.gz#test-all
```
[14558/21042] TestProcess#test_no_curdirtimeout: output interval exceeds 1800.0 seconds.
timeout: the process group 3857 is alive.
```

Related to ee89543e09a2d4e4c503267c248ba7bfffa668cb
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix regression on Solaris after change to use realpath on loaded features</title>
<updated>2021-10-05T04:30:01+00:00</updated>
<author>
<name>Jeremy Evans</name>
<email>code@jeremyevans.net</email>
</author>
<published>2021-10-04T21:13:47+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/ruby.git/commit/?id=ee89543e09a2d4e4c503267c248ba7bfffa668cb'/>
<id>ee89543e09a2d4e4c503267c248ba7bfffa668cb</id>
<content type='text'>
After the change to use realpath on loaded features, Solaris CI
started failing in test_no_curdir (which tests behavior for running
ruby without a working directory).

I was able to trace the problem to the following call chain:

rb_call_inits-&gt;Init_Thread-&gt;Init_thread_sync-&gt;rb_provide-&gt;
get_loaded_features_index-&gt;rb_check_realpath-&gt;rb_dir_getwd_ospath-&gt;
ruby_getcwd

This will throw an exception, but because Ruby hasn't been fully
initialized at the point the exception is thrown, it just exits
with a status of 1.

The bug here is that rb_check_realpath should not raise an
exception, it should return nil.  This bug is hit on Solaris
because Solaris uses the realpath emulation instead of native
realpath, and the realpath emualation raised instead of
returning nil if the mode was RB_REALPATH_CHECK. Use rb_rescue
in the realpath emulation if the mode is RB_REALPATH_CHECK, and
swallow any exceptions raised and return nil.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
After the change to use realpath on loaded features, Solaris CI
started failing in test_no_curdir (which tests behavior for running
ruby without a working directory).

I was able to trace the problem to the following call chain:

rb_call_inits-&gt;Init_Thread-&gt;Init_thread_sync-&gt;rb_provide-&gt;
get_loaded_features_index-&gt;rb_check_realpath-&gt;rb_dir_getwd_ospath-&gt;
ruby_getcwd

This will throw an exception, but because Ruby hasn't been fully
initialized at the point the exception is thrown, it just exits
with a status of 1.

The bug here is that rb_check_realpath should not raise an
exception, it should return nil.  This bug is hit on Solaris
because Solaris uses the realpath emulation instead of native
realpath, and the realpath emualation raised instead of
returning nil if the mode was RB_REALPATH_CHECK. Use rb_rescue
in the realpath emulation if the mode is RB_REALPATH_CHECK, and
swallow any exceptions raised and return nil.
</pre>
</div>
</content>
</entry>
</feed>
