JRuby 1.6.0 Regression: RUBY_OPTS & popen
-----------------------------------------
Key: JRUBY-5695
URL: http://jira.codehaus.org/browse/JRUBY-5695
Project: JRuby
Issue Type: Bug
Affects Versions: JRuby 1.6
Environment: Ubuntu 10.04 LTS, RVM, JRuby 1.5.5, 1.5.6, 1.6.0
Reporter: John-Mason P. Shackelford
Assignee: Thomas E Enebo
Attachments: sample.zip, smoke-test-jruby-1.5.6.txt,
smoke-test-jruby-1.6.0.txt
When running a smoke test of my Rails 3 app via rake I encounter the following
in 1.6.0, but not in 1.5.6 or 1.5.5:
{code}
* Execute smoke:test
Using the smoke profile...
F-
(::) failed steps (::)
Cannot run program "RUBYOPT=" (in directory "/home/shacjo/work/sample"):
java.io.IOException: error=2, No such file or directory (IOError)
java/lang/Thread.java:1479:in `getStackTrace'
org/jruby/runtime/backtrace/TraceType.java:47:in `getBacktraceData'
org/jruby/runtime/backtrace/TraceType.java:25:in `getBacktrace'
org/jruby/RubyException.java:160:in `prepareBacktrace'
org/jruby/exceptions/RaiseException.java:182:in `preRaise'
org/jruby/exceptions/RaiseException.java:174:in `preRaise'
org/jruby/exceptions/RaiseException.java:110:in `<init>'
org/jruby/Ruby.java:3283:in `newRaiseException'
org/jruby/Ruby.java:3222:in `newIOErrorFromException'
org/jruby/RubyIO.java:3702:in `popen'
{code}
I have enclosed attachments of the complete sessions running both 1.5.6 and
1.6.0 as well as a sample application which should allow you to reproduce.
Steps to reproduce:
(Assumes you have downloaded and unzipped sample.zip and have RVM with 1.5.6
and 1.6.0 installed.)
{code}
rvm use 1.5.6
cd sample
bundle install
bundle update jruby-jars
bundle exec rake war:prod
jruby -d -S bundle exec rake --trace smoke > smoke-test-jruby-1.5.6.txt 2>&1
bundle exec clobber
{code}
When you cat smoke-test-jruby-1.5.6.txt you should see the test passed with two
steps executed such as:
{code}
Starting server: java -Xss2048k -jar target/sample.war --httpPort=3019
--controlPort=3018 > log/smoke-test-server.log
.....
** Execute smoke:test
Using the smoke profile...
..
1 scenario (1 passed)
2 steps (2 passed)
0m7.235s
** Invoke smoke:server:stop (first_time)
** Invoke smoke:prep
** Execute smoke:server:stop
Server stopped
{code}
Now to see the failure case:
{code}
rvm use 1.6.0
bundle install
bundle update jruby-jars
bundle exec rake war:prod
jruby -d -S bundle exec rake --trace smoke > smoke-test-jruby-1.6.0.txt 2>&1
{code}
When you cat smoke-test-jruby-1.6.0.txt you should see the error quoted at the
beginning of my report. Since the smoke test server will still be running, you
will want to do the following to reset your environment:
{code}
bundle exec rake smoke:server:stop
bundle exec rake clobber
{code}
--
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