Race condition in Process#wait
------------------------------
Key: JRUBY-3780
URL:
http://jira.codehaus.org/browse/JRUBY-3780 Project: JRuby
Issue Type: Bug
Components: Core Classes/Modules
Affects Versions: JRuby 1.3.1
Environment: jruby 1.2.0 (ruby 1.8.6 patchlevel 287) (2009-03-16 rev 9419) [i386-java]
java version "1.6.0_0"
OpenJDK Runtime Environment (IcedTea6 1.5) (fedora-18.b16.fc10-i386)
OpenJDK Client VM (build 14.0-b15, mixed mode)
Reporter: TwP
Priority: Critical
{code:title=racer.rb}
io = IO.popen 'sleep 5'
puts Time.now
Process.wait io.pid
puts Time.now
{code}
The expected output is two timestamps with five seconds difference between them. Works as expected with MRI 1.8.6 and 1.9.1 JRuby, however, produces spurious results with one of the three outcomes:
1) works just like MRI
2) two timestamps are printed - one immediately after the other (no time difference)
3) No child processes - No child processes (Errno::ECHILD)
Running the script repeatedly will produce all of the results listed above. This behavior is observed with JRuby 1.2.0 on Fedora 10 and with JRuby 1.3.1 on Mac OS X.
Blessings,
TwP
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email