Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: JRuby 1.1RC1
-
Component/s: Miscellaneous
-
Labels:None
-
Environment:Ubuntu Linux
JDK 6u3 (AMD64)
mongrel 1.1.1
mongrel_jcluster 0.0.1
Description
requesting to a port apart from the starting port causes the following error:
Wed Dec 12 20:42:50 +0900 2007: Error calling Dispatcher.dispatch #<NativeException: java.lang.NullPointerException: null>
RubyString.java:2485:in `org.jruby.RubyString.scan'
null:-1:in `org.jruby.RubyStringInvoker$scan_method_1_0.call'
CallSite.java:144:in `org.jruby.runtime.CallSite$InlineCachingCallSite.call'
/home/sysop/sw/jruby-1.1b1/lib/ruby/gems/1.8/gems/actionpack-2.0.1/lib/action_controller/vendor/html-scanner/html/tokenizer.rb:75:in `update_current_line1384001351_1172818142._file_'
/home/sysop/sw/jruby-1.1b1/lib/ruby/gems/1.8/gems/actionpack-2.0.1/lib/action_controller/vendor/html-scanner/html/tokenizer.rb:-1:in `update_current_line1384001351_1172818142.run'
DefaultMethod.java:115:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
CallSite.java:144:in `org.jruby.runtime.CallSite$InlineCachingCallSite.call'
CallSite.java:103:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
/home/sysop/sw/jruby-1.1b1/lib/ruby/gems/1.8/gems/actionpack-2.0.1/lib/action_controller/vendor/html-scanner/html/tokenizer.rb:39:in `next1090730688_1172818142._file_'
/home/sysop/sw/jruby-1.1b1/lib/ruby/gems/1.8/gems/actionpack-2.0.1/lib/action_controller/vendor/html-scanner/html/tokenizer.rb:-1:in `next1090730688_1172818142.run'
...
/home/sysop/sw/jruby-1.1b1/lib/ruby/gems/1.8/gems/mongrel-1.0.1-jruby/lib/mongrel/rails.rb:76:in `process'
/home/sysop/sw/jruby-1.1b1/lib/ruby/gems/1.8/gems/mongrel-1.0.1-jruby/lib/mongrel/rails.rb:76:in `process_client'
/home/sysop/sw/jruby-1.1b1/lib/ruby/gems/1.8/gems/mongrel-1.0.1-jruby/lib/mongrel.rb:617:in `each'
/home/sysop/sw/jruby-1.1b1/lib/ruby/gems/1.8/gems/mongrel-1.0.1-jruby/lib/mongrel.rb:617:in `process_client'
/home/sysop/sw/jruby-1.1b1/lib/ruby/gems/1.8/gems/mongrel-1.0.1-jruby/lib/mongrel.rb:617:in `run'
/home/sysop/sw/jruby-1.1b1/lib/ruby/gems/1.8/gems/mongrel-1.0.1-jruby/lib/mongrel.rb:736:in `initialize'
Wed Dec 12 20:43:05 +0900 2007: Error calling Dispatcher.dispatch #<NativeException: java.lang.NullPointerException: null>
/home/sysop/sw/jruby-1.1b1/lib/ruby/gems/1.8/gems/mongrel-1.0.1-jruby/lib/mongrel/rails.rb:76:in `process'
/home/sysop/sw/jruby-1.1b1/lib/ruby/gems/1.8/gems/mongrel-1.0.1-jruby/lib/mongrel/rails.rb:76:in `process_client'
/home/sysop/sw/jruby-1.1b1/lib/ruby/gems/1.8/gems/mongrel-1.0.1-jruby/lib/mongrel.rb:617:in `each'
/home/sysop/sw/jruby-1.1b1/lib/ruby/gems/1.8/gems/mongrel-1.0.1-jruby/lib/mongrel.rb:617:in `process_client'
/home/sysop/sw/jruby-1.1b1/lib/ruby/gems/1.8/gems/mongrel-1.0.1-jruby/lib/mongrel.rb:617:in `run'
/home/sysop/sw/jruby-1.1b1/lib/ruby/gems/1.8/gems/mongrel-1.0.1-jruby/lib/mongrel.rb:736:in `initialize'
Activity
ruby 1.8.5 (2007-12-12 rev 5128) [amd64-jruby1.1b1] on Rails 2.0.1
I tried to run mongrel_jcluster with the latest JRuby 1.1b1, built from trunk (rev. 5248), everything seems to working, at least for the simple empty rails 2.0.1 project.
I followed this blog entry to confirure mongrel_jcluster:
http://ola-bini.blogspot.com/2007/05/announcing-mongreljcluster.html
Here's my configuration:
1. Apache 2.2.6
<VirtualHost *:80>
DocumentRoot /Users/ias/workspace/springbook-r2/public
ServerName springbook.ias.kr
ErrorLog logs/springbook-error_log
CustomLog logs/springbook-access_log common
RewriteEngine On
RewriteRule ^(.*) balancer://springbook_cluster$1 [P,L]
</VirtualHost>
<Directory "/Users/ias/workspace/springbook-r2/public">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Proxy balancer://springbook_cluster>
BalancerMember http://127.0.0.1:4000
BalancerMember http://127.0.0.1:4001
</Proxy>
2. ruby 1.8.5 (2007-12-14 rev 5128) [amd64-jruby1.1b1] and Rails 2.0.1
3. mongrel_jcluster.yml
jport: 19222
environment: production
port: 4000
pid_file: log/mongrel.pid
servers: 2
On my Mac (Mac OS X 10.5 and SoyLatte), it works fine, but on my server (Ubuntu Linux and Sun JDK 6u3), the error message above comes out.
The latest error message (on rev 5128) is
Error calling Dispatcher.dispatch #<NativeException: java.lang.NullPointerException: null>
RubyRegexp.java:492:in `org.jruby.RubyRegexp.updateBackRef'
RubyString.java:2554:in `org.jruby.RubyString.scan'
null:-1:in `org.jruby.RubyStringInvoker$scan_method_1_0.call'
CallSite.java:144:in `org.jruby.runtime.CallSite$InlineCachingCallSite.call'
/home/sysop/sw/jruby-1.1b2/lib/ruby/gems/1.8/gems/actionpack-2.0.1/lib/action_controller/vendor/html-scanner/html/tokenizer.rb:75:in `update_current_line1877274447_112477145._file_'
/home/sysop/sw/jruby-1.1b2/lib/ruby/gems/1.8/gems/actionpack-2.0.1/lib/action_controller/vendor/html-scanner/html/tokenizer.rb:-1:in `update_current_line1877274447_112477145.run'
DefaultMethod.java:115:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
CallSite.java:144:in `org.jruby.runtime.CallSite$InlineCachingCallSite.call'
CallSite.java:103:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
/home/sysop/sw/jruby-1.1b2/lib/ruby/gems/1.8/gems/actionpack-2.0.1/lib/action_controller/vendor/html-scanner/html/tokenizer.rb:39:in `next1990464013_112477145._file_'
/home/sysop/sw/jruby-1.1b2/lib/ruby/gems/1.8/gems/actionpack-2.0.1/lib/action_controller/vendor/html-scanner/html/tokenizer.rb:-1:in `next1990464013_112477145.run'
DefaultMethod.java:115:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
...
/home/sysop/sw/jruby-1.1b2/lib/ruby/gems/1.8/gems/mongrel-1.1.1-jruby/bin/../lib/mongrel/rails.rb:74:in `process'
/home/sysop/sw/jruby-1.1b2/lib/ruby/gems/1.8/gems/mongrel-1.1.1-jruby/bin/../lib/mongrel/rails.rb:74:in `process_client'
/home/sysop/sw/jruby-1.1b2/lib/ruby/gems/1.8/gems/mongrel-1.1.1-jruby/bin/../lib/mongrel.rb:154:in `each'
/home/sysop/sw/jruby-1.1b2/lib/ruby/gems/1.8/gems/mongrel-1.1.1-jruby/bin/../lib/mongrel.rb:154:in `process_client'
/home/sysop/sw/jruby-1.1b2/lib/ruby/gems/1.8/gems/mongrel-1.1.1-jruby/bin/../lib/mongrel.rb:154:in `run'
/home/sysop/sw/jruby-1.1b2/lib/ruby/gems/1.8/gems/mongrel-1.1.1-jruby/bin/../lib/mongrel.rb:283:in `initialize'
Could you try this again with current trunk? There has happened substantial work in the areas of Regexp and String#scan, and the line numbers in this back trace are not usable anymore. Further, trunk might solve your problem.
I have also checked in a small fix for RubyRegexp.updateBackRef, where it was possible to have an NPE.
I tested the current trunk on http://springbook.playmaru.net and found it working well. Thanks!
I feel glad that JRuby is getting able to be used in production ![]()
One more (trivial) thing: RC1 works fine with jcluster, but at the very first request time, the following error occurs (and then never):
Wed Jan 09 11:27:33 +0900 2008: Error calling Dispatcher.dispatch #<NativeException: java.lang.NullPointerException: null>
RubyString.java:2641:in `org.jruby.RubyString.scan'
null:-1:in `org.jruby.RubyStringInvoker$scan_method_1_0.call'
CallSite.java:182:in `org.jruby.runtime.CallSite$ICBlockCallSite.call'
/home/sysop/sw/jruby-1.1RC1/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/vendor/html-scanner/html/tokenizer.rb:75:in `update_current_line1492637923_133690711._file_'
/home/sysop/sw/jruby-1.1RC1/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/vendor/html-scanner/html/tokenizer.rb:-1:in `update_current_line1492637923_133690711.run'
DefaultMethod.java:143:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
CallSite.java:153:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:100:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
/home/sysop/sw/jruby-1.1RC1/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/vendor/html-scanner/html/tokenizer.rb:39:in `next956954650_133690711._file_'
/home/sysop/sw/jruby-1.1RC1/lib/ruby/gems/1.8/gems/actionpack-2.0.2/lib/action_controller/vendor/html-scanner/html/tokenizer.rb:-1:in `next956954650_133690711.run'
DefaultMethod.java:143:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
CallSite.java:153:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:100:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:653:in `org.jruby.evaluator.ASTInterpreter.callNode'
ASTInterpreter.java:300:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:1239:in `org.jruby.evaluator.ASTInterpreter.localAsgnNode'
ASTInterpreter.java:379:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:1744:in `org.jruby.evaluator.ASTInterpreter.whileNode'
ASTInterpreter.java:480:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
CallSite.java:153:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:100:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:1093:in `org.jruby.evaluator.ASTInterpreter.fCallNode'
ASTInterpreter.java:346:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:644:in `org.jruby.evaluator.ASTInterpreter.callNode'
ASTInterpreter.java:300:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
RubyClass.java:239:in `org.jruby.RubyClass.invoke'
RuntimeHelpers.java:347:in `org.jruby.javasupport.util.RuntimeHelpers.invokeAs'
RubyObject.java:454:in `org.jruby.RubyObject.callSuper'
RuntimeHelpers.java:581:in `org.jruby.javasupport.util.RuntimeHelpers.callZSuper'
ASTInterpreter.java:1813:in `org.jruby.evaluator.ASTInterpreter.zsuperNode'
ASTInterpreter.java:488:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:1239:in `org.jruby.evaluator.ASTInterpreter.localAsgnNode'
ASTInterpreter.java:379:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
CallSite.java:153:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:100:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:653:in `org.jruby.evaluator.ASTInterpreter.callNode'
ASTInterpreter.java:300:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
CallSite.java:153:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:100:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:653:in `org.jruby.evaluator.ASTInterpreter.callNode'
ASTInterpreter.java:300:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
CallSite.java:167:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:100:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:653:in `org.jruby.evaluator.ASTInterpreter.callNode'
ASTInterpreter.java:300:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:644:in `org.jruby.evaluator.ASTInterpreter.callNode'
ASTInterpreter.java:300:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:2141:in `org.jruby.evaluator.ASTInterpreter.setupArgs'
ASTInterpreter.java:645:in `org.jruby.evaluator.ASTInterpreter.callNode'
ASTInterpreter.java:300:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
CallSite.java:167:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:100:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:1093:in `org.jruby.evaluator.ASTInterpreter.fCallNode'
ASTInterpreter.java:346:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:1239:in `org.jruby.evaluator.ASTInterpreter.localAsgnNode'
ASTInterpreter.java:379:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
RubyObject.java:1170:in `org.jruby.RubyObject.send'
null:-1:in `org.jruby.RubyObjectInvoker$send_method_1_0.call'
CallSite.java:167:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:100:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:1093:in `org.jruby.evaluator.ASTInterpreter.fCallNode'
ASTInterpreter.java:346:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
AliasMethod.java:60:in `org.jruby.internal.runtime.methods.AliasMethod.call'
CallSite.java:167:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:73:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:1735:in `org.jruby.evaluator.ASTInterpreter.vcallNode'
ASTInterpreter.java:475:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
CallSite.java:167:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:100:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:1093:in `org.jruby.evaluator.ASTInterpreter.fCallNode'
ASTInterpreter.java:346:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
AliasMethod.java:60:in `org.jruby.internal.runtime.methods.AliasMethod.call'
AliasMethod.java:60:in `org.jruby.internal.runtime.methods.AliasMethod.call'
CallSite.java:167:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:73:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:1735:in `org.jruby.evaluator.ASTInterpreter.vcallNode'
ASTInterpreter.java:475:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
InterpretedBlock.java:150:in `org.jruby.runtime.InterpretedBlock.yield'
Block.java:114:in `org.jruby.runtime.Block.yield'
/home/sysop/sw/jruby-1.1RC1/lib/ruby/1.8/benchmark.rb:293:in `measure1662278156_1454189616._file_'
/home/sysop/sw/jruby-1.1RC1/lib/ruby/1.8/benchmark.rb:-1:in `measure1662278156_1454189616.run'
DefaultMethod.java:143:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
WrapperMethod.java:54:in `org.jruby.internal.runtime.methods.WrapperMethod.call'
CallSite.java:182:in `org.jruby.runtime.CallSite$ICBlockCallSite.call'
ASTInterpreter.java:658:in `org.jruby.evaluator.ASTInterpreter.callNode'
ASTInterpreter.java:300:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:644:in `org.jruby.evaluator.ASTInterpreter.callNode'
ASTInterpreter.java:300:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:532:in `org.jruby.evaluator.ASTInterpreter.arrayNode'
ASTInterpreter.java:283:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:644:in `org.jruby.evaluator.ASTInterpreter.callNode'
ASTInterpreter.java:300:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:1239:in `org.jruby.evaluator.ASTInterpreter.localAsgnNode'
ASTInterpreter.java:379:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
AliasMethod.java:60:in `org.jruby.internal.runtime.methods.AliasMethod.call'
AliasMethod.java:60:in `org.jruby.internal.runtime.methods.AliasMethod.call'
CallSite.java:167:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:73:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:1735:in `org.jruby.evaluator.ASTInterpreter.vcallNode'
ASTInterpreter.java:475:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:1500:in `org.jruby.evaluator.ASTInterpreter.rescueNode'
ASTInterpreter.java:443:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
AliasMethod.java:60:in `org.jruby.internal.runtime.methods.AliasMethod.call'
RubyObject.java:1170:in `org.jruby.RubyObject.send'
null:-1:in `org.jruby.RubyObjectInvoker$send_method_1_0.call'
CallSite.java:167:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:100:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:1093:in `org.jruby.evaluator.ASTInterpreter.fCallNode'
ASTInterpreter.java:346:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:1065:in `org.jruby.evaluator.ASTInterpreter.ensureNode'
ASTInterpreter.java:340:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
AliasMethod.java:60:in `org.jruby.internal.runtime.methods.AliasMethod.call'
CallSite.java:167:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:100:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:1093:in `org.jruby.evaluator.ASTInterpreter.fCallNode'
ASTInterpreter.java:346:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
AliasMethod.java:60:in `org.jruby.internal.runtime.methods.AliasMethod.call'
AliasMethod.java:60:in `org.jruby.internal.runtime.methods.AliasMethod.call'
CallSite.java:167:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:100:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:1093:in `org.jruby.evaluator.ASTInterpreter.fCallNode'
ASTInterpreter.java:346:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
AliasMethod.java:60:in `org.jruby.internal.runtime.methods.AliasMethod.call'
CallSite.java:167:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:100:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:653:in `org.jruby.evaluator.ASTInterpreter.callNode'
ASTInterpreter.java:300:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
CallSite.java:167:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:100:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:653:in `org.jruby.evaluator.ASTInterpreter.callNode'
ASTInterpreter.java:300:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:644:in `org.jruby.evaluator.ASTInterpreter.callNode'
ASTInterpreter.java:300:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
CallSite.java:153:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:73:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:1735:in `org.jruby.evaluator.ASTInterpreter.vcallNode'
ASTInterpreter.java:475:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:1500:in `org.jruby.evaluator.ASTInterpreter.rescueNode'
ASTInterpreter.java:443:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:1065:in `org.jruby.evaluator.ASTInterpreter.ensureNode'
ASTInterpreter.java:340:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
CallSite.java:153:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:73:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:1735:in `org.jruby.evaluator.ASTInterpreter.vcallNode'
ASTInterpreter.java:475:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:1500:in `org.jruby.evaluator.ASTInterpreter.rescueNode'
ASTInterpreter.java:443:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
CallSite.java:153:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:100:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:653:in `org.jruby.evaluator.ASTInterpreter.callNode'
ASTInterpreter.java:300:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
CallSite.java:153:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:100:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:653:in `org.jruby.evaluator.ASTInterpreter.callNode'
ASTInterpreter.java:300:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
InterpretedBlock.java:150:in `org.jruby.runtime.InterpretedBlock.yield'
InterpretedBlock.java:115:in `org.jruby.runtime.InterpretedBlock.yield'
Block.java:109:in `org.jruby.runtime.Block.yield'
ThreadLibrary.java:140:in `org.jruby.libraries.ThreadLibrary$Mutex.synchronize'
null:-1:in `org.jruby.libraries.ThreadLibrary$MutexInvoker$synchronize_0.call'
InvocationCallback.java:67:in `org.jruby.runtime.callback.InvocationCallback.execute'
FullFunctionCallbackMethod.java:73:in `org.jruby.internal.runtime.methods.FullFunctionCallbackMethod.call'
CallSite.java:182:in `org.jruby.runtime.CallSite$ICBlockCallSite.call'
ASTInterpreter.java:658:in `org.jruby.evaluator.ASTInterpreter.callNode'
ASTInterpreter.java:300:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:1500:in `org.jruby.evaluator.ASTInterpreter.rescueNode'
ASTInterpreter.java:443:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
CallSite.java:153:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:100:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:653:in `org.jruby.evaluator.ASTInterpreter.callNode'
ASTInterpreter.java:300:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
InterpretedBlock.java:150:in `org.jruby.runtime.InterpretedBlock.yield'
InterpretedBlock.java:115:in `org.jruby.runtime.InterpretedBlock.yield'
Block.java:109:in `org.jruby.runtime.Block.yield'
RubyArray.java:1185:in `org.jruby.RubyArray.each'
null:-1:in `org.jruby.RubyArrayInvoker$each_method_0_0.call'
CallSite.java:182:in `org.jruby.runtime.CallSite$ICBlockCallSite.call'
ASTInterpreter.java:658:in `org.jruby.evaluator.ASTInterpreter.callNode'
ASTInterpreter.java:300:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:1748:in `org.jruby.evaluator.ASTInterpreter.whileNode'
ASTInterpreter.java:480:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:627:in `org.jruby.evaluator.ASTInterpreter.blockNode'
ASTInterpreter.java:294:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:1500:in `org.jruby.evaluator.ASTInterpreter.rescueNode'
ASTInterpreter.java:443:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:1065:in `org.jruby.evaluator.ASTInterpreter.ensureNode'
ASTInterpreter.java:340:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
DefaultMethod.java:175:in `org.jruby.internal.runtime.methods.DefaultMethod.call'
CallSite.java:153:in `org.jruby.runtime.CallSite$ICNonBlockCallSite.call'
CallSite.java:100:in `org.jruby.runtime.CallSite$ArgumentBoxingCallSite.call'
ASTInterpreter.java:1093:in `org.jruby.evaluator.ASTInterpreter.fCallNode'
ASTInterpreter.java:346:in `org.jruby.evaluator.ASTInterpreter.evalInternal'
ASTInterpreter.java:168:in `org.jruby.evaluator.ASTInterpreter.eval'
InterpretedBlock.java:150:in `org.jruby.runtime.InterpretedBlock.yield'
InterpretedBlock.java:103:in `org.jruby.runtime.InterpretedBlock.call'
Block.java:105:in `org.jruby.runtime.Block.call'
RubyProc.java:205:in `org.jruby.RubyProc.call'
RubyProc.java:183:in `org.jruby.RubyProc.call'
RubyNativeThread.java:72:in `org.jruby.internal.runtime.RubyNativeThread.run'
/home/sysop/sw/jruby-1.1RC1/lib/ruby/gems/1.8/gems/mongrel-1.1.3-java/bin/../lib/mongrel/rails.rb:74:in `process'
/home/sysop/sw/jruby-1.1RC1/lib/ruby/gems/1.8/gems/mongrel-1.1.3-java/bin/../lib/mongrel/rails.rb:74:in `process_client'
/home/sysop/sw/jruby-1.1RC1/lib/ruby/gems/1.8/gems/mongrel-1.1.3-java/bin/../lib/mongrel.rb:158:in `each'
/home/sysop/sw/jruby-1.1RC1/lib/ruby/gems/1.8/gems/mongrel-1.1.3-java/bin/../lib/mongrel.rb:158:in `process_client'
/home/sysop/sw/jruby-1.1RC1/lib/ruby/gems/1.8/gems/mongrel-1.1.3-java/bin/../lib/mongrel.rb:158:in `run'
/home/sysop/sw/jruby-1.1RC1/lib/ruby/gems/1.8/gems/mongrel-1.1.3-java/bin/../lib/mongrel.rb:285:in `initialize'
Changshin: can you report that as a separate bug? And maybe try to sort out what's happening?
As of JRuby 1.1 we can no longer use mongrel_jcluster. In JRuby 1.1RC1 we could successfully deploy a JRuby on Rails app with mongrel_jcluster. Because of this we have been looking at deployment with the glassfish gem (jruby -S gem install glassfish) but we cannot easily launch two app at the same time with them gem. Is there something I am missing, or how can we deploy a JRuby on Rails app in a cluster with JRuby 1.1?
Brandon, please file a new bug with detailed info on how to reproduce and the stack trace. And we'll try to address the problem in the next version.
Hi Vladimir,
I will file a bug in addition to this comment. I am not getting a stack trace, rather some command not found errors.
Using jruby 1.1, mongrel 1.1.4, mongrel_jcluster 0.0.1
sudo jruby -S mongrel_rails jcluster::start
Starting JRuby server...
Starting 4 Mongrel servers...
sh: jrubycli: command not found
mongrel_rails start -e production -p 8000 -a 127.0.0.1 -l /var/www/app/current/log/mongrel.log -P /var/www/app/current/tmp/pids/mongrel.8000.pid -c /var/www/app/current
sh: jrubycli: command not found
mongrel_rails start -e production -p 8001 -a 127.0.0.1 -l /var/www/app/current/log/mongrel.log -P /var/www/app/current/tmp/pids/mongrel.8001.pid -c /var/www/app/current
sh: jrubycli: command not found
mongrel_rails start -e production -p 8002 -a 127.0.0.1 -l /var/www/app/current/log/mongrel.log -P /var/www/app/current/tmp/pids/mongrel.8002.pid -c /var/www/app/current
sh: jrubycli: command not found
mongrel_rails start -e production -p 8003 -a 127.0.0.1 -l /var/www/app/current/log/mongrel.log -P /var/www/app/current/tmp/pids/mongrel.8003.pid -c /var/www/app/current
Thanks,
Brandon Hauff
P.S. The jrubycli was in earlier release candidates if I recall correctly, but it is gone in the 1.1RC3 and 1.1 final.
Which revision is it ? RubyString.java:2485 is an empty space for r5222