Coder Social home page Coder Social logo

jruby / jruby Goto Github PK

View Code? Open in Web Editor NEW
3.8K 3.8K 918.0 282.21 MB

JRuby, an implementation of Ruby on the JVM

Home Page: https://www.jruby.org

License: Other

Ruby 54.13% Java 42.12% Tcl 0.01% Shell 0.10% HTML 0.02% C 0.78% Makefile 0.01% Batchfile 0.01% Yacc 2.74% Lex 0.02% JavaScript 0.01% CSS 0.01% sed 0.01% M4 0.08%
concurrency invokedynamic jruby jvm performance ruby ruby-language

jruby's Introduction

JRuby - an implementation of the Ruby language on the JVM

Master: JRuby CI, JRuby CI (Windows) 9.3 branch: JRuby CI, JRuby CI (Windows)

About

JRuby is an implementation of the Ruby language using the JVM.

It aims to be a complete, correct and fast implementation of Ruby, at the same time as providing powerful new features such as concurrency without a global-interpreter-lock, true parallelism, and tight integration to the Java language to allow you to use Java classes in your Ruby program and to allow JRuby to be embedded into a Java application.

You can use JRuby simply as a faster version of Ruby, you can use it to run Ruby on the JVM and access powerful JVM libraries such as highly tuned concurrency primitives, you can use it to embed Ruby as a scripting language in your Java program, or many other possibilities.

We're a welcoming community - you can talk to us on #jruby on Libera. There are core team members in the EU and US time zones.

Visit the JRuby website and the JRuby wiki for more information.

Getting JRuby

To run JRuby you will need a JRE (the Java VM runtime environment) version 8 or higher.

Your operating system may provide a JRE and JRuby in a package manager, but you may find that this version is very old.

An alternative is to use one of the Ruby version managers.

For rbenv you will need the ruby-build plugin. You may find that your system package manager can provide these. To see which versions of JRuby are available you should run:

$ rbenv install jruby

Note: if you do not regularly git update rbenv this list of versions may be out of date.

We recommend always selecting the latest version of JRuby from the list. You can install that particular version (9.2.13.0 is just for illustration):

$ rbenv install jruby-9.2.13.0

For rvm you can simply do:

$ rvm install jruby

Using Homebrew works too:

$ brew install jruby

You can also download packages from the JRuby website that you can unpack and run in place.

Building JRuby

See BUILDING for information about prerequisites, how to compile JRuby from source and how to test it.

Authors

Stefan Matthias Aust, Anders Bengtsson, Geert Bevin, Ola Bini, Piergiuliano Bossi, Johannes Brodwall, Rocky Burt, Paul Butcher, Benoit Cerrina, Wyss Clemens, David Corbin, Benoit Daloze, Thomas E Enebo, Robert Feldt, Chad Fowler, Russ Freeman, Joey Gibson, Kiel Hodges, Xandy Johnson, Kelvin Liu, Kevin Menard, Alan Moore, Akinori Musha, Charles Nutter, Takashi Okamoto, Jan Arne Petersen, Tobias Reif, David Saff, Subramanya Sastry, Chris Seaton, Nick Sieger, Ed Sinjiashvili, Vladimir Sizikov, Daiki Ueno, Matthias Veit, Jason Voegele, Sergey Yevtushenko, Robert Yokota, and many gracious contributors from the community.

JRuby uses code generously shared by the creator of the Ruby language, Yukihiro Matsumoto [email protected].

Project Contact: Thomas E Enebo [email protected]

License

JRuby is licensed under a tri EPL/GPL/LGPL license. You can use it, redistribute it and/or modify it under the terms of the:

Eclipse Public License version 2.0 OR GNU General Public License version 2 OR GNU Lesser General Public License version 2.1

Some components have other licenses and copyright. See the COPYING file for more specifics.

jruby's People

Contributors

ahorek avatar atambo avatar banzaiman avatar bjfish avatar byteit101 avatar calavera avatar cheald avatar chrisbr avatar chrisseaton avatar donv avatar enebo avatar eregon avatar ghostganz avatar headius avatar k77ch7 avatar kares avatar lopex avatar lucasallan avatar mkristian avatar nicksieger avatar nirvdrum avatar nomadium avatar olabini avatar pitr-ch avatar qmx avatar subbuss avatar timfel avatar vp-of-awesome avatar vvs avatar yokolet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jruby's Issues

Unable to bind to a UNIX socket with java.nio.channels.IllegalSelectorException

@headius asked this be opened as a JRuby bug. Originally filed as puma/puma#107.

Machine profile:

Hardware Overview:

  Model Name:   iMac
  Model Identifier: iMac11,2
  Processor Name:   Intel Core i3
  Processor Speed:  3.06 GHz
  Number Of Processors: 1
  Total Number Of Cores:    2
  L2 Cache (per core):  256 KB
  L3 Cache: 4 MB
  Memory:   4 GB

Ruby environment:

  • JRuby 1.7.0.preview1
  • puma 1.4.0

puma.rb used for running puma as puma -C config/puma.rb

rails_env = ENV['RAILS_ENV'] || 'development'

threads 4, 16

case rails_env
when 'production'
  bind "unix:///var/rails/[redacted]/tmp/sockets/#{rails_env}.puma.sock"
else
  bind "unix:///#{`pwd`.strip}/tmp/sockets/#{rails_env}.puma.sock"
end

I'm currently trying to start an application locally binding to a UNIX socket, but am getting the following error with a java.nio.channels.IllegalSelectorException. The full stacktrace is below. It repeats until I kill the server with a Ctrl-C.

Puma 1.4.0 starting...
* Min threads: 4, max threads: 16
* Listening on unix:////Users/dczarnecki/projects/[redacted]/tmp/sockets/development.puma.sock
Use Ctrl-C to stop
2012-06-14 13:15:53 -0400: Listen loop error: java.nio.channels.IllegalSelectorException
sun.nio.ch.SelectorImpl.register(SelectorImpl.java:111)
java.nio.channels.spi.AbstractSelectableChannel.register(AbstractSelectableChannel.java:180)
org.jruby.util.io.SelectBlob.registerSelect(SelectBlob.java:475)
org.jruby.util.io.SelectBlob.trySelectRead(SelectBlob.java:164)
org.jruby.util.io.SelectBlob.processReads(SelectBlob.java:136)
org.jruby.util.io.SelectBlob.goForIt(SelectBlob.java:66)
org.jruby.RubyIO.select_static(RubyIO.java:3408)
org.jruby.RubyIO.select(RubyIO.java:3404)
org.jruby.RubyIO$INVOKER$s$0$3$select.call(RubyIO$INVOKER$s$0$3$select.gen)
org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:640)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:212)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
org.jruby.ast.DAsgnNode.interpret(DAsgnNode.java:110)
org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
org.jruby.ast.RescueNode.executeBody(RescueNode.java:226)
org.jruby.ast.RescueNode.interpretWithJavaExceptions(RescueNode.java:123)
org.jruby.ast.RescueNode.interpret(RescueNode.java:113)
org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
org.jruby.ast.WhileNode.interpret(WhileNode.java:131)
org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:209)
org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:197)
org.jruby.runtime.Interpreted19Block.call(Interpreted19Block.java:128)
org.jruby.runtime.Block.call(Block.java:89)
org.jruby.RubyProc.call(RubyProc.java:269)
org.jruby.RubyProc.call(RubyProc.java:223)
org.jruby.internal.runtime.RubyRunnable.run(RubyRunnable.java:101)
java.lang.Thread.run(Thread.java:680)

Let me know if you need any more information.

Recursive checking threadlocals in Ruby keep runtimes alive

We have a couple thread locals in Ruby that are used for recursive calls like Array#inspect. Unfortunately, because they reference Ruby objects, they end up keeping their associated runtime alive for the life of the thread.

We need to either not use thread locals or not use Ruby objects as values.

exception in eval gets written to stderr

Hi!

Trying to eval invalid code not only results in an exception (Good!), but in stacktraces written to stderr (Not that good)

The following java code reproduces the bug:

try {
(new javax.script.ScriptEngineManager).getEngineByExtension("rb").eval("1+");
} catch (Exception e) {
// Do nothing
}

No, I totally would not write such code, but it illustrates the problem quite well. Should not print a single line, but does:

[error] SyntaxError: <script>:1: syntax error, unexpected end-of-file
[error]
[error] org.jruby.embed.ParseFailedException: (SyntaxError) <script>:1: syntax error, unexpected end-of-file
[error]
[error] at org.jruby.embed.internal.EmbedRubyRuntimeAdapterImpl.runParser(EmbedRubyRuntimeAdapterImpl.java:207)
[error] at org.jruby.embed.internal.EmbedRubyRuntimeAdapterImpl.parse(EmbedRubyRuntimeAdapterImpl.java:93)
[error] at org.jruby.embed.ScriptingContainer.parse(ScriptingContainer.java:1195)
[error] at org.jruby.embed.jsr223.JRubyEngine.eval(JRubyEngine.java:89)
[error] at org.jruby.embed.jsr223.JRubyEngine.eval(JRubyEngine.java:153)

JRuby version is 1.6.7

(Yay for Markdown killing stacktraces)

1.9 mode runs "threaded reverse" bench slower than MRI

We must be doing too much work in the String operations called by bench_threaded_reverse.rb, since our performance is absolutely dismal compared to MRI 1.9.3:

JRuby 1.8 mode:

system ~/projects/jruby $ jruby --1.8 bench/bench_threaded_reverse.rb 1
concurrency is - 1
started thread 0
Thread 0 running
another 10 in #<Thread:0x1ad5cabc run>
another 10 in #<Thread:0x1ad5cabc run>
another 10 in #<Thread:0x1ad5cabc run>
another 10 in #<Thread:0x1ad5cabc run>
another 10 in #<Thread:0x1ad5cabc run>
another 10 in #<Thread:0x1ad5cabc run>
another 10 in #<Thread:0x1ad5cabc run>
another 10 in #<Thread:0x1ad5cabc run>
another 10 in #<Thread:0x1ad5cabc run>
another 10 in #<Thread:0x1ad5cabc run>
another 10 in #<Thread:0x1ad5cabc run>
another 10 in #<Thread:0x1ad5cabc run>
Thread 0 done
Time: 1.47

JRuby 1.9 mode:

system ~/projects/jruby $ jruby --1.9 -v bench/bench_threaded_reverse.rb 1
concurrency is - 1
started thread 0
Thread 0 running
another 10 in #<Thread:0x2d14d18f run>
another 10 in #<Thread:0x2d14d18f run>
another 10 in #<Thread:0x2d14d18f run>
another 10 in #<Thread:0x2d14d18f run>
another 10 in #<Thread:0x2d14d18f run>
another 10 in #<Thread:0x2d14d18f run>
another 10 in #<Thread:0x2d14d18f run>
another 10 in #<Thread:0x2d14d18f run>
another 10 in #<Thread:0x2d14d18f run>
another 10 in #<Thread:0x2d14d18f run>
another 10 in #<Thread:0x2d14d18f run>
another 10 in #<Thread:0x2d14d18f run>
Thread 0 done
Time: 142.184

MRI 1.9.3:

system ~/projects/jruby $ ruby1.9.3 bench/bench_threaded_reverse.rb 1
concurrency is - 1
started thread 0
Thread 0 running
another 10 in #<Thread:0x000001008e3770 run>
another 10 in #<Thread:0x000001008e3770 run>
another 10 in #<Thread:0x000001008e3770 run>
another 10 in #<Thread:0x000001008e3770 run>
another 10 in #<Thread:0x000001008e3770 run>
another 10 in #<Thread:0x000001008e3770 run>
another 10 in #<Thread:0x000001008e3770 run>
another 10 in #<Thread:0x000001008e3770 run>
another 10 in #<Thread:0x000001008e3770 run>
another 10 in #<Thread:0x000001008e3770 run>
another 10 in #<Thread:0x000001008e3770 run>
another 10 in #<Thread:0x000001008e3770 run>
Thread 0 done
Time: 4.026808

The main body of the benchmark basically does a manual string reversal by walking individual characters. I would expect it to be slower than 1.8, due to encoding checks, but obviously it's much slower than it should be.

StringIO#read losing String Encoding

Hi,

I've run into an issue with JRuby 1.6.7 and tested it against the master branch on Github too. It can be reproduced with the following steps:

require 'open-uri'
a = open("http://pinterest.com/pin/56295064062363076/").read
a.encoding
=> #Encoding:UTF-8
b = StringIO.new(a).read
b.encoding
=> #Encoding:ASCII-8BIT
Encoding.default_internal
=> nil
Encoding.default_external
=> #Encoding:UTF-8

As you can see above once the StringIO#read is performed the string encoding changes. This doesn't happen in MRI-1.9.3.

Once this is then read using something like Nokogiri it then throws an ArgumentError: uncaught encoding.

If someone could point me in the right direction I'd like to try and help fix it, if it is an actual issue.

Thanks

Inheriting from BigDecimal returns incorrect class

When creating a subclass of BigDecimal the class returned on construction is BigDecimal and not the extended class. Discovered by @kouno.

Construction inside RubyBigDecimal.java seems to be the cause of the issue. All BigDecimal#new calls seem to call the BigDecimal argumented constructor.

    public RubyBigDecimal(Ruby runtime, BigDecimal value) {
        super(runtime, runtime.getClass("BigDecimal"));
        this.value = value;
    }

This should be replaced with a helper constructor that takes into account this.metaClass

    private RubyBigDecimal createBigDecimal(Ruby runtime, BigDecimal value) {
        return new RubyBigDecimal(runtime, this.getMetaClass(), value);
    }

And all constructions from operations should use this.

https://gist.github.com/2878757

SHA: 02002ed

Java::JavaLang::LinkageError with -Xreify.classes=true

JRuby version

jruby 1.6.8.dev (ruby-1.9.2-p312) (2012-05-24 6f398e8) (Java HotSpot(TM) Server VM 1.7.0_04) [linux-i386-java]

Launcher CMD

/usr/bin/java -Djdk.home= -Djruby.home=/usr/local/rvm/rubies/jruby-head-n16 -Djruby.script=jruby -Djruby.shell=/bin/sh -Djffi.boot.library.path=/usr/local/rvm/rubies/jruby-head-n16/lib/native/i386-Linux:/usr/local/rvm/rubies/jruby-head-n16/lib/native/ppc-Linux:/usr/local/rvm/rubies/jruby-head-n16/lib/native/x86_64-Linux -Xss2048k -Djruby.memory.max=1024M -Djruby.stack.max=2048k -Dsun.java.command=org.jruby.Main -cp -Xbootclasspath/a:/usr/local/rvm/rubies/jruby-head-n16/lib/jruby.jar -Dname=nebula_server -Djruby.jit.max=25000 -server -XX:+TieredCompilation -Xms128M -Xmx1024M -XX:MaxPermSize=256m -Dcom.sun.management.jmxremote.port=55100 -Dcom.sun.management.jmxremote.password.file=/home/spacegame/config/jmx.password -Dcom.sun.management.jmxremote.ssl=false org/jruby/Main --1.9 -X+C -Xreify.classes=true /home/spacegame/nebula-server/20120530094731/lib/main.rb

Errors

Example 1

Server has encountered an error!

[2012-05-30 09:51:37.158|worker-world_2|worker-world_2|error] <callback-2647379: cooldown_expired on Building (31) @ 2012-05-30 09:37:06 (ruleset: default)> failed: Exception: loader (instance of org/jruby/util/ClassCache$OneShotClassLoader): attempted duplicate class definition for name: "rubyobj/Technology/SuperconductorTechnology" (Java::JavaLang::LinkageError)

Backtrace:
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java:791)
org.jruby.util.ClassCache$OneShotClassLoader.defineClass(ClassCache.java:68)
org.jruby.RubyClass.reify(RubyClass.java:1451)
org.jruby.RubyClass.reifyWithAncestors(RubyClass.java:1190)
org.jruby.RubyClass.reifyWithAncestors(RubyClass.java:1165)
org.jruby.RubyObject$2.allocate(RubyObject.java:162)
org.jruby.RubyClass.allocate(RubyClass.java:219)
org.jruby.RubyClass$i$0$0$allocate.call(RubyClass$i$0$0$allocate.gen:65535)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:133)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.inheritance.method__10$RUBY$instantiate(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/inheritance.rb:76)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$inheritance$method__10$RUBY$instantiate.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$inheritance$method__10$RUBY$instantiate:65535)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$inheritance$method__10$RUBY$instantiate.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$inheritance$method__10$RUBY$instantiate:65535)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:167)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.querying.block_1$RUBY$find_by_sql(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/querying.rb:38)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$querying$block_1$RUBY$find_by_sql.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$querying$block_1$RUBY$find_by_sql:65535)
org.jruby.runtime.CompiledBlock19.yield(CompiledBlock19.java:139)
org.jruby.runtime.Block.yield(Block.java:130)
org.jruby.RubyArray.collectBang(RubyArray.java:2356)
org.jruby.RubyArray.collect_bang(RubyArray.java:2367)
org.jruby.RubyArray$i$0$0$collect_bang.call(RubyArray$i$0$0$collect_bang.gen:65535)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:142)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:153)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.querying.block_0$RUBY$find_by_sql(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/querying.rb:38)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$querying$block_0$RUBY$find_by_sql.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$querying$block_0$RUBY$find_by_sql:65535)
org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:121)
org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:96)
org.jruby.runtime.Block.yieldSpecific(Block.java:99)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.explain.method__3$RUBY$logging_query_plan(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/explain.rb:40)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$explain$method__3$RUBY$logging_query_plan.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$explain$method__3$RUBY$logging_query_plan:65535)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:142)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:153)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.querying.method__2$RUBY$find_by_sql(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/querying.rb:37)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$querying$method__2$RUBY$find_by_sql.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$querying$method__2$RUBY$find_by_sql:65535)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:219)
org.jruby.internal.runtime.methods.CompiledMethod.call(CompiledMethod.java:265)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:201)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.relation.method__13$RUBY$exec_queries(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/relation.rb:171)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__13$RUBY$exec_queries.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__13$RUBY$exec_queries:65535)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__13$RUBY$exec_queries.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__13$RUBY$exec_queries:65535)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:133)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.relation.block_10$RUBY$to_a(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/relation.rb:160)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$block_10$RUBY$to_a.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$block_10$RUBY$to_a:65535)
org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:121)
org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:96)
org.jruby.runtime.Block.yieldSpecific(Block.java:99)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.explain.method__3$RUBY$logging_query_plan(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/explain.rb:40)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$explain$method__3$RUBY$logging_query_plan.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$explain$method__3$RUBY$logging_query_plan:65535)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:142)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:153)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.relation.method__12$RUBY$to_a(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/relation.rb:159)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__12$RUBY$to_a.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__12$RUBY$to_a:65535)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__12$RUBY$to_a.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__12$RUBY$to_a:65535)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:133)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.relation.method__13$RUBY$exec_queries(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/relation.rb:189)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__13$RUBY$exec_queries.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__13$RUBY$exec_queries:65535)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__13$RUBY$exec_queries.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__13$RUBY$exec_queries:65535)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:133)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.relation.block_10$RUBY$to_a(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/relation.rb:160)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$block_10$RUBY$to_a.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$block_10$RUBY$to_a:65535)
org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:121)
org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:96)
org.jruby.runtime.Block.yieldSpecific(Block.java:99)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.explain.method__3$RUBY$logging_query_plan(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/explain.rb:40)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$explain$method__3$RUBY$logging_query_plan.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$explain$method__3$RUBY$logging_query_plan:65535)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:142)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:153)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.relation.method__12$RUBY$to_a(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/relation.rb:159)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__12$RUBY$to_a.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__12$RUBY$to_a:65535)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__12$RUBY$to_a.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__12$RUBY$to_a:65535)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:133)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.relation.finder_methods.method__7$RUBY$all(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/relation/finder_methods.rb:159)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$finder_methods$method__7$RUBY$all.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$finder_methods$method__7$RUBY$all:65535)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:203)
org.jruby.internal.runtime.methods.CompiledMethod.call(CompiledMethod.java:255)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:133)
home.spacegame.nebula_minus_server.$20120530094731.lib.app.models.ss_object.planet.block_21$RUBY$resource_modifier_technologies(/home/spacegame/nebula-server/20120530094731/lib/app/models/ss_object/planet.rb:343)
home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$block_21$RUBY$resource_modifier_technologies.call(home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$block_21$RUBY$resource_modifier_technologies:65535)
org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:121)
org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:96)
org.jruby.runtime.Block.yieldSpecific(Block.java:99)
home.spacegame.nebula_minus_server.$20120530094731.lib.app.models.parts.with_locking.chained_6_ensure_1$RUBY$ensure(/home/spacegame/nebula-server/20120530094731/lib/app/models/parts/with_locking.rb:35)
home.spacegame.nebula_minus_server.$20120530094731.lib.app.models.parts.with_locking.method__5$RUBY$without_locking(/home/spacegame/nebula-server/20120530094731/lib/app/models/parts/with_locking.rb:33)
home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$parts$with_locking$method__5$RUBY$without_locking.call(home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$parts$with_locking$method__5$RUBY$without_locking:65535)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:302)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:144)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:153)
home.spacegame.nebula_minus_server.$20120530094731.lib.app.models.ss_object.planet.method__17$RUBY$resource_modifier_technologies(/home/spacegame/nebula-server/20120530094731/lib/app/models/ss_object/planet.rb:342)
home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$method__17$RUBY$resource_modifier_technologies.call(home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$method__17$RUBY$resource_modifier_technologies:65535)
home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$method__17$RUBY$resource_modifier_technologies.call(home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$method__17$RUBY$resource_modifier_technologies:65535)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:292)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:135)
home.spacegame.nebula_minus_server.$20120530094731.lib.app.models.ss_object.planet.method__19$RUBY$resource_modifiers(/home/spacegame/nebula-server/20120530094731/lib/app/models/ss_object/planet.rb:367)
home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$method__19$RUBY$resource_modifiers.call(home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$method__19$RUBY$resource_modifiers:65535)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:203)
org.jruby.internal.runtime.methods.CompiledMethod.call(CompiledMethod.java:255)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:292)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:135)
home.spacegame.nebula_minus_server.$20120530094731.lib.app.models.ss_object.planet.method__18$RUBY$resource_modifier(/home/spacegame/nebula-server/20120530094731/lib/app/models/ss_object/planet.rb:354)
home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$method__18$RUBY$resource_modifier.call(home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$method__18$RUBY$resource_modifier:65535)
home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$method__18$RUBY$resource_modifier.call(home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$method__18$RUBY$resource_modifier:65535)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
home.spacegame.nebula_minus_server.$20120530094731.lib.app.models.ss_object.planet.block_11$RUBY$Planet(/home/spacegame/nebula-server/20120530094731/lib/app/models/ss_object/planet.rb:240)
home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$block_11$RUBY$Planet.call(home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$block_11$RUBY$Planet:65535)
org.jruby.runtime.CompiledBlock19.yield(CompiledBlock19.java:163)
org.jruby.runtime.CompiledBlock19.call(CompiledBlock19.java:91)
org.jruby.runtime.Block.call(Block.java:89)
org.jruby.RubyProc.call(RubyProc.java:270)
org.jruby.internal.runtime.methods.ProcMethod.call(ProcMethod.java:64)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:203)
org.jruby.RubyClass.finvoke(RubyClass.java:552)
org.jruby.RubyBasicObject.send19(RubyBasicObject.java:1698)
org.jruby.RubyKernel.send19(RubyKernel.java:2100)
org.jruby.RubyKernel$s$send19.call(RubyKernel$s$send19.gen:65535)
org.jruby.internal.runtime.methods.JavaMethod$JavaMethodZeroOrOneOrNBlock.call(JavaMethod.java:266)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
home.spacegame.nebula_minus_server.$20120530094731.lib.app.models.ss_object.planet.block_25$RUBY$recalculate(/home/spacegame/nebula-server/20120530094731/lib/app/models/ss_object/planet.rb:389)
home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$block_25$RUBY$recalculate.call(home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$block_25$RUBY$recalculate:65535)
org.jruby.runtime.CompiledBlock19.yield(CompiledBlock19.java:139)
org.jruby.runtime.Block.yield(Block.java:130)
org.jruby.RubyArray.eachCommon(RubyArray.java:1609)
org.jruby.RubyArray.each(RubyArray.java:1616)
org.jruby.RubyArray$i$0$0$each.call(RubyArray$i$0$0$each.gen:65535)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:302)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:144)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:153)
home.spacegame.nebula_minus_server.$20120530094731.lib.app.models.ss_object.planet.method__20$RUBY$recalculate(/home/spacegame/nebula-server/20120530094731/lib/app/models/ss_object/planet.rb:387)
home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$method__20$RUBY$recalculate.call(home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$method__20$RUBY$recalculate:65535)
home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$method__20$RUBY$recalculate.call(home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$method__20$RUBY$recalculate:65535)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:292)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:135)
home.spacegame.nebula_minus_server.$20120530094731.lib.app.models.ss_object.planet.method__15$RUBY$recalculate_if_unsynced(/home/spacegame/nebula-server/20120530094731/lib/app/models/ss_object/planet.rb:316)
home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$method__15$RUBY$recalculate_if_unsynced.call(home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$method__15$RUBY$recalculate_if_unsynced:65535)
home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$method__15$RUBY$recalculate_if_unsynced.call(home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$ss_object$planet$method__15$RUBY$recalculate_if_unsynced:65535)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:292)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:135)
org.jruby.ast.VCallNode.interpret(VCallNode.java:86)
org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
org.jruby.ast.IfNode.interpret(IfNode.java:117)
org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:169)
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:191)
org.jruby.RubyClass.finvoke(RubyClass.java:552)
org.jruby.RubyBasicObject.send19(RubyBasicObject.java:1698)
org.jruby.RubyKernel.send19(RubyKernel.java:2100)
org.jruby.RubyKernel$s$send19.call(RubyKernel$s$send19.gen:65535)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:322)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:178)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:182)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activesupport_minus_3_dot_2_dot_3.lib.active_support.callbacks.method__25$RUBY$run_callback(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activesupport-3.2.3/lib/active_support/callbacks.rb:405)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activesupport_minus_3_dot_2_dot_3$lib$active_support$callbacks$method__25$RUBY$__run_callback.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activesupport_minus_3_dot_2_dot_3$lib$active_support$callbacks$method__25$RUBY$__run_callback:65535)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:362)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:246)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:250)
org.jruby.ast.CallThreeArgBlockPassNode.interpret(CallThreeArgBlockPassNode.java:64)
org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:169)
org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:191)
org.jruby.RubyClass.finvoke(RubyClass.java:552)
org.jruby.RubyBasicObject.send19(RubyBasicObject.java:1698)
org.jruby.RubyKernel.send19(RubyKernel.java:2100)
org.jruby.RubyKernel$s$send19.call(RubyKernel$s$send19.gen:65535)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:322)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:178)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:182)
org.jruby.runtime.callsite.CachingCallSite.callVarargs(CachingCallSite.java:112)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activesupport_minus_3_dot_2_dot_3.lib.active_support.callbacks.method__2$RUBY$run_callbacks(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activesupport-3.2.3/lib/active_support/callbacks.rb:81)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activesupport_minus_3_dot_2_dot_3$lib$active_support$callbacks$method__2$RUBY$run_callbacks.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activesupport_minus_3_dot_2_dot_3$lib$active_support$callbacks$method__2$RUBY$run_callbacks:65535)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:211)
org.jruby.internal.runtime.methods.CompiledMethod.call(CompiledMethod.java:260)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.base.method__13$RUBY$init_with(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/base.rb:523)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$base$method__13$RUBY$init_with.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$base$method__13$RUBY$init_with:65535)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$base$method__13$RUBY$init_with.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$base$method__13$RUBY$init_with:65535)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.inheritance.method__10$RUBY$instantiate(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/inheritance.rb:76)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$inheritance$method__10$RUBY$instantiate.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$inheritance$method__10$RUBY$instantiate:65535)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$inheritance$method__10$RUBY$instantiate.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$inheritance$method__10$RUBY$instantiate:65535)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.querying.block_1$RUBY$find_by_sql(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/querying.rb:38)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$querying$block_1$RUBY$find_by_sql.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$querying$block_1$RUBY$find_by_sql:65535)
org.jruby.runtime.CompiledBlock19.yield(CompiledBlock19.java:139)
org.jruby.runtime.Block.yield(Block.java:130)
org.jruby.RubyArray.collectBang(RubyArray.java:2356)
org.jruby.RubyArray.collect_bang(RubyArray.java:2367)
org.jruby.RubyArray$i$0$0$collect_bang.call(RubyArray$i$0$0$collect_bang.gen:65535)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:142)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:153)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.querying.block_0$RUBY$find_by_sql(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/querying.rb:38)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$querying$block_0$RUBY$find_by_sql.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$querying$block_0$RUBY$find_by_sql:65535)
org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:121)
org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:96)
org.jruby.runtime.Block.yieldSpecific(Block.java:99)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.explain.method__3$RUBY$logging_query_plan(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/explain.rb:40)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$explain$method__3$RUBY$logging_query_plan.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$explain$method__3$RUBY$logging_query_plan:65535)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:302)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:144)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:153)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.querying.method__2$RUBY$find_by_sql(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/querying.rb:37)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$querying$method__2$RUBY$find_by_sql.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$querying$method__2$RUBY$find_by_sql:65535)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:219)
org.jruby.internal.runtime.methods.CompiledMethod.call(CompiledMethod.java:265)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:332)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:203)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.relation.method__13$RUBY$exec_queries(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/relation.rb:171)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__13$RUBY$exec_queries.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__13$RUBY$exec_queries:65535)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__13$RUBY$exec_queries.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__13$RUBY$exec_queries:65535)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:133)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.relation.block_10$RUBY$to_a(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/relation.rb:160)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$block_10$RUBY$to_a.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$block_10$RUBY$to_a:65535)
org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:121)
org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:96)
org.jruby.runtime.Block.yieldSpecific(Block.java:99)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.explain.method__3$RUBY$logging_query_plan(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/explain.rb:40)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$explain$method__3$RUBY$logging_query_plan.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$explain$method__3$RUBY$logging_query_plan:65535)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:142)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:153)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.relation.method__12$RUBY$to_a(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/relation.rb:159)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__12$RUBY$to_a.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__12$RUBY$to_a:65535)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__12$RUBY$to_a.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__12$RUBY$to_a:65535)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:133)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.relation.method__13$RUBY$exec_queries(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/relation.rb:189)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__13$RUBY$exec_queries.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__13$RUBY$exec_queries:65535)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__13$RUBY$exec_queries.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__13$RUBY$exec_queries:65535)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:133)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.relation.block_10$RUBY$to_a(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/relation.rb:160)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$block_10$RUBY$to_a.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$block_10$RUBY$to_a:65535)
org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:121)
org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:96)
org.jruby.runtime.Block.yieldSpecific(Block.java:99)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.explain.method__3$RUBY$logging_query_plan(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/explain.rb:40)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$explain$method__3$RUBY$logging_query_plan.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$explain$method__3$RUBY$logging_query_plan:65535)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:142)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:153)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.relation.method__12$RUBY$to_a(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/relation.rb:159)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__12$RUBY$to_a.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__12$RUBY$to_a:65535)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__12$RUBY$to_a.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$method__12$RUBY$to_a:65535)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:133)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.relation.finder_methods.method__20$RUBY$find_first(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/relation/finder_methods.rb:377)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$finder_methods$method__20$RUBY$find_first.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$finder_methods$method__20$RUBY$find_first:65535)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$finder_methods$method__20$RUBY$find_first.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$finder_methods$method__20$RUBY$find_first:65535)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:133)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.relation.finder_methods.method__3$RUBY$first(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/relation/finder_methods.rb:122)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$finder_methods$method__3$RUBY$first.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$relation$finder_methods$method__3$RUBY$first:65535)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:203)
org.jruby.internal.runtime.methods.CompiledMethod.call(CompiledMethod.java:255)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:292)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:135)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.associations.singular_association.method__9$RUBY$find_target(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/associations/singular_association.rb:42)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$associations$singular_association$method__9$RUBY$find_target.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$associations$singular_association$method__9$RUBY$find_target:65535)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$associations$singular_association$method__9$RUBY$find_target.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$associations$singular_association$method__9$RUBY$find_target:65535)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:133)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.associations.association.chained_18_ensure_1$RUBY$__ensure
(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/associations/association.rb:145)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.associations.association.method__17$RUBY$load_target(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/associations/association.rb:138)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$associations$association$method__17$RUBY$load_target.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$associations$association$method__17$RUBY$load_target:65535)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$associations$association$method__17$RUBY$load_target.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$associations$association$method__17$RUBY$load_target:65535)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:133)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.associations.association.method__6$RUBY$reload(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/associations/association.rb:55)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$associations$association$method__6$RUBY$reload.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$associations$association$method__6$RUBY$reload:65535)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$associations$association$method__6$RUBY$reload.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$associations$association$method__6$RUBY$reload:65535)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:133)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.associations.singular_association.method__3$RUBY$reader(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/associations/singular_association.rb:9)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$associations$singular_association$method__3$RUBY$reader.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$associations$singular_association$method__3$RUBY$reader:65535)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:203)
org.jruby.internal.runtime.methods.CompiledMethod.call(CompiledMethod.java:255)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:133)
org.jruby.runtime.callsite.CachingCallSite.callVarargs(CachingCallSite.java:101)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.associations.builder.association.block_0$RUBY$define_readers(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/associations/builder/association.rb:44)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$associations$builder$association$block_0$RUBY$define_readers.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$associations$builder$association$block_0$RUBY$define_readers:65535)
org.jruby.runtime.CompiledBlock19.yield(CompiledBlock19.java:163)
org.jruby.runtime.CompiledBlock19.call(CompiledBlock19.java:91)
org.jruby.runtime.Block.call(Block.java:89)
org.jruby.RubyProc.call(RubyProc.java:270)
org.jruby.internal.runtime.methods.ProcMethod.call(ProcMethod.java:64)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:203)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:199)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:133)
home.spacegame.nebula_minus_server.$20120530094731.lib.app.models.building.npc_hall.method__3$RUBY$cooldown_expired_b_(/home/spacegame/nebula-server/20120530094731/lib/app/models/building/npc_hall.rb:20)
home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$building$npc_hall$method__3$RUBY$cooldown_expired_b_.call(home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$building$npc_hall$method__3$RUBY$cooldown_expired_b_:65535)
home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$building$npc_hall$method__3$RUBY$cooldown_expired_b_.call(home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$building$npc_hall$method__3$RUBY$cooldown_expired_b_:65535)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:133)
home.spacegame.nebula_minus_server.$20120530094731.lib.app.models.building.method__56$RUBY$cooldown_expired_callback(/home/spacegame/nebula-server/20120530094731/lib/app/models/building.rb:471)
home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$building$method__56$RUBY$cooldown_expired_callback.call(home$spacegame$nebula_minus_server$$20120530094731$lib$app$models$building$method__56$RUBY$cooldown_expired_callback:65535)
org.jruby.RubyClass.finvoke(RubyClass.java:592)
org.jruby.RubyBasicObject.send19(RubyBasicObject.java:1704)
org.jruby.RubyKernel.send19(RubyKernel.java:2104)
org.jruby.RubyKernel$s$send19.call(RubyKernel$s$send19.gen:65535)
org.jruby.internal.runtime.methods.JavaMethod$JavaMethodZeroOrOneOrTwoOrNBlock.call(JavaMethod.java:283)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:201)
home.spacegame.nebula_minus_server.$20120530094731.lib.server.dispatcher.callback_task.block_2$RUBY$create(/home/spacegame/nebula-server/20120530094731/lib/server/dispatcher/callback_task.rb:19)
home$spacegame$nebula_minus_server$$20120530094731$lib$server$dispatcher$callback_task$block_2$RUBY$create.call(home$spacegame$nebula_minus_server$$20120530094731$lib$server$dispatcher$callback_task$block_2$RUBY$create:65535)
org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:121)
org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:96)
org.jruby.runtime.Block.yieldSpecific(Block.java:99)
home.spacegame.nebula_minus_server.$20120530094731.lib.server.threading.director.task.block_2$RUBY$retrying_transaction(/home/spacegame/nebula-server/20120530094731/lib/server/threading/director/task.rb:46)
home$spacegame$nebula_minus_server$$20120530094731$lib$server$threading$director$task$block_2$RUBY$retrying_transaction.call(home$spacegame$nebula_minus_server$$20120530094731$lib$server$threading$director$task$block_2$RUBY$retrying_transaction:65535)
org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:121)
org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:96)
org.jruby.runtime.Block.yieldSpecific(Block.java:99)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.connection_adapters.abstract.database_statements.chained_21_rescue_1$RUBY$SYNTHETICtransaction(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:192)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.connection_adapters.abstract.database_statements.chained_20_ensure_1$RUBY$ensure(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:180)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.connection_adapters.abstract.database_statements.method__19$RUBY$transaction(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$connection_adapters$abstract$database_statements$method__19$RUBY$transaction.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$connection_adapters$abstract$database_statements$method__19$RUBY$transaction:65535)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:211)
org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:86)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:176)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:182)
org.jruby.runtime.callsite.CachingCallSite.callVarargs(CachingCallSite.java:112)
home.spacegame.nebula_minus_server.$20120530094731.lib.server.monkey_squad.method__11$RUBY$transaction_with_no_nesting(/home/spacegame/nebula-server/20120530094731/lib/server/monkey_squad.rb:43)
home$spacegame$nebula_minus_server$$20120530094731$lib$server$monkey_squad$method__11$RUBY$transaction_with_no_nesting.call(home$spacegame$nebula_minus_server$$20120530094731$lib$server$monkey_squad$method__11$RUBY$transaction_with_no_nesting:65535)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:211)
org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:86)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:176)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:182)
home.spacegame.nebula_minus_server.$20120530094731.vendor.bundle.jruby.$1_dot_9.gems.activerecord_minus_3_dot_2_dot_3.lib.active_record.transactions.method__4$RUBY$transaction(/home/spacegame/nebula-server/20120530094731/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/transactions.rb:208)
home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$transactions$method__4$RUBY$transaction.call(home$spacegame$nebula_minus_server$$20120530094731$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$transactions$method__4$RUBY$transaction:65535)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:211)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:176)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:187)
home.spacegame.nebula_minus_server.$20120530094731.lib.server.threading.director.task.block_1$RUBY$retrying_transaction(/home/spacegame/nebula-server/20120530094731/lib/server/threading/director/task.rb:45)
home$spacegame$nebula_minus_server$$20120530094731$lib$server$threading$director$task$block_1$RUBY$retrying_transaction.call(home$spacegame$nebula_minus_server$$20120530094731$lib$server$threading$director$task$block_1$RUBY$retrying_transaction:65535)
org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:121)
org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:96)
org.jruby.runtime.Block.yieldSpecific(Block.java:99)
home.spacegame.nebula_minus_server.$20120530094731.lib.server.dispatcher_event_handler.buffer.method__3$RUBY$wrap(/home/spacegame/nebula-server/20120530094731/lib/server/dispatcher_event_handler/buffer.rb:27)
home$spacegame$nebula_minus_server$$20120530094731$lib$server$dispatcher_event_handler$buffer$method__3$RUBY$wrap.call(home$spacegame$nebula_minus_server$$20120530094731$lib$server$dispatcher_event_handler$buffer$method__3$RUBY$wrap:65535)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:142)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:153)
home.spacegame.nebula_minus_server.$20120530094731.lib.server.threading.director.task.chained_9_rescue_2$RUBY$SYNTHETICretrying_transaction(/home/spacegame/nebula-server/20120530094731/lib/server/threading/director/task.rb:44)
home.spacegame.nebula_minus_server.$20120530094731.lib.server.threading.director.task.method__8$RUBY$retrying_transaction(/home/spacegame/nebula-server/20120530094731/lib/server/threading/director/task.rb:43)
home$spacegame$nebula_minus_server$$20120530094731$lib$server$threading$director$task$method__8$RUBY$retrying_transaction.call(home$spacegame$nebula_minus_server$$20120530094731$lib$server$threading$director$task$method__8$RUBY$retrying_transaction:65535)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:210)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:221)
home.spacegame.nebula_minus_server.$20120530094731.lib.server.dispatcher.callback_task.block_1$RUBY$create(/home/spacegame/nebula-server/20120530094731/lib/server/dispatcher/callback_task.rb:11)
home$spacegame$nebula_minus_server$$20120530094731$lib$server$dispatcher$callback_task$block_1$RUBY$create.call(home$spacegame$nebula_minus_server$$20120530094731$lib$server$dispatcher$callback_task$block_1$RUBY$create:65535)
org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:121)
org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:96)
org.jruby.runtime.Block.yieldSpecific(Block.java:99)
home.spacegame.nebula_minus_server.$20120530094731.lib.app.classes.game_config.thread_local.method__8$RUBY$with_set_scope(/home/spacegame/nebula-server/20120530094731/lib/app/classes/game_config/thread_local.rb:65)
home$spacegame$nebula_minus_server$$20120530094731$lib$app$classes$game_config$thread_local$method__8$RUBY$with_set_scope.call(home$spacegame$nebula_minus_server$$20120530094731$lib$app$classes$game_config$thread_local$method__8$RUBY$with_set_scope:65535)
org.jruby.RubyClass.finvoke(RubyClass.java:592)
org.jruby.RubyBasicObject.send19(RubyBasicObject.java:1704)
org.jruby.RubyKernel.send19(RubyKernel.java:2104)
org.jruby.RubyKernel$s$send19.call(RubyKernel$s$send19.gen:65535)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:210)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:216)
org.jruby.runtime.callsite.CachingCallSite.callVarargs(CachingCallSite.java:113)
home.spacegame.nebula_minus_server.$20120530094731.lib.app.classes.game_config.thread_router.method__2$RUBY$method_missing(/home/spacegame/nebula-server/20120530094731/lib/app/classes/game_config/thread_router.rb:11)
home$spacegame$nebula_minus_server$$20120530094731$lib$app$classes$game_config$thread_router$method__2$RUBY$method_missing.call(home$spacegame$nebula_minus_server$$20120530094731$lib$app$classes$game_config$thread_router$method__2$RUBY$method_missing:65535)
org.jruby.javasupport.util.RuntimeHelpers$MethodMissingMethod.call(RuntimeHelpers.java:497)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:211)
org.jruby.runtime.callsite.CachingCallSite.callMethodMissing(CachingCallSite.java:395)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:319)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:178)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:187)
home.spacegame.nebula_minus_server.$20120530094731.lib.server.dispatcher.callback_task.block_0$RUBY$create(/home/spacegame/nebula-server/20120530094731/lib/server/dispatcher/callback_task.rb:9)
home$spacegame$nebula_minus_server$$20120530094731$lib$server$dispatcher$callback_task$block_0$RUBY$create.call(home$spacegame$nebula_minus_server$$20120530094731$lib$server$dispatcher$callback_task$block_0$RUBY$create:65535)
org.jruby.runtime.CompiledBlock19.yield(CompiledBlock19.java:163)
org.jruby.runtime.CompiledBlock19.call(CompiledBlock19.java:91)
org.jruby.runtime.Block.call(Block.java:89)
org.jruby.RubyProc.call(RubyProc.java:270)
org.jruby.RubyProc.call19(RubyProc.java:258)
org.jruby.RubyProc$i$0$0$call19.call(RubyProc$i$0$0$call19.gen:65535)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:211)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:207)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:167)
home.spacegame.nebula_minus_server.$20120530094731.lib.server.threading.director.task.chained_2_rescue_1$RUBY$SYNTHETICnon_failing(/home/spacegame/nebula-server/20120530094731/lib/server/threading/director/task.rb:15)
home.spacegame.nebula_minus_server.$20120530094731.lib.server.threading.director.task.block_0$RUBY$non_failing(/home/spacegame/nebula-server/20120530094731/lib/server/threading/director/task.rb:14)
home$spacegame$nebula_minus_server$$20120530094731$lib$server$threading$director$task$block_0$RUBY$non_failing.call(home$spacegame$nebula_minus_server$$20120530094731$lib$server$threading$director$task$block_0$RUBY$non_failing:65535)
org.jruby.runtime.CompiledBlock19.yield(CompiledBlock19.java:163)
org.jruby.runtime.CompiledBlock19.call(CompiledBlock19.java:91)
org.jruby.runtime.Block.call(Block.java:89)
org.jruby.RubyProc.call(RubyProc.java:270)
org.jruby.RubyProc.call19(RubyProc.java:258)
org.jruby.RubyProc$i$0$0$call19.call(RubyProc$i$0$0$call19.gen:65535)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:211)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:207)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:167)
home.spacegame.nebula_minus_server.$20120530094731.lib.server.threading.director.task.chained_6_ensure_1$RUBY$ensure(/home/spacegame/nebula-server/20120530094731/lib/server/threading/director/task.rb:32)
home.spacegame.nebula_minus_server.$20120530094731.lib.server.threading.director.task.method__5$RUBY$run(/home/spacegame/nebula-server/20120530094731/lib/server/threading/director/task.rb)
home$spacegame$nebula_minus_server$$20120530094731$lib$server$threading$director$task$method__5$RUBY$run.call(home$spacegame$nebula_minus_server$$20120530094731$lib$server$threading$director$task$method__5$RUBY$run:65535)
home$spacegame$nebula_minus_server$$20120530094731$lib$server$threading$director$task$method__5$RUBY$run.call(home$spacegame$nebula_minus_server$$20120530094731$lib$server$threading$director$task$method__5$RUBY$run:65535)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:167)
home.spacegame.nebula_minus_server.$20120530094731.lib.server.threading.worker.block_1$RUBY$work(/home/spacegame/nebula-server/20120530094731/lib/server/threading/worker.rb:23)
home$spacegame$nebula_minus_server$$20120530094731$lib$server$threading$worker$block_1$RUBY$work.call(home$spacegame$nebula_minus_server$$20120530094731$lib$server$threading$worker$block_1$RUBY$work:65535)
org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:121)
org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:96)
org.jruby.runtime.Block.yieldSpecific(Block.java:99)
home.spacegame.nebula_minus_server.$20120530094731.lib.server.logging.logger.chained_4_rescue_1$RUBY$SYNTHETICblock(/home/spacegame/nebula-server/20120530094731/lib/server/logging/logger.rb:57)
home.spacegame.nebula_minus_server.$20120530094731.lib.server.logging.logger.chained_3_ensure_1$RUBY$ensure(/home/spacegame/nebula-server/20120530094731/lib/server/logging/logger.rb:55)
home.spacegame.nebula_minus_server.$20120530094731.lib.server.logging.logger.method__2$RUBY$block(/home/spacegame/nebula-server/20120530094731/lib/server/logging/logger.rb)
home$spacegame$nebula_minus_server$$20120530094731$lib$server$logging$logger$method__2$RUBY$block.call(home$spacegame$nebula_minus_server$$20120530094731$lib$server$logging$logger$method__2$RUBY$block:65535)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:219)
org.jruby.RubyClass.finvoke(RubyClass.java:611)
org.jruby.RubyBasicObject.send19(RubyBasicObject.java:1710)
org.jruby.RubyKernel.send19(RubyKernel.java:2108)
org.jruby.RubyKernel$s$send19.call(RubyKernel$s$send19.gen:65535)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:244)
org.jruby

Kernel#trap and at_exit behaviour with Bundler

Hi,

I'm not sure if this is a bug or not, but I thought it best to report it just in case.

Given the following Rakefile and running JRuby 1.6.7:

https://gist.github.com/2862745

<script src="https://gist.github.com/2862745.js?file=Rakefile"></script>

Running

bundle exec rake trap
produces:
sleeping
^Ctrapped INT

But after doing bundle install --binstubs

bin/rake trap
sleeping
^Ctrapped INT
here

Notice the at_exit call is actually run in this instance, but not via bundle exec.

Let me know if I can help further if this is an actual issue, if not then please feel free to close.

ffi-rzmq code fails with invokedyamic

Exception in thread "RubyThread-6: /Users/ben/bm3/bm3-core/zmq_ears.rb:133" java.lang.invoke.WrongMethodTypeException: cannot convert MethodHandle(boolean,boolean,boolean,boolean)boolean to (IRubyObject,IRubyObject,IRubyObject,IRubyObject)boolean
at java.lang.invoke.MethodHandle.asType(MethodHandle.java:691)
at java.lang.invoke.MethodHandle.asSpreaderChecks(MethodHandle.java:798)
at java.lang.invoke.MethodHandle.asSpreader(MethodHandle.java:774)
at org.jruby.ext.ffi.jffi.InvokeDynamic.getDirectPointerParameterGuard(InvokeDynamic.java:354)
at org.jruby.ext.ffi.jffi.InvokeDynamic.getMethodHandle(InvokeDynamic.java:43)
at org.jruby.runtime.invokedynamic.InvocationLinker.createFFIHandle(InvocationLinker.java:1354)
at org.jruby.runtime.invokedynamic.InvocationLinker.handleForMethod(InvocationLinker.java:582)
at org.jruby.runtime.invokedynamic.InvocationLinker.tryDispatchDirect(InvocationLinker.java:538)
at org.jruby.runtime.invokedynamic.InvocationLinker.getTarget(InvocationLinker.java:544)
at org.jruby.runtime.invokedynamic.InvocationLinker.invocationFallback(InvocationLinker.java:214)
at rubyjit.ZMQ::CommonSocketBehavior#getsockopt___7D8A78F2D27FDB06B12B08B604D49A4F440E31581438888879.__file(/Users/ben/.rbenv/versions/jruby-1.7.0/lib/ruby/gems/shared/gems/ffi-rzmq-0.9.3/lib/ffi-rzmq/socket.rb:223)
at rubyjit.ZMQ::CommonSocketBehavior#getsockopt___7D8A78F2D27FDB06B12B08B604D49A4F440E31581438888879.__file(/Users/ben/.rbenv/versions/jruby-1.7.0/lib/ruby/gems/shared/gems/ffi-rzmq-0.9.3/lib/ffi-rzmq/socket.rb)
at org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:221)
at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:566)
at org.jruby.runtime.invokedynamic.InvocationLinker.invocationFallback(InvocationLinker.java:183)
at rubyjit.ZMQ::Socket#getsockopt_03DD70E7102817EBF6044AE34733CBE5648F92231438888879.file(/Users/ben/.rbenv/versions/jruby-1.7.0/lib/ruby/gems/shared/gems/ffi-rzmq-0.9.3/lib/ffi-rzmq/socket.rb:373)
at rubyjit.ZMQ::Socket#getsockopt_03DD70E7102817EBF6044AE34733CBE5648F92231438888879.file(/Users/ben/.rbenv/versions/jruby-1.7.0/lib/ruby/gems/shared/gems/ffi-rzmq-0.9.3/lib/ffi-rzmq/socket.rb)
at org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:221)
at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:566)
at org.jruby.runtime.invokedynamic.InvocationLinker.invocationFallback(InvocationLinker.java:183)
at rubyjit.ZMQ::CommonSocketBehavior#more_parts?_552A4B7489E4ABF4839FEA69911EC88C6FD717991438888879.file(/Users/ben/.rbenv/versions/jruby-1.7.0/lib/ruby/gems/shared/gems/ffi-rzmq-0.9.3/lib/ffi-rzmq/socket.rb:171)
at rubyjit.ZMQ::CommonSocketBehavior#more_parts?_552A4B7489E4ABF4839FEA69911EC88C6FD717991438888879.file(/Users/ben/.rbenv/versions/jruby-1.7.0/lib/ruby/gems/shared/gems/ffi-rzmq-0.9.3/lib/ffi-rzmq/socket.rb)
at org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:141)
at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:292)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:135)
[...]

My versions:

jruby 1.7.0.preview1 (ruby-1.9.3-p203) (2012-05-24 d745248) (OpenJDK 64-Bit Server VM 1.7.0-jdk7u6-b09) [darwin-x86_64-java]

The code runs fine with -Xffi.compile.invokedynamic=false and -X-C, fails after 50 calls (which I'm told is the default JIT threshhold) with no args (the stack trace above) and fails on the first ffi-rzmq call with -X+C.

ant dist-bin fails with JDK 7

I just noticed that with HEAD, ant dist-bin is failing when using either OpenJDK 7 or Oracle JDK 7. It builds fine with OpenJDK 6. To reproduce, clone HEAD, and:

$ ant dist-bin
Buildfile: /debian/jruby/build.xml

init:

prepare-bin-jruby:

jar:

init:

create-dirs:

copy-resources:

update-constants:
     [echo] Updating Constants.java
     [echo] ...using git revision = b93299d, tzdata = 2011n
     [copy] Copying 1 file to /debian/jruby/src_gen/org/jruby/runtime
     [copy] Copying 1 file to /debian/jruby/src_gen/org/jruby/runtime

_uc_internal_:

prepare:

compile-annotation-binder:

compile-jruby:
      [apt] Since compiler setting isn't classic or modern, ignoring fork setting.
      [apt] Since compiler setting isn't classic or modern, ignoring fork setting.

emma:

instrument:

generate-method-classes:

_gmc_internal_:

generate-unsafe:

_gu_internal_:

compile:

unzip-native-libs:

jar-jruby:

add-emma-jars:

install-dev-gems:
     [java] Gem.ruby /debian/jruby/bin/jruby
     [java] Gem.bindir /debian/jruby/bin
     [java] Removing rake
     [java] Successfully uninstalled rake-0.9.2.2
     [java] Removing autospec
     [java] Removing rspec
     [java] Successfully uninstalled rspec-core-2.8.0
     [java] Removing htmldiff
     [java] Removing ldiff
     [java] Successfully uninstalled diff-lcs-1.1.3
     [java] INFO:  gem "rspec-expectations" is not installed
     [java] INFO:  gem "rspec-mocks" is not installed
     [java] INFO:  gem "rspec" is not installed
     [java] INFO:  gem "minitest" is not installed
     [java] INFO:  gem "minitest-excludes" is not installed
     [java] Successfully installed rake-0.9.2.2
     [java] Successfully installed rspec-core-2.8.0
     [java] Successfully installed diff-lcs-1.1.3
     [java] Successfully installed rspec-expectations-2.8.0
     [java] Successfully installed rspec-mocks-2.8.0
     [java] Successfully installed rspec-2.8.0
     [java] #
     [java] # A fatal error has been detected by the Java Runtime Environment:
     [java] #
     [java] #  SIGSEGV (0xb) at pc=0x00007f4ff05f8b10, pid=18310, tid=139981265106688
     [java] #
     [java] # JRE version: 7.0_03-b04
     [java] # Java VM: Java HotSpot(TM) 64-Bit Server VM (22.1-b02 mixed mode linux-amd64 compressed oops)
     [java] # Problematic frame:
     [java] # V  [libjvm.so+0x33bb10]  ciMethod::resolve_invoke(ciKlass*, ciKlass*)+0xd0
     [java] #
     [java] # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
     [java] #
     [java] # An error report file with more information is saved as:
     [java] # /debian/jruby/hs_err_pid18310.log
     [java] #
     [java] # If you would like to submit a bug report, please visit:
     [java] #   http://bugreport.sun.com/bugreport/crash.jsp
     [java] #

BUILD FAILED
/debian/jruby/build.xml:831: Java returned: 134

Total time: 1 minute 24 seconds

SIGSEGV, libjruby-cext.so, mysql2

Not sure if this is the right place for this issue, but here goes. Currently trying to get one of our applications up and running under JRuby and Puma in production. I'll try to include as much relevant information/configuration as possible.

I am able to start the application using RAILS_ENV=production and execute requests through a code path that does not hit MySQL. However, when I hit a code path that does go through MySQL, I get a SIGSEGV. The resulting log file is below. jruby-head is current as of c7c7c7d. puma (1.4.0) and mysql2 (0.3.10).

I will see about developing a small isolated application that can be shared to reproduce the issue.

Let me know if you need more information or feel free to close the issue if you believe this an issue outside of JRuby.

Java environment:

dczarnecki@some-machine:~/projects/[redacted]$ java -version
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.13) (6b20-1.9.13-0ubuntu1~10.04.1)
OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode)

Error log:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fd4458bee39, pid=4706, tid=140549657978640
#
# JRE version: 6.0_20-b20
# Java VM: OpenJDK 64-Bit Server VM (19.0-b09 mixed mode linux-amd64 compressed oops)
# Derivative: IcedTea6 1.9.13
# Distribution: Ubuntu 10.04.1 LTS, package 6b20-1.9.13-0ubuntu1~10.04.1
# Problematic frame:
# C  [libjruby-cext.so+0x26e39]
#
# If you would like to submit a bug report, please include
# instructions how to reproduce the bug and visit:
#   https://bugs.launchpad.net/ubuntu/+source/openjdk-6/
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x00000000026f0000):  JavaThread "JRubyWorker-1" daemon [_thread_in_native, id=5111, stack(0x00007fd4444fe000,0x00007fd4446ff000)]

siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x0000000000000038

Registers:
RAX=0x0000000000000028, RBX=0x00007fd445aea640, RCX=0x00007fd445aea580, RDX=0x0000000000000000
RSP=0x00007fd4446fd530, RBP=0x00007fd4446fd560, RSI=0x00007fd4446fd4e0, RDI=0x0000000000000000
R8 =0x0000000002022b40, R9 =0x00007fd445aea640, R10=0x00007fd4446fd4e0, R11=0x00007fd4458db8c0
R12=0x0000000000000000, R13=0x00000000d861a810, R14=0x00007fd4446fd630, R15=0x00000000026f0000
RIP=0x00007fd4458bee39, EFL=0x0000000000010206, CSGSFS=0x0000000000000033, ERR=0x0000000000000004
  TRAPNO=0x000000000000000e

Register to memory mapping:

RAX=0x0000000000000028
0x0000000000000028 is pointing to unknown location

RBX=0x00007fd445aea640
0x00007fd445aea640: _ZTIN5jruby6HandleE+0 in /usr/local/rvm/rubies/jruby-head/lib/native/x86_64-Linux/libjruby-cext.so at 0x00007fd445898000

RCX=0x00007fd445aea580
0x00007fd445aea580: _ZTIN5jruby8RubyDataE+0 in /usr/local/rvm/rubies/jruby-head/lib/native/x86_64-Linux/libjruby-cext.so at 0x00007fd445898000

RDX=0x0000000000000000
0x0000000000000000 is pointing to unknown location

RSP=0x00007fd4446fd530
0x00007fd4446fd530 is pointing into the stack for thread: 0x00000000026f0000
"JRubyWorker-1" daemon prio=10 tid=0x00000000026f0000 nid=0x13f7 runnable [0x00007fd4446fd000]
   java.lang.Thread.State: RUNNABLE

RBP=0x00007fd4446fd560
0x00007fd4446fd560 is pointing into the stack for thread: 0x00000000026f0000
"JRubyWorker-1" daemon prio=10 tid=0x00000000026f0000 nid=0x13f7 runnable [0x00007fd4446fd000]
   java.lang.Thread.State: RUNNABLE

RSI=0x00007fd4446fd4e0
0x00007fd4446fd4e0 is pointing into the stack for thread: 0x00000000026f0000
"JRubyWorker-1" daemon prio=10 tid=0x00000000026f0000 nid=0x13f7 runnable [0x00007fd4446fd000]
   java.lang.Thread.State: RUNNABLE

RDI=0x0000000000000000
0x0000000000000000 is pointing to unknown location

R8 =0x0000000002022b40
0x0000000002022b40 is pointing to unknown location

R9 =0x00007fd445aea640
0x00007fd445aea640: _ZTIN5jruby6HandleE+0 in /usr/local/rvm/rubies/jruby-head/lib/native/x86_64-Linux/libjruby-cext.so at 0x00007fd445898000

R10=0x00007fd4446fd4e0
0x00007fd4446fd4e0 is pointing into the stack for thread: 0x00000000026f0000
"JRubyWorker-1" daemon prio=10 tid=0x00000000026f0000 nid=0x13f7 runnable [0x00007fd4446fd000]
   java.lang.Thread.State: RUNNABLE

R11=0x00007fd4458db8c0
0x00007fd4458db8c0: _ZTSN5jruby9RubyArrayE+0 in /usr/local/rvm/rubies/jruby-head/lib/native/x86_64-Linux/libjruby-cext.so at 0x00007fd445898000

R12=0x0000000000000000
0x0000000000000000 is pointing to unknown location

R13=0x00000000d861a810
{method} 
 - klass: {other class}

R14=0x00007fd4446fd630
0x00007fd4446fd630 is pointing into the stack for thread: 0x00000000026f0000
"JRubyWorker-1" daemon prio=10 tid=0x00000000026f0000 nid=0x13f7 runnable [0x00007fd4446fd000]
   java.lang.Thread.State: RUNNABLE

R15=0x00000000026f0000
"JRubyWorker-1" daemon prio=10 tid=0x00000000026f0000 nid=0x13f7 runnable [0x00007fd4446fd000]
   java.lang.Thread.State: RUNNABLE


Top of Stack: (sp=0x00007fd4446fd530)
0x00007fd4446fd530:   00007fd4446fd560 0000000002022b40
0x00007fd4446fd540:   0024e989a642f36e 0000000000000028
0x00007fd4446fd550:   00007fd4446fd590 00000000d861a810
0x00007fd4446fd560:   00007fd4446fd5b0 00007fd4458bf045
0x00007fd4446fd570:   00007fd4446fd630 00000000026f01c8
0x00007fd4446fd580:   00000000d6a29328 00007fd445156328
0x00007fd4446fd590:   00007fd445aec730 00007fd4446fd600
0x00007fd4446fd5a0:   00007fd445aec730 0000000002022b40
0x00007fd4446fd5b0:   00007fd4446fd610 00007fd44822eca8
0x00007fd4446fd5c0:   00007fd4446fd628 00007fd44822385a
0x00007fd4446fd5d0:   00007fd4446fd5d0 0000000000000000
0x00007fd4446fd5e0:   00007fd4446fd630 00000000d861af00
0x00007fd4446fd5f0:   0000000000000000 00000000d861a810
0x00007fd4446fd600:   0000000000000000 00007fd4446fd630
0x00007fd4446fd610:   00007fd4446fd678 00007fd44822385a
0x00007fd4446fd620:   0000000000000000 00007fd44822bf58
0x00007fd4446fd630:   00000000e1e06a30 00007fd4446fd638
0x00007fd4446fd640:   00000000d863ba60 00007fd4446fd698
0x00007fd4446fd650:   00000000d863be00 0000000000000000
0x00007fd4446fd660:   00000000d863ba90 00007fd4446fd630
0x00007fd4446fd670:   00007fd4446fd698 00007fd4446fd6e0
0x00007fd4446fd680:   00007fd448223d34 0000000000000000
0x00007fd4446fd690:   0000000000000000 00000000e1f655c0
0x00007fd4446fd6a0:   00007fd4446fd6a0 00000000d7c68874
0x00007fd4446fd6b0:   00007fd4446fd6f0 00000000d7c68c30
0x00007fd4446fd6c0:   0000000000000000 00000000d7c68898
0x00007fd4446fd6d0:   00007fd4446fd698 00007fd4446fd6f0
0x00007fd4446fd6e0:   00007fd4446fd738 00007fd448223e8d
0x00007fd4446fd6f0:   00000000f5b2d170 00007fd4446fd6f8
0x00007fd4446fd700:   00000000d7c64785 00007fd4446fd758
0x00007fd4446fd710:   00000000d7c64d40 0000000000000000
0x00007fd4446fd720:   00000000d7c647e8 00007fd4446fd6f0 

Instructions: (pc=0x00007fd4458bee39)
0x00007fd4458bee29:   48 89 c7 e8 bf 55 ff ff 48 89 45 e8 48 8b 45 e8
0x00007fd4458bee39:   48 8b 40 10 48 85 c0 74 15 48 8b 45 e8 48 8b 50 

Stack: [0x00007fd4444fe000,0x00007fd4446ff000],  sp=0x00007fd4446fd530,  free space=2045k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libjruby-cext.so+0x26e39]
C  [libjruby-cext.so+0x27045]  Java_org_jruby_cext_Native_gc+0xa1
j  org.jruby.cext.Native.gc()V+0
j  org.jruby.cext.GC$1.run()V+16
j  java.util.concurrent.Executors$RunnableAdapter.call()Ljava/lang/Object;+4
j  java.util.concurrent.FutureTask$Sync.innerRun()V+29
j  java.util.concurrent.FutureTask.run()V+4
j  java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;)V+1
j  java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run()V+30
j  java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V+46
j  java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5
j  java.lang.Thread.run()V+11
v  ~StubRoutines::call_stub
V  [libjvm.so+0x431958]
V  [libjvm.so+0x4307f8]
V  [libjvm.so+0x4313b3]
V  [libjvm.so+0x4314d7]
V  [libjvm.so+0x482b10]
V  [libjvm.so+0x6e806b]
V  [libjvm.so+0x5e42e2]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  org.jruby.cext.Native.gc()V+0
j  org.jruby.cext.GC$1.run()V+16
j  java.util.concurrent.Executors$RunnableAdapter.call()Ljava/lang/Object;+4
j  java.util.concurrent.FutureTask$Sync.innerRun()V+29
j  java.util.concurrent.FutureTask.run()V+4
j  java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Ljava/util/concurrent/ScheduledThreadPoolExecutor$ScheduledFutureTask;)V+1
j  java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run()V+30
j  java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V+46
j  java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5
j  java.lang.Thread.run()V+11
v  ~StubRoutines::call_stub

---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x00007fd440950800 JavaThread "RubyThread-9: /usr/local/rvm/gems/jruby-head@[redacted]/gems/puma-1.4.0-java/lib/puma/server.rb:204" daemon [_thread_in_native, id=5123, stack(0x00007fd43f7fc000,0x00007fd43f9fd000)]
  0x00007fd44094f800 JavaThread "RubyThread-8: /usr/local/rvm/gems/jruby-head@[redacted]/gems/puma-1.4.0-java/lib/puma/thread_pool.rb:148" daemon [_thread_blocked, id=5122, stack(0x00007fd43f9fd000,0x00007fd43fbfe000)]
  0x00007fd4406f5000 JavaThread "RubyThread-7: /usr/local/rvm/gems/jruby-head@[redacted]/gems/puma-1.4.0-java/lib/puma/thread_pool.rb:55" daemon [_thread_blocked, id=5121, stack(0x00007fd43fbfe000,0x00007fd43fdff000)]
  0x00007fd4406f4000 JavaThread "RubyThread-6: /usr/local/rvm/gems/jruby-head@[redacted]/gems/puma-1.4.0-java/lib/puma/thread_pool.rb:55" daemon [_thread_blocked, id=5120, stack(0x00007fd43fdff000,0x00007fd440000000)]
  0x00007fd44142b000 JavaThread "RubyThread-5: /usr/local/rvm/gems/jruby-head@[redacted]/gems/puma-1.4.0-java/lib/puma/thread_pool.rb:55" daemon [_thread_blocked, id=5119, stack(0x00007fd4440fc000,0x00007fd4442fd000)]
  0x00007fd440411800 JavaThread "RubyThread-4: /usr/local/rvm/gems/jruby-head@[redacted]/gems/puma-1.4.0-java/lib/puma/thread_pool.rb:55" daemon [_thread_in_vm, id=5118, stack(0x00007fd4442fd000,0x00007fd4444fe000)]
=>0x00000000026f0000 JavaThread "JRubyWorker-1" daemon [_thread_in_native, id=5111, stack(0x00007fd4444fe000,0x00007fd4446ff000)]
  0x00007fd4409bb000 JavaThread "ReferenceReaper" daemon [_thread_blocked, id=5098, stack(0x00007fd4446ff000,0x00007fd444900000)]
  0x00007fd440a7f800 JavaThread "JRuby C extension cleanup thread" daemon [_thread_blocked, id=5097, stack(0x00007fd445157000,0x00007fd445358000)]
  0x00007fd440328800 JavaThread "JRubyJIT-2" daemon [_thread_blocked, id=4802, stack(0x00007fd445aee000,0x00007fd445cef000)]
  0x00007fd44045f000 JavaThread "JRubyJIT-1" daemon [_thread_blocked, id=4800, stack(0x00007fd445cef000,0x00007fd445ef0000)]
  0x00007fd44008e000 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=4722, stack(0x00007fd446922000,0x00007fd446b23000)]
  0x00007fd44008b800 JavaThread "CompilerThread1" daemon [_thread_blocked, id=4721, stack(0x00007fd446b23000,0x00007fd446c24000)]
  0x00007fd440088800 JavaThread "CompilerThread0" daemon [_thread_blocked, id=4720, stack(0x00007fd446c24000,0x00007fd446d25000)]
  0x00007fd44007a000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=4719, stack(0x00007fd446d25000,0x00007fd446f26000)]
  0x00007fd440067000 JavaThread "Finalizer" daemon [_thread_blocked, id=4718, stack(0x00007fd446f65000,0x00007fd447166000)]
  0x00007fd440065000 JavaThread "Reference Handler" daemon [_thread_blocked, id=4717, stack(0x00007fd447166000,0x00007fd447367000)]
  0x0000000001af1000 JavaThread "main" [_thread_blocked, id=4710, stack(0x00007fd44be92000,0x00007fd44c093000)]

Other Threads:
  0x00007fd44005e000 VMThread [stack: 0x00007fd447367000,0x00007fd447468000] [id=4716]
  0x00007fd440091000 WatcherThread [stack: 0x00007fd446821000,0x00007fd446922000] [id=4723]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
 PSYoungGen      total 159616K, used 5819K [0x00000000f5960000, 0x0000000100000000, 0x0000000100000000)
  eden space 149120K, 1% used [0x00000000f5960000,0x00000000f5b2d1a8,0x00000000feb00000)
  from space 10496K, 37% used [0x00000000ff5c0000,0x00000000ff9a1d30,0x0000000100000000)
  to   space 10752K, 0% used [0x00000000feb00000,0x00000000feb00000,0x00000000ff580000)
 PSOldGen        total 85376K, used 34037K [0x00000000e0c00000, 0x00000000e5f60000, 0x00000000f5960000)
  object space 85376K, 39% used [0x00000000e0c00000,0x00000000e2d3d438,0x00000000e5f60000)
 PSPermGen       total 38528K, used 38364K [0x00000000d6600000, 0x00000000d8ba0000, 0x00000000e0c00000)
  object space 38528K, 99% used [0x00000000d6600000,0x00000000d8b771c0,0x00000000d8ba0000)

Dynamic libraries:
00400000-00409000 r-xp 00000000 08:05 4467825                            /usr/lib/jvm/java-6-openjdk/jre/bin/java
00608000-00609000 r--p 00008000 08:05 4467825                            /usr/lib/jvm/java-6-openjdk/jre/bin/java
00609000-0060a000 rw-p 00009000 08:05 4467825                            /usr/lib/jvm/java-6-openjdk/jre/bin/java
01ae9000-037f8000 rw-p 00000000 00:00 0                                  [heap]
d6600000-d8ba0000 rw-p 00000000 00:00 0 
d8ba0000-e0c00000 rw-p 00000000 00:00 0 
e0c00000-e5f60000 rw-p 00000000 00:00 0 
e5f60000-f5960000 rw-p 00000000 00:00 0 
f5960000-100000000 rw-p 00000000 00:00 0 
7fd43e9cf000-7fd43e9e5000 r-xp 00000000 08:05 1250                       /lib/libresolv-2.11.1.so
7fd43e9e5000-7fd43ebe4000 ---p 00016000 08:05 1250                       /lib/libresolv-2.11.1.so
7fd43ebe4000-7fd43ebe5000 r--p 00015000 08:05 1250                       /lib/libresolv-2.11.1.so
7fd43ebe5000-7fd43ebe6000 rw-p 00016000 08:05 1250                       /lib/libresolv-2.11.1.so
7fd43ebe6000-7fd43ebe8000 rw-p 00000000 00:00 0 
7fd43ebe8000-7fd43ebed000 r-xp 00000000 08:05 1266                       /lib/libnss_dns-2.11.1.so
7fd43ebed000-7fd43edec000 ---p 00005000 08:05 1266                       /lib/libnss_dns-2.11.1.so
7fd43edec000-7fd43eded000 r--p 00004000 08:05 1266                       /lib/libnss_dns-2.11.1.so
7fd43eded000-7fd43edee000 rw-p 00005000 08:05 1266                       /lib/libnss_dns-2.11.1.so
7fd43edee000-7fd43edfa000 r-xp 00000000 08:05 3601                       /lib/libnss_files-2.11.1.so
7fd43edfa000-7fd43eff9000 ---p 0000c000 08:05 3601                       /lib/libnss_files-2.11.1.so
7fd43eff9000-7fd43effa000 r--p 0000b000 08:05 3601                       /lib/libnss_files-2.11.1.so
7fd43effa000-7fd43effb000 rw-p 0000c000 08:05 3601                       /lib/libnss_files-2.11.1.so
7fd43effb000-7fd43effc000 ---p 00000000 00:00 0 
7fd43effc000-7fd43f7fc000 rw-p 00000000 00:00 0 
7fd43f7fc000-7fd43f7ff000 ---p 00000000 00:00 0 
7fd43f7ff000-7fd43f9fd000 rw-p 00000000 00:00 0 
7fd43f9fd000-7fd43fa00000 ---p 00000000 00:00 0 
7fd43fa00000-7fd43fbfe000 rw-p 00000000 00:00 0 
7fd43fbfe000-7fd43fc01000 ---p 00000000 00:00 0 
7fd43fc01000-7fd43fdff000 rw-p 00000000 00:00 0 
7fd43fdff000-7fd43fe02000 ---p 00000000 00:00 0 
7fd43fe02000-7fd440000000 rw-p 00000000 00:00 0 
7fd440000000-7fd4423e7000 rw-p 00000000 00:00 0 
7fd4423e7000-7fd444000000 ---p 00000000 00:00 0 
7fd4440c7000-7fd4440fc000 r--s 00000000 08:05 94318                      /var/cache/nscd/services
7fd4440fc000-7fd4440ff000 ---p 00000000 00:00 0 
7fd4440ff000-7fd4442fd000 rw-p 00000000 00:00 0 
7fd4442fd000-7fd444300000 ---p 00000000 00:00 0 
7fd444300000-7fd4444fe000 rw-p 00000000 00:00 0 
7fd4444fe000-7fd444501000 ---p 00000000 00:00 0 
7fd444501000-7fd4446ff000 rw-p 00000000 00:00 0 
7fd4446ff000-7fd444702000 ---p 00000000 00:00 0 
7fd444702000-7fd444900000 rw-p 00000000 00:00 0 
7fd444900000-7fd444909000 r-xp 00000000 08:05 1247                       /lib/libcrypt-2.11.1.so
7fd444909000-7fd444b09000 ---p 00009000 08:05 1247                       /lib/libcrypt-2.11.1.so
7fd444b09000-7fd444b0a000 r--p 00009000 08:05 1247                       /lib/libcrypt-2.11.1.so
7fd444b0a000-7fd444b0b000 rw-p 0000a000 08:05 1247                       /lib/libcrypt-2.11.1.so
7fd444b0b000-7fd444b39000 rw-p 00000000 00:00 0 
7fd444b39000-7fd444cfe000 r-xp 00000000 08:05 90997                      /usr/lib/libmysqlclient_r.so.16.0.0
7fd444cfe000-7fd444efe000 ---p 001c5000 08:05 90997                      /usr/lib/libmysqlclient_r.so.16.0.0
7fd444efe000-7fd444f03000 r--p 001c5000 08:05 90997                      /usr/lib/libmysqlclient_r.so.16.0.0
7fd444f03000-7fd444f4d000 rw-p 001ca000 08:05 90997                      /usr/lib/libmysqlclient_r.so.16.0.0
7fd444f4d000-7fd444f4e000 rw-p 00000000 00:00 0 
7fd444f4e000-7fd444f56000 r-xp 00000000 08:05 5963053                    /usr/local/rvm/gems/jruby-head@[redacted]/gems/mysql2-0.3.10/lib/mysql2/mysql2.so
7fd444f56000-7fd445155000 ---p 00008000 08:05 5963053                    /usr/local/rvm/gems/jruby-head@[redacted]/gems/mysql2-0.3.10/lib/mysql2/mysql2.so
7fd445155000-7fd445156000 r--p 00007000 08:05 5963053                    /usr/local/rvm/gems/jruby-head@[redacted]/gems/mysql2-0.3.10/lib/mysql2/mysql2.so
7fd445156000-7fd445157000 rw-p 00008000 08:05 5963053                    /usr/local/rvm/gems/jruby-head@[redacted]/gems/mysql2-0.3.10/lib/mysql2/mysql2.so
7fd445157000-7fd44515a000 ---p 00000000 00:00 0 
7fd44515a000-7fd445358000 rw-p 00000000 00:00 0 
7fd445358000-7fd44536d000 r-xp 00000000 08:05 5911568                    /lib/libgcc_s.so.1
7fd44536d000-7fd44556c000 ---p 00015000 08:05 5911568                    /lib/libgcc_s.so.1
7fd44556c000-7fd44556d000 r--p 00014000 08:05 5911568                    /lib/libgcc_s.so.1
7fd44556d000-7fd44556e000 rw-p 00015000 08:05 5911568                    /lib/libgcc_s.so.1
7fd44556e000-7fd445664000 r-xp 00000000 08:05 30742                      /usr/lib/libstdc++.so.6.0.13
7fd445664000-7fd445864000 ---p 000f6000 08:05 30742                      /usr/lib/libstdc++.so.6.0.13
7fd445864000-7fd44586b000 r--p 000f6000 08:05 30742                      /usr/lib/libstdc++.so.6.0.13
7fd44586b000-7fd44586d000 rw-p 000fd000 08:05 30742                      /usr/lib/libstdc++.so.6.0.13
7fd44586d000-7fd445882000 rw-p 00000000 00:00 0 
7fd445898000-7fd4458ea000 r-xp 00000000 08:05 5943627                    /usr/local/rvm/rubies/jruby-head/lib/native/x86_64-Linux/libjruby-cext.so
7fd4458ea000-7fd445aea000 ---p 00052000 08:05 5943627                    /usr/local/rvm/rubies/jruby-head/lib/native/x86_64-Linux/libjruby-cext.so
7fd445aea000-7fd445aeb000 r--p 00052000 08:05 5943627                    /usr/local/rvm/rubies/jruby-head/lib/native/x86_64-Linux/libjruby-cext.so
7fd445aeb000-7fd445aed000 rw-p 00053000 08:05 5943627                    /usr/local/rvm/rubies/jruby-head/lib/native/x86_64-Linux/libjruby-cext.so
7fd445aed000-7fd445aee000 rw-p 00000000 00:00 0 
7fd445aee000-7fd445af1000 ---p 00000000 00:00 0 
7fd445af1000-7fd445cef000 rw-p 00000000 00:00 0 
7fd445cef000-7fd445cf2000 ---p 00000000 00:00 0 
7fd445cf2000-7fd445ef0000 rw-p 00000000 00:00 0 
7fd445ef0000-7fd445f02000 r-xp 00000000 08:05 5943626                    /usr/local/rvm/rubies/jruby-head/lib/native/x86_64-Linux/libjffi-1.2.so
7fd445f02000-7fd446101000 ---p 00012000 08:05 5943626                    /usr/local/rvm/rubies/jruby-head/lib/native/x86_64-Linux/libjffi-1.2.so
7fd446101000-7fd446102000 rw-p 00011000 08:05 5943626                    /usr/local/rvm/rubies/jruby-head/lib/native/x86_64-Linux/libjffi-1.2.so
7fd446102000-7fd44610a000 r-xp 00000000 08:05 4467796                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libnio.so
7fd44610a000-7fd446309000 ---p 00008000 08:05 4467796                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libnio.so
7fd446309000-7fd44630a000 r--p 00007000 08:05 4467796                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libnio.so
7fd44630a000-7fd44630b000 rw-p 00008000 08:05 4467796                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libnio.so
7fd44630b000-7fd44660b000 rw-p 00000000 00:00 0 
7fd44660b000-7fd446620000 r-xp 00000000 08:05 4467795                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libnet.so
7fd446620000-7fd44681f000 ---p 00015000 08:05 4467795                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libnet.so
7fd44681f000-7fd446820000 r--p 00014000 08:05 4467795                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libnet.so
7fd446820000-7fd446821000 rw-p 00015000 08:05 4467795                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libnet.so
7fd446821000-7fd446822000 ---p 00000000 00:00 0 
7fd446822000-7fd446922000 rw-p 00000000 00:00 0 
7fd446922000-7fd446925000 ---p 00000000 00:00 0 
7fd446925000-7fd446b23000 rw-p 00000000 00:00 0 
7fd446b23000-7fd446b26000 ---p 00000000 00:00 0 
7fd446b26000-7fd446c24000 rw-p 00000000 00:00 0 
7fd446c24000-7fd446c27000 ---p 00000000 00:00 0 
7fd446c27000-7fd446d25000 rw-p 00000000 00:00 0 
7fd446d25000-7fd446d28000 ---p 00000000 00:00 0 
7fd446d28000-7fd446f26000 rw-p 00000000 00:00 0 
7fd446f26000-7fd446f65000 r--p 00000000 08:05 6495                       /usr/lib/locale/en_US.utf8/LC_CTYPE
7fd446f65000-7fd446f68000 ---p 00000000 00:00 0 
7fd446f68000-7fd447166000 rw-p 00000000 00:00 0 
7fd447166000-7fd447169000 ---p 00000000 00:00 0 
7fd447169000-7fd447367000 rw-p 00000000 00:00 0 
7fd447367000-7fd447368000 ---p 00000000 00:00 0 
7fd447368000-7fd447992000 rw-p 00000000 00:00 0 
7fd447992000-7fd447aaf000 r--s 00d04000 08:05 5943608                    /usr/local/rvm/rubies/jruby-head/lib/jruby.jar
7fd447aaf000-7fd447ab1000 r--s 0001d000 08:05 4329440                    /usr/lib/jvm/java-6-openjdk/jre/lib/plugin.jar
7fd447ab1000-7fd447ab6000 r--s 00045000 08:05 4329439                    /usr/lib/jvm/java-6-openjdk/jre/lib/netx.jar
7fd447ab6000-7fd447ae9000 rw-p 00000000 00:00 0 
7fd447ae9000-7fd447c79000 r--s 038c5000 08:05 2771648                    /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar
7fd447c79000-7fd447c7a000 ---p 00000000 00:00 0 
7fd447c7a000-7fd447d7a000 rw-p 00000000 00:00 0 
7fd447d7a000-7fd447d7b000 ---p 00000000 00:00 0 
7fd447d7b000-7fd447e7b000 rw-p 00000000 00:00 0 
7fd447e7b000-7fd447e7c000 ---p 00000000 00:00 0 
7fd447e7c000-7fd447f7c000 rw-p 00000000 00:00 0 
7fd447f7c000-7fd447f7d000 ---p 00000000 00:00 0 
7fd447f7d000-7fd448090000 rw-p 00000000 00:00 0 
7fd448090000-7fd4480d0000 rw-p 00000000 00:00 0 
7fd4480d0000-7fd4480e3000 rw-p 00000000 00:00 0 
7fd4480e3000-7fd448123000 rw-p 00000000 00:00 0 
7fd448123000-7fd44814d000 rw-p 00000000 00:00 0 
7fd44814d000-7fd4481c9000 rw-p 00000000 00:00 0 
7fd4481c9000-7fd44821d000 rw-p 00000000 00:00 0 
7fd44821d000-7fd44821e000 rw-p 00000000 00:00 0 
7fd44821e000-7fd4485fe000 rwxp 00000000 00:00 0 
7fd4485fe000-7fd44b21e000 rw-p 00000000 00:00 0 
7fd44b21e000-7fd44b225000 r-xp 00000000 08:05 4467802                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libzip.so
7fd44b225000-7fd44b424000 ---p 00007000 08:05 4467802                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libzip.so
7fd44b424000-7fd44b425000 r--p 00006000 08:05 4467802                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libzip.so
7fd44b425000-7fd44b426000 rw-p 00007000 08:05 4467802                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libzip.so
7fd44b426000-7fd44b42e000 r-xp 00000000 08:05 4467803                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/native_threads/libhpi.so
7fd44b42e000-7fd44b62d000 ---p 00008000 08:05 4467803                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/native_threads/libhpi.so
7fd44b62d000-7fd44b62e000 r--p 00007000 08:05 4467803                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/native_threads/libhpi.so
7fd44b62e000-7fd44b62f000 rw-p 00008000 08:05 4467803                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/native_threads/libhpi.so
7fd44b62f000-7fd44b646000 r-xp 00000000 08:05 1245                       /lib/libnsl-2.11.1.so
7fd44b646000-7fd44b845000 ---p 00017000 08:05 1245                       /lib/libnsl-2.11.1.so
7fd44b845000-7fd44b846000 r--p 00016000 08:05 1245                       /lib/libnsl-2.11.1.so
7fd44b846000-7fd44b847000 rw-p 00017000 08:05 1245                       /lib/libnsl-2.11.1.so
7fd44b847000-7fd44b849000 rw-p 00000000 00:00 0 
7fd44b849000-7fd44b876000 r-xp 00000000 08:05 4465750                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libjava.so
7fd44b876000-7fd44ba75000 ---p 0002d000 08:05 4465750                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libjava.so
7fd44ba75000-7fd44ba76000 r--p 0002c000 08:05 4465750                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libjava.so
7fd44ba76000-7fd44ba79000 rw-p 0002d000 08:05 4465750                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libjava.so
7fd44ba79000-7fd44ba88000 r-xp 00000000 08:05 4467801                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libverify.so
7fd44ba88000-7fd44bc87000 ---p 0000f000 08:05 4467801                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libverify.so
7fd44bc87000-7fd44bc89000 r--p 0000e000 08:05 4467801                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libverify.so
7fd44bc89000-7fd44bc8a000 rw-p 00010000 08:05 4467801                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libverify.so
7fd44bc8a000-7fd44bc91000 r-xp 00000000 08:05 1249                       /lib/librt-2.11.1.so
7fd44bc91000-7fd44be90000 ---p 00007000 08:05 1249                       /lib/librt-2.11.1.so
7fd44be90000-7fd44be91000 r--p 00006000 08:05 1249                       /lib/librt-2.11.1.so
7fd44be91000-7fd44be92000 rw-p 00007000 08:05 1249                       /lib/librt-2.11.1.so
7fd44be92000-7fd44be95000 ---p 00000000 00:00 0 
7fd44be95000-7fd44c093000 rw-p 00000000 00:00 0 
7fd44c093000-7fd44c115000 r-xp 00000000 08:05 1244                       /lib/libm-2.11.1.so
7fd44c115000-7fd44c314000 ---p 00082000 08:05 1244                       /lib/libm-2.11.1.so
7fd44c314000-7fd44c315000 r--p 00081000 08:05 1244                       /lib/libm-2.11.1.so
7fd44c315000-7fd44c316000 rw-p 00082000 08:05 1244                       /lib/libm-2.11.1.so
7fd44c316000-7fd44cb9c000 r-xp 00000000 08:05 4467804                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/libjvm.so
7fd44cb9c000-7fd44cd9b000 ---p 00886000 08:05 4467804                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/libjvm.so
7fd44cd9b000-7fd44ce11000 r--p 00885000 08:05 4467804                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/libjvm.so
7fd44ce11000-7fd44ce2c000 rw-p 008fb000 08:05 4467804                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server/libjvm.so
7fd44ce2c000-7fd44ce65000 rw-p 00000000 00:00 0 
7fd44ce65000-7fd44cfdf000 r-xp 00000000 08:05 3361                       /lib/libc-2.11.1.so
7fd44cfdf000-7fd44d1de000 ---p 0017a000 08:05 3361                       /lib/libc-2.11.1.so
7fd44d1de000-7fd44d1e2000 r--p 00179000 08:05 3361                       /lib/libc-2.11.1.so
7fd44d1e2000-7fd44d1e3000 rw-p 0017d000 08:05 3361                       /lib/libc-2.11.1.so
7fd44d1e3000-7fd44d1e8000 rw-p 00000000 00:00 0 
7fd44d1e8000-7fd44d1ea000 r-xp 00000000 08:05 40498                      /lib/libdl-2.11.1.so
7fd44d1ea000-7fd44d3ea000 ---p 00002000 08:05 40498                      /lib/libdl-2.11.1.so
7fd44d3ea000-7fd44d3eb000 r--p 00002000 08:05 40498                      /lib/libdl-2.11.1.so
7fd44d3eb000-7fd44d3ec000 rw-p 00003000 08:05 40498                      /lib/libdl-2.11.1.so
7fd44d3ec000-7fd44d3f0000 r-xp 00000000 08:05 2772022                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/jli/libjli.so
7fd44d3f0000-7fd44d5ef000 ---p 00004000 08:05 2772022                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/jli/libjli.so
7fd44d5ef000-7fd44d5f0000 r--p 00003000 08:05 2772022                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/jli/libjli.so
7fd44d5f0000-7fd44d5f1000 rw-p 00004000 08:05 2772022                    /usr/lib/jvm/java-6-openjdk/jre/lib/amd64/jli/libjli.so
7fd44d5f1000-7fd44d609000 r-xp 00000000 08:05 1265                       /lib/libpthread-2.11.1.so
7fd44d609000-7fd44d808000 ---p 00018000 08:05 1265                       /lib/libpthread-2.11.1.so
7fd44d808000-7fd44d809000 r--p 00017000 08:05 1265                       /lib/libpthread-2.11.1.so
7fd44d809000-7fd44d80a000 rw-p 00018000 08:05 1265                       /lib/libpthread-2.11.1.so
7fd44d80a000-7fd44d80e000 rw-p 00000000 00:00 0 
7fd44d80e000-7fd44d824000 r-xp 00000000 08:05 5077                       /lib/libz.so.1.2.3.3
7fd44d824000-7fd44da23000 ---p 00016000 08:05 5077                       /lib/libz.so.1.2.3.3
7fd44da23000-7fd44da24000 r--p 00015000 08:05 5077                       /lib/libz.so.1.2.3.3
7fd44da24000-7fd44da25000 rw-p 00016000 08:05 5077                       /lib/libz.so.1.2.3.3
7fd44da25000-7fd44da45000 r-xp 00000000 08:05 1246                       /lib/ld-2.11.1.so
7fd44da46000-7fd44da54000 r--s 00351000 08:05 4329401                    /usr/lib/jvm/java-6-openjdk/jre/lib/charsets.jar
7fd44da54000-7fd44da55000 r--s 00008000 08:05 5961377                    /usr/local/rvm/gems/jruby-head@[redacted]/gems/json-1.7.3-java/lib/json/ext/generator.jar
7fd44da55000-7fd44da57000 r--s 00006000 08:05 5961378                    /usr/local/rvm/gems/jruby-head@[redacted]/gems/json-1.7.3-java/lib/json/ext/parser.jar
7fd44da57000-7fd44da5a000 r--s 0000f000 08:05 4329419                    /usr/lib/jvm/java-6-openjdk/jre/lib/ext/pulse-java.jar
7fd44da5a000-7fd44da63000 r--s 00065000 08:05 5941575                    /usr/share/java/gnome-java-bridge.jar
7fd44da63000-7fd44dab5000 rw-p 00000000 00:00 0 
7fd44dab5000-7fd44db32000 rw-p 00000000 00:00 0 
7fd44db32000-7fd44db42000 rw-p 00000000 00:00 0 
7fd44db42000-7fd44dbf2000 rw-p 00000000 00:00 0 
7fd44dbf2000-7fd44dc27000 r--s 00000000 08:05 94316                      /var/cache/nscd/passwd
7fd44dc27000-7fd44dc2c000 rw-p 00000000 00:00 0 
7fd44dc2c000-7fd44dc2d000 r--s 00004000 08:05 5963151                    /usr/local/rvm/gems/jruby-head@[redacted]/gems/puma-1.4.0-java/lib/puma/puma_http11.jar
7fd44dc2d000-7fd44dc2e000 r-xp 00000000 00:00 0 
7fd44dc2e000-7fd44dc31000 r--s 0007d000 08:05 4329434                    /usr/lib/jvm/java-6-openjdk/jre/lib/jsse.jar
7fd44dc31000-7fd44dc38000 r--s 00000000 08:05 47007                      /usr/lib/gconv/gconv-modules.cache
7fd44dc38000-7fd44dc40000 rw-s 00000000 08:05 5957895                    /tmp/hsperfdata_dczarnecki/4706
7fd44dc40000-7fd44dc41000 rw-p 00000000 00:00 0 
7fd44dc41000-7fd44dc42000 r--p 00000000 00:00 0 
7fd44dc42000-7fd44dc44000 rw-p 00000000 00:00 0 
7fd44dc44000-7fd44dc45000 r--p 0001f000 08:05 1246                       /lib/ld-2.11.1.so
7fd44dc45000-7fd44dc46000 rw-p 00020000 08:05 1246                       /lib/ld-2.11.1.so
7fd44dc46000-7fd44dc47000 rw-p 00000000 00:00 0 
7fffebf63000-7fffebf78000 rw-p 00000000 00:00 0                          [stack]
7fffebfff000-7fffec000000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]

VM Arguments:
jvm_args: -Djdk.home= -Djruby.home=/usr/local/rvm/rubies/jruby-head -Djruby.script=jruby -Djruby.shell=/bin/sh -Djffi.boot.library.path=/usr/local/rvm/rubies/jruby-head/lib/native/i386-Linux:/usr/local/rvm/rubies/jruby-head/lib/native/x86_64-Linux -Xmx500m -Xss2048k -Djruby.memory.max=500m -Djruby.stack.max=2048k -Xbootclasspath/a:/usr/local/rvm/rubies/jruby-head/lib/jruby.jar -Djruby.cext.enabled=true 
java_command: org/jruby/Main /usr/local/rvm/gems/jruby-head@[redacted]/bin/puma -C config/puma.rb -q
Launcher Type: SUN_STANDARD

Environment Variables:
PATH=/usr/local/rvm/gems/jruby-head@[redacted]/bin:/usr/local/rvm/gems/jruby-head@global/bin:/usr/local/rvm/rubies/jruby-head/bin:/usr/local/rvm/bin:/opt/redis-2.4.2/bin:/opt/redis-2.2.5/bin:/opt/redis-2.0.3/bin:/opt/redis-2.0.4/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
LD_LIBRARY_PATH=/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-6-openjdk/jre/lib/amd64:/usr/lib/jvm/java-6-openjdk/jre/../lib/amd64
SHELL=/bin/bash

Signal Handlers:
SIGSEGV: [libjvm.so+0x7240c0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGBUS: [libjvm.so+0x7240c0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGFPE: [libjvm.so+0x5e08f0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGPIPE: SIG_IGN, sa_mask[0]=0x00001000, sa_flags=0x10000000
SIGXFSZ: [libjvm.so+0x5e08f0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGILL: [libjvm.so+0x5e08f0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGUSR2: [libjvm.so+0x5e2a70], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGHUP: [libjvm.so+0x5e2a70], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGINT: [libjvm.so+0x5e2a70], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGTERM: [libjvm.so+0x5e2a70], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGQUIT: [libjvm.so+0x5e2a70], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004


---------------  S Y S T E M  ---------------

OS:Ubuntu 10.04 (lucid)
uname:Linux 2.6.32-38-server #83-Ubuntu SMP Wed Jan 4 11:26:59 UTC 2012 x86_64
libc:glibc 2.11.1 NPTL 2.11.1 
rlimit: STACK 8192k, CORE 0k, NPROC infinity, NOFILE 65535, AS infinity
load average:2.77 2.52 2.03

/proc/meminfo:
MemTotal:        8195908 kB
MemFree:         1543900 kB
Buffers:          108224 kB
Cached:          2342996 kB
SwapCached:       553032 kB
Active:          3538124 kB
Inactive:        2219728 kB
Active(anon):    2839352 kB
Inactive(anon):  1561908 kB
Active(file):     698772 kB
Inactive(file):   657820 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:      15624184 kB
SwapFree:       14955772 kB
Dirty:               412 kB
Writeback:             0 kB
AnonPages:       3031504 kB
Mapped:          1169000 kB
Shmem:           1094648 kB
Slab:             662664 kB
SReclaimable:     642124 kB
SUnreclaim:        20540 kB
KernelStack:        3560 kB
PageTables:        25028 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    19722136 kB
Committed_AS:    6332376 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      310564 kB
VmallocChunk:   34359423660 kB
HardwareCorrupted:     0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:        7936 kB
DirectMap2M:     8380416 kB


CPU:total 4 (1 cores per cpu, 2 threads per core) family 15 model 4 stepping 3, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ht

Memory: 4k page, physical 8195908k(1543900k free), swap 15624184k(14955772k free)

vm_info: OpenJDK 64-Bit Server VM (19.0-b09) for linux-amd64 JRE (1.6.0_20-b20), built on Feb 17 2012 07:09:45 by "buildd" with gcc 4.4.3

time: Sat Jun 16 23:01:04 2012
elapsed time: 47 seconds

File.readlink cannot read dangling symlinks

Code to reproduce:

File.exist?('/tmp/link-target') and raise "/tmp/link-target exists"

File.symlink('/tmp/link-target', '/tmp/link')

if File.readlink('/tmp/link') == '/tmp/link-target'
  puts "win: could read a dangling symlink"
else
  puts "fail: couldn't readlink a dangling symlink"
end

The JRuby implementation (as of master, right now, and also present in 1.6.7) doesn't handle dangling symlinks terribly well. In part this is a limitation of Java which Java 7 may lift in the NIO area, but isn't resolvable in earlier versions.

In https://github.com/jruby/jruby/blob/master/src/org/jruby/RubyFile.java#L927 the POSIX helper is used to readlink a symlink. This should work fine for a dangling symlink. However...

https://github.com/jruby/jruby/blob/master/src/org/jruby/RubyFile.java#L929 then checks if the file "exists" which, ultimately, turns out to test using the Java File exists method. That method doesn't work "right" with dangling symlinks - it treats them as non-existent.

Sadly, that is a WONTFIX bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4956115

The reasoning is that the API doesn't really expose symbolic links, so there is no "right" answer.

This could probably be worked around in the JRuby runtime by, eg, checking if the POSIX readlink implementation returned null before doing the checks that try to figure out what failed.

This is probably also the root cause of http://jira.codehaus.org/browse/JRUBY-6614

The fix is likely a less hideous version of this:

diff --git i/src/org/jruby/RubyFile.java w/src/org/jruby/RubyFile.java
index 38f107e..9571374 100644
--- i/src/org/jruby/RubyFile.java
+++ w/src/org/jruby/RubyFile.java
@@ -925,17 +925,18 @@ public class RubyFile extends RubyIO implements EncodingCapable {
         
         try {
             String realPath = runtime.getPosix().readlink(path.convertToString().getUnicodeValue());
+            if (realPath == null) {
+                if (!RubyFileTest.exist_p(recv, path).isTrue()) {
+                    throw runtime.newErrnoENOENTError(path.toString());
+                }
         
-            if (!RubyFileTest.exist_p(recv, path).isTrue()) {
-                throw runtime.newErrnoENOENTError(path.toString());
-            }
-        
-            if (!RubyFileTest.symlink_p(recv, path).isTrue()) {
-                throw runtime.newErrnoEINVALError(path.toString());
-            }
+                if (!RubyFileTest.symlink_p(recv, path).isTrue()) {
+                    throw runtime.newErrnoEINVALError(path.toString());
+                }
         
-            if (realPath == null) {
                 //FIXME: When we get JNA3 we need to properly write this to errno.
+                //FIXME: EIO is probably the most sane thing to throw, but you don't have one defined yet.  I
+                throw runtime.newErrnoEINVALError(path.toString());
             }
 
             return runtime.newString(realPath);

Notably, treat any null return as an error, and don't try to guess the errno without doing that.

(Alternately, use the POSIX exist rather than the Java exist to test if the symlink exists but points to a non-existent file. :)

[1.6.7-HEAD] Fixnum -> Integer -> int conversion fails when calling java code

@headius

jruby 1.6.8.dev (ruby-1.9.2-p312) (2012-04-22 985cae8) (Java HotSpot(TM) Client VM 1.7.0) [linux-i386-java]

Method signature:

  def ensurePool(
    galaxyId: Int, ruleset: String,
    freeZones: Int, maxZoneIterations: Int,
    freeHomeSystems: Int, maxHomeIterations: Int
  ): EnsurePoolResult 

These Int get optimized away into int primitives by scala compiler (I think).

Invocation:

?>         Pmg.Runner.ensurePool(
?>           galaxy.id.to_java(:int), galaxy.ruleset,
?>           galaxy.pool_free_zones.to_java(:int),
?>           max_zone_iterations.to_java(:int),
?>           galaxy.pool_free_home_ss.to_java(:int),
?>           max_home_ss_iterations.to_java(:int)
>>         )
TypeError: cannot convert instance of class org.jruby.java.proxies.ConcreteJavaProxy to int
    from (irb):37:in `evaluate'
    from org/jruby/RubyKernel.java:1091:in `eval'
    from org/jruby/RubyKernel.java:1413:in `loop'
    from org/jruby/RubyKernel.java:1200:in `catch'
    from org/jruby/RubyKernel.java:1200:in `catch'
    from /home/arturas/.rvm/rubies/jruby-head-n16/bin/jirb:17:in `(root)'
>> galaxy.id.to_java(:int)
=> #<Java::JavaLang::Integer:0x10f2ab8>
>> galaxy.pool_free_zones.to_java(:int)
=> #<Java::JavaLang::Integer:0xbdcdf7>
>> 
?> max_zone_iterations.to_java(:int)
=> #<Java::JavaLang::Integer:0x11d5422>
>> galaxy.pool_free_home_ss.to_java(:int)
=> #<Java::JavaLang::Integer:0x7bfdaf>
>> max_home_ss_iterations.to_java(:int)
=> #<Java::JavaLang::Integer:0xbdcdf7>

Additional data:
https://gist.github.com/2647953

[1.6.7.2, 1.7] No LocalJumpError in 1.9 mode when returning from a block

This was discovered by a pretty hot topic: rspec/rspec-core#628

And it potentially leads to many hours of frustration ;)

puts 
puts 
puts RUBY_VERSION
puts RUBY_RELEASE_DATE
puts JRUBY_VERSION if defined?(JRUBY_VERSION)
proc { return }.call
arturas@zeus:~/work$ rvm jruby-head,jruby-head-n16,1.9.2,1.9.3 do ruby test.rb 


1.9.3
2012-06-05
1.7.0.preview1


1.9.2
2012-05-27
1.6.8.dev


1.9.2
2012-04-20
test.rb:6:in `block in <main>': unexpected return (LocalJumpError)
    from test.rb:6:in `call'
    from test.rb:6:in `<main>'


1.9.3
2012-04-20
test.rb:6:in `block in <main>': unexpected return (LocalJumpError)
    from test.rb:6:in `call'
    from test.rb:6:in `<main>'

can't install 'multi_json' with jruby on win7

Moved from intridea/multi_json#52

gem install multi_json -v '1.3.4'
System.java:-2:in `arraycopy': java.lang.ArrayIndexOutOfBoundsException
        from DefaultResolver.java:111:in `makeTime'
        from DefaultResolver.java:277:in `create'
        from DefaultResolver.java:317:in `handleScalar'
        from DefaultResolver.java:435:in `orgHandler'
        from DefaultResolver.java:455:in `node_import'
        from DefaultResolver$s$1$0$node_import.gen:65535:in `call'
        from CachingCallSite.java:137:in `call'
        from RubyLoadHandler.java:40:in `handle'
        from Parser.java:300:in `addNode'
        from DefaultYAMLParser.java:676:in `yyparse'
        from Parser.java:290:in `yechtparse'
        from Parser.java:284:in `parse'
        from YParser.java:152:in `load'
        from YParser$s$0$1$load.gen:65535:in `call'
        from JavaMethod.java:630:in `call'
        from DynamicMethod.java:205:in `call'
        from CachingCallSite.java:282:in `cacheAndCall'
        from CachingCallSite.java:139:in `call'
        from CallOneArgNode.java:57:in `interpret'
        from LocalAsgnNode.java:123:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from ASTInterpreter.java:74:in `INTERPRET_METHOD'
        from InterpretedMethod.java:190:in `call'
        from DefaultMethod.java:179:in `call'
        from CachingCallSite.java:282:in `cacheAndCall'
        from CachingCallSite.java:139:in `call'
        from CallOneArgNode.java:57:in `interpret'
        from LocalAsgnNode.java:123:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from BlockNode.java:71:in `interpret'
        from ASTInterpreter.java:74:in `INTERPRET_METHOD'
        from InterpretedMethod.java:190:in `call'
        from DefaultMethod.java:179:in `call'
        from CachingCallSite.java:282:in `cacheAndCall'
        from CachingCallSite.java:139:in `call'
        from CallOneArgNode.java:57:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from RescueNode.java:216:in `executeBody'
        from RescueNode.java:120:in `interpretWithJavaExceptions'
        from RescueNode.java:110:in `interpret'
        from ASTInterpreter.java:74:in `INTERPRET_METHOD'
        from InterpretedMethod.java:190:in `call'
        from DefaultMethod.java:179:in `call'
        from CachingCallSite.java:282:in `cacheAndCall'
        from CachingCallSite.java:139:in `call'
        from FCallOneArgNode.java:36:in `interpret'
        from InstAsgnNode.java:95:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from BlockNode.java:71:in `interpret'
        from EnsureNode.java:96:in `interpret'
        from BeginNode.java:83:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from WhenOneArgNode.java:36:in `whenSlowTest'
        from WhenOneArgNode.java:46:in `when'
        from CaseNode.java:133:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from ASTInterpreter.java:111:in `INTERPRET_BLOCK'
        from InterpretedBlock.java:374:in `evalBlockBody'
        from InterpretedBlock.java:347:in `yield'
        from InterpretedBlock.java:304:in `yield'
        from Block.java:130:in `yield'
        from YieldNode.java:112:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from BlockNode.java:71:in `interpret'
        from ASTInterpreter.java:111:in `INTERPRET_BLOCK'
        from InterpretedBlock.java:374:in `evalBlockBody'
        from InterpretedBlock.java:295:in `yield'
        from InterpretedBlock.java:229:in `yieldSpecific'
        from Block.java:99:in `yieldSpecific'
        from RubyKernel.java:1418:in `loop'
        from RubyKernel$s$0$0$loop.gen:65535:in `call'
        from CachingCallSite.java:272:in `cacheAndCall'
        from CachingCallSite.java:114:in `callBlock'
        from CachingCallSite.java:123:in `callIter'
        from FCallNoArgBlockNode.java:32:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from ASTInterpreter.java:74:in `INTERPRET_METHOD'
        from InterpretedMethod.java:169:in `call'
        from DefaultMethod.java:171:in `call'
        from CachingCallSite.java:272:in `cacheAndCall'
        from CachingCallSite.java:114:in `callBlock'
        from CachingCallSite.java:123:in `callIter'
        from CallNoArgBlockNode.java:64:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from BlockNode.java:71:in `interpret'
        from ASTInterpreter.java:74:in `INTERPRET_METHOD'
        from InterpretedMethod.java:255:in `call'
        from DefaultMethod.java:203:in `call'
        from CachingCallSite.java:312:in `cacheAndCall'
        from CachingCallSite.java:182:in `callBlock'
        from CachingCallSite.java:186:in `call'
        from RubyClass.java:806:in `newInstance'
        from RubyClass$i$newInstance.gen:65535:in `call'
        from JavaMethod.java:283:in `call'
        from WrapperMethod.java:62:in `call'
        from CachingCallSite.java:302:in `cacheAndCall'
        from CachingCallSite.java:173:in `call'
        from FCallTwoArgNode.java:38:in `interpret'
        from LocalAsgnNode.java:123:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from BlockNode.java:71:in `interpret'
        from EnsureNode.java:96:in `interpret'
        from ASTInterpreter.java:74:in `INTERPRET_METHOD'
        from InterpretedMethod.java:255:in `call'
        from DefaultMethod.java:203:in `call'
        from CachingCallSite.java:312:in `cacheAndCall'
        from CachingCallSite.java:182:in `callBlock'
        from CachingCallSite.java:186:in `call'
        from CallTwoArgBlockPassNode.java:62:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from BlockNode.java:71:in `interpret'
        from ASTInterpreter.java:74:in `INTERPRET_METHOD'
        from InterpretedMethod.java:298:in `call'
        from DefaultMethod.java:219:in `call'
        from CachingCallSite.java:332:in `cacheAndCall'
        from CachingCallSite.java:216:in `callBlock'
        from CachingCallSite.java:225:in `callIter'
        from CallThreeArgBlockNode.java:64:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from BlockNode.java:71:in `interpret'
        from ASTInterpreter.java:74:in `INTERPRET_METHOD'
        from InterpretedMethod.java:276:in `call'
        from DefaultMethod.java:211:in `call'
        from CachingCallSite.java:322:in `cacheAndCall'
        from CachingCallSite.java:207:in `call'
        from FCallThreeArgNode.java:40:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from ASTInterpreter.java:111:in `INTERPRET_BLOCK'
        from InterpretedBlock.java:374:in `evalBlockBody'
        from InterpretedBlock.java:347:in `yield'
        from InterpretedBlock.java:304:in `yield'
        from Block.java:130:in `yield'
        from RubyIO.java:1121:in `open'
        from RubyKernel.java:298:in `open'
        from RubyKernel$s$0$2$open.gen:65535:in `call'
        from DynamicMethod.java:217:in `call'
        from CachingCallSite.java:312:in `cacheAndCall'
        from CachingCallSite.java:182:in `callBlock'
        from CachingCallSite.java:191:in `callIter'
        from FCallTwoArgBlockNode.java:34:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from RescueNode.java:216:in `executeBody'
        from RescueNode.java:120:in `interpretWithJavaExceptions'
        from RescueNode.java:110:in `interpret'
        from BeginNode.java:83:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from IfNode.java:119:in `interpret'
        from IfNode.java:119:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from BlockNode.java:71:in `interpret'
        from ASTInterpreter.java:74:in `INTERPRET_METHOD'
        from InterpretedMethod.java:233:in `call'
        from DefaultMethod.java:195:in `call'
        from CachingCallSite.java:302:in `cacheAndCall'
        from CachingCallSite.java:173:in `call'
        from CallTwoArgNode.java:59:in `interpret'
        from InstAsgnNode.java:95:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from RescueNode.java:216:in `executeBody'
        from RescueNode.java:120:in `interpretWithJavaExceptions'
        from RescueNode.java:110:in `interpret'
        from BeginNode.java:83:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from ASTInterpreter.java:74:in `INTERPRET_METHOD'
        from InterpretedMethod.java:147:in `call'
        from DefaultMethod.java:163:in `call'
        from CachingCallSite.java:262:in `cacheAndCall'
        from CachingCallSite.java:105:in `call'
        from VCallNode.java:85:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from BlockNode.java:71:in `interpret'
        from ASTInterpreter.java:74:in `INTERPRET_METHOD'
        from InterpretedMethod.java:255:in `call'
        from DefaultMethod.java:203:in `call'
        from CachingCallSite.java:312:in `cacheAndCall'
        from CachingCallSite.java:182:in `callBlock'
        from CachingCallSite.java:186:in `call'
        from RubyClass.java:806:in `newInstance'
        from RubyClass$i$newInstance.gen:65535:in `call'
        from JavaMethod.java:283:in `call'
        from CachingCallSite.java:302:in `cacheAndCall'
        from CachingCallSite.java:173:in `call'
        from CallTwoArgNode.java:59:in `interpret'
        from DAsgnNode.java:110:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from BlockNode.java:71:in `interpret'
        from ASTInterpreter.java:111:in `INTERPRET_BLOCK'
        from InterpretedBlock.java:374:in `evalBlockBody'
        from InterpretedBlock.java:347:in `yield'
        from InterpretedBlock.java:304:in `yield'
        from Block.java:130:in `yield'
        from RubyArray.java:1595:in `eachCommon'
        from RubyArray.java:1602:in `each'
        from RubyArray$i$0$0$each.gen:65535:in `call'
        from CachingCallSite.java:272:in `cacheAndCall'
        from CachingCallSite.java:114:in `callBlock'
        from CachingCallSite.java:123:in `callIter'
        from CallNoArgBlockNode.java:64:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from BlockNode.java:71:in `interpret'
        from ASTInterpreter.java:74:in `INTERPRET_METHOD'
        from InterpretedMethod.java:233:in `call'
        from DefaultMethod.java:195:in `call'
        from CachingCallSite.java:302:in `cacheAndCall'
        from CachingCallSite.java:173:in `call'
        from CallTwoArgNode.java:59:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from BlockNode.java:71:in `interpret'
        from RescueNode.java:216:in `executeBody'
        from RescueNode.java:120:in `interpretWithJavaExceptions'
        from RescueNode.java:110:in `interpret'
        from BeginNode.java:83:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from ASTInterpreter.java:111:in `INTERPRET_BLOCK'
        from InterpretedBlock.java:374:in `evalBlockBody'
        from InterpretedBlock.java:347:in `yield'
        from InterpretedBlock.java:304:in `yield'
        from Block.java:130:in `yield'
        from RubyArray.java:1595:in `eachCommon'
        from RubyArray.java:1602:in `each'
        from RubyArray$i$0$0$each.gen:65535:in `call'
        from CachingCallSite.java:272:in `cacheAndCall'
        from CachingCallSite.java:114:in `callBlock'
        from CachingCallSite.java:123:in `callIter'
        from CallNoArgBlockNode.java:64:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from BlockNode.java:71:in `interpret'
        from ASTInterpreter.java:74:in `INTERPRET_METHOD'
        from InterpretedMethod.java:147:in `call'
        from DefaultMethod.java:163:in `call'
        from CachingCallSite.java:262:in `cacheAndCall'
        from CachingCallSite.java:105:in `call'
        from VCallNode.java:85:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from IfNode.java:119:in `interpret'
        from IfNode.java:119:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from BlockNode.java:71:in `interpret'
        from ASTInterpreter.java:74:in `INTERPRET_METHOD'
        from InterpretedMethod.java:276:in `call'
        from DefaultMethod.java:211:in `call'
        from CachingCallSite.java:322:in `cacheAndCall'
        from CachingCallSite.java:207:in `call'
        from CallSpecialArgNode.java:71:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from BlockNode.java:71:in `interpret'
        from CaseNode.java:138:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from BlockNode.java:71:in `interpret'
        from ASTInterpreter.java:74:in `INTERPRET_METHOD'
        from InterpretedMethod.java:190:in `call'
        from DefaultMethod.java:179:in `call'
        from CachingCallSite.java:282:in `cacheAndCall'
        from CachingCallSite.java:139:in `call'
        from FCallOneArgNode.java:36:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from RescueNode.java:216:in `executeBody'
        from RescueNode.java:120:in `interpretWithJavaExceptions'
        from RescueNode.java:110:in `interpret'
        from ASTInterpreter.java:74:in `INTERPRET_METHOD'
        from InterpretedMethod.java:190:in `call'
        from DefaultMethod.java:179:in `call'
        from CachingCallSite.java:282:in `cacheAndCall'
        from CachingCallSite.java:139:in `call'
        from CallOneArgNode.java:57:in `interpret'
        from NewlineNode.java:103:in `interpret'
        from BlockNode.java:71:in `interpret'
        from ASTInterpreter.java:74:in `INTERPRET_METHOD'
        from InterpretedMethod.java:190:in `call'
        from DefaultMethod.java:179:in `call'
        from CachingCallSite.java:282:in `cacheAndCall'
        from CachingCallSite.java:139:in `call'
        from D:\tools\jruby-1.6.1\bin\gem:21:in `chained_0_rescue_1$RUBY$SYNTHETIC__file__'
        from D:\tools\jruby-1.6.1\bin\gem:20:in `__file__'
        from D:\tools\jruby-1.6.1\bin\gem:-1:in `load'
        from Ruby.java:671:in `runScript'
        from Ruby.java:575:in `runNormally'
        from Ruby.java:424:in `runFromMain'
        from Main.java:278:in `doRunFromMain'
        from Main.java:198:in `internalRun'
        from Main.java:164:in `run'
        from Main.java:148:in `run'
        from Main.java:128:in `main'

System info

jruby -v
jruby 1.6.1 (ruby-1.8.7-p330) (2011-04-12 85838f6) (Java HotSpot(TM) Client VM 1.6.0_24) [Windows 7-x86-java]
gem -v
1.5.1

[invokedynamic] Instance var sites do not age, do not handle dup'ed classes well

Instance variable call sites currently attempt to cache in a way similar to method calls. However, they do not ever age out (i.e. give up trying to update the indy call site) and as a result sites that encounter a large number of types will either grow the PIC forever or continually blow out the call site cache.

This needs to be fixed for JRuby 1.7, so that megamorphic ivar call sites failover to a simple inline cache.

An example of invokedynamic.log.binding output showing the continual rebinding of ivars is here: http://pastie.org/3855673

ERB parsing in JRuby 1.6.6

We are seeing an issue with the ERB parsing in Jruby when running in a multi-threaded mode. When too many threads are accessing a line of code which reads and parses a file, typically a YML file, an exception is thrown. This can be reproduced by running the following test in a rails console:

threads = []
100.times {threads << Thread.new {p YAML.load(ERB.new(File.read(::Devise.ldap_config || "#{Rails.root}/config/application.yml")).result)[Rails.env]}}

Stack trace:
Exception in thread "RubyThread-1: (irb):2" java.lang.IndexOutOfBoundsException
at java.nio.ByteBuffer.wrap(ByteBuffer.java:352)
at org.jruby.RubyEncoding.decode(RubyEncoding.java:198)
at org.jruby.RubyString.decodeString(RubyString.java:725)
at org.jruby.RubyString.toString(RubyString.java:701)
at org.jruby.RubyString.asJavaString(RubyString.java:1228)
at org.jruby.ext.psych.PsychParser.parse(PsychParser.java:113)
at org.jruby.ext.psych.PsychParser$i$1$0$parse.call(PsychParser$i$1$0$parse.gen:65535)
at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:190)
at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:199)
at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:63)
at org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:190)
at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:199)
at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
at org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:190)
at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:199)
at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
at org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
at org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:212)
at org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:200)
at org.jruby.runtime.Interpreted19Block.call(Interpreted19Block.java:131)
at org.jruby.runtime.Block.call(Block.java:89)
at org.jruby.RubyProc.call(RubyProc.java:270)
at org.jruby.RubyProc.call(RubyProc.java:224)
at org.jruby.internal.runtime.RubyRunnable.run(RubyRunnable.java:95)
at java.lang.Thread.run(Thread.java:662)

rspec related out of bounds array access in multi-character string splitting

Using this code under rspec causes an Java::JavaLang::ArrayIndexOutOfBoundsException under JRuby 1.6.7.2 and JRuby 1.7.0.preview1:

# rspec -fd test.rb
# test.rb
describe "JRuby and RSpec" do
  it "should not explode" do
    "foo#{"\n\n"}".lines("\n\n").map(&:to_s)
  end

  it "should also not explode" do
    ("foo" + "\n\n").lines("\n\n").map(&:to_s)
  end
end

It looks like some oddity triggered by using string interpolation / extension and multi-character separators. You can trigger the same thing by replacing .map(&:to_s) with a block: {|_|}

FileTest.exist{,s}? missing when running Puppet tests under JRuby with --debug

While working on JRuby support for Puppet, I ran into a problem: invoking JRuby to run our tests with debug support fully enabled causes the FileTest.exist? and .exists? methods to be undefined. This breaks more than a few tests. ;)

To run the tests I invoke: ruby --debug -S rspec --debug --fail-fast spec, though it also fails with smaller chunks of the test suite.

This happens in both 1.8 and 1.9 mode, and with JRuby 1.6.7, and 1.7.0.preview1.

It will reproduce with ruby --debug -S rspec --debug --fail-fast spec/integration/node_spec.rb, but not when filtered to the individual tests in that file.

Everything works fine if invoked: ruby -S rspec --debug --fail-fast ... - turning on JRuby level debugging support is what causes the problem. (Well, I kind of assume, exposes something that our code is breaking, actually. :)

Encoding.default_internal = Encoding::UTF_8 messes up File.each

I've verified this issue is fixed on master but exists in 1.6.7 using --1.9 and is quite a deal e.g. when streaming files.
Consider the following snippet:

require 'rubygems'

def walk_file_with_each(file = 'image.jpg')
  lines = []
  file = File.open(file, 'rb')
  file.each { |line| lines << line; puts "enc = #{line.encoding rescue 'not-supported'}" }
  file.close
  lines
end

puts " 1 ------------- "
walk_file_with_each

#require "rails"
#puts "Rails::VERSION = #{Rails::VERSION::STRING}" # 3.2.3, 3.1.4, 3.0.12

Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8 # this fuckes things up !

puts " 2 ------------- "
walk_file_with_each

With a binary file such as duke https://github.com/jruby/jruby-rack/blob/master/src/spec/ruby/files/image.jpg
will first print enc = ASCII-8BIT lines but than enc = UTF-8 which is quite a deal jruby/jruby-rack#107 (since we'll need to do a line.to_java_bytes on such strings to write them down the output stream)

Since Rails 3 a require "rails" executes those lines with 1.9 thus essentially all rails code such as https://gist.github.com/2774140 will stream incorrect (binary) files. I'm able to come up with a "work-around" that will avoid each on File instances while streaming responses and send them directly via a native channel, but than of course users might hit and report it elsewhere their execute file.each over binary data in a Rails app.

Shall they be advised to use jruby-head since there ain't no 1.6 release coming or shall we attempt to monkey-patch File.each in jruby-rack ?

Thanks for any input !

[1.6.7-HEAD] RubyArray/RubyHash/etc cannot be passed into Java code as themselves

@headius

jruby 1.6.8.dev (ruby-1.9.2-p312) (2012-04-22 985cae8) (Java HotSpot(TM) Client VM 1.7.0) [linux-i386-java]

If I have following method signature in Scala:

def calc(formula: String, vars: RubyHash)

I cannot call this:

java_obj.call("foo", {3 => 4})

For example"

>> Java::SpacemuleModulesConfigObjects::FormulaCalc.rubyCalc(3)
NameError: no method 'rubyCalc' for arguments (org.jruby.RubyFixnum) on Java::SpacemuleModulesConfigObjects::FormulaCalc
   available overloads:
     (org.jruby.RubyFixnum)

 NameError: no method 'calc' for arguments (org.jruby.RubyString,org.jruby.RubyHash) on Java::SpacemuleModulesConfigObjects::FormulaCalc
   available overloads: (org.jruby.RubyString,org.jruby.RubyHash)
 WAT?

It seems this happens if even one of the args is tried to pass as their native representation.

Missing Time.to_date?

foo.rb:

require 'time'

puts Time.new.to_date

$ which ruby
/Users/me/.rvm/rubies/ruby-1.9.3-p125/bin/ruby
$ ruby foo.rb
2012-06-22

$ rvm install jruby-1.6.7
$ rvm use jruby-1.6.7
$ which jruby
/Users/me/.rvm/rubies/jruby-1.6.7/bin/jruby
$ jruby --1.9 foo.rb
NoMethodError: undefined method `to_date' for 2012-06-22 11:31:13 -0500:Time
(root) at /Users/me/tmp/foo.rb:3

Persistence - 1.7.0.preview1

JRuby 1.7.0.preview1
Java 7u4

Calling persistent = true on an object's Java class generates an error.

For example, the sample code on https://github.com/jruby/jruby/wiki/Persistence generates the following error:

ArrayList.persistent = true
Java::JavaLang::ClassCastException: org.jruby.RubyClass cannot be cast to org.jruby.java.proxies.JavaProxy
from org.jruby.java.proxies.JavaProxy$INVOKER$i$1$0$persistent.call(JavaProxy$INVOKER$i$1$0$persistent.gen)
from org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
from org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
from org.jruby.ast.AttrAssignOneArgNode.interpret(AttrAssignOneArgNode.java:39)
from org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
from org.jruby.ast.RootNode.interpret(RootNode.java:129)
from org.jruby.evaluator.ASTInterpreter.INTERPRET_EVAL(ASTInterpreter.java:96)
from org.jruby.evaluator.ASTInterpreter.evalWithBinding(ASTInterpreter.java:167)
from org.jruby.RubyKernel.evalCommon(RubyKernel.java:1075)
from org.jruby.RubyKernel.eval19(RubyKernel.java:1037)
from org.jruby.RubyKernel$INVOKER$s$0$3$eval19.call(RubyKernel$INVOKER$s$0$3$eval19.gen)
from org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:186)
from org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:69)
from org.jruby.ast.FCallManyArgsNode.interpret(FCallManyArgsNode.java:60)
from org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
from org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
... 133 levels...
from org.jruby.RubyKernel$INVOKER$s$0$1$load19.call(RubyKernel$INVOKER$s$0$1$load19.gen)
from org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:216)
from org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:212)
from java.lang.invoke.MethodHandle.invokeWithArguments(Unknown Source)
from org.jruby.runtime.invokedynamic.InvocationLinker.invocationFallback(InvocationLinker.java:166)
from ruby.dash_e.file(-e:1)
from ruby.dash_e.load(-e)
from org.jruby.Ruby.runScript(Ruby.java:778)
from org.jruby.Ruby.runScript(Ruby.java:771)
from org.jruby.Ruby.runNormally(Ruby.java:648)
from org.jruby.Ruby.runFromMain(Ruby.java:497)
from org.jruby.Main.doRunFromMain(Main.java:375)
from org.jruby.Main.internalRun(Main.java:264)
from org.jruby.Main.run(Main.java:230)
from org.jruby.Main.run(Main.java:214)
from org.jruby.Main.main(Main.java:194)

Net::HTTP ignores HTTP_PROXY and http.proxyHost

There is an accepted http_proxy setting as an environment variable or setting a JVM System property http.proxyHost. Net::HTTP seems to only register a proxy setting when explicitly declared with Net::HTTP::Proxy#start.

Net::HTTP should check at least the JVM system property when making requests. The doc does mention not using the ENVIRONMENT variable but I believe a special case should be made for a JVM setting.

Class instance variables increase ivar table size on "Class"

This could be a big problem. Whenever an object defines a new instance variable, we store a name/offset mapping for that variable on the nearest concrete class. In the case of normal objects, this means that singletons can bloat up the number of instance variables on their related class, but in practice that does not happen much. Unfortunately on classes, this means that all classes in the system that set class instance variables are increasing the size of the variable table on the Class class, since that is the nearest concrete class.

system ~/projects/jruby $ jirb
>> class Foo
>> @foo = 1
>> end
=> 1
>> require 'jruby'
=> true
>> cls_j = JRuby.reference(Class)
=> Class
>> cls_j.variable_names.to_a
=> ["__size__", "__member__", "@local", "@RCS_ID", "@debug_level", "@foo", "@java_class", "@java_interfaces"]
>> 

In a large app with a lot of class instance variables, this could cause the size of those classes variable arrays to be much larger than they should be.

It's worth noting that the arrays are created lazily, so only classes that set instance vars will ever cause them to be created.

This came up during an IRC discussion about ActiveRecord 3+ scopes, which create singleton classes and set class instance variables extensively.

can't require compiled class in 1.7.dev

Discovered when trying to use warbler with the 'compiled' flag. Warbler creates stub .rb files for each compiled class, with: require __FILE__.sub(/.rb$/, '.class')

Simple test:

a.rb:

puts 'hi'

jruby 1.6.7

bporterfield@ ~/dev$ ruby -e 'require "a"'
hi
bporterfield@ ~/dev$ jrubyc a.rb
bporterfield@ ~/dev$ echo "require __FILE__.sub(/.rb$/, '.class')" > a.rb
bporterfield@ ~/dev$ ruby -e 'require "a"
hi

and in jruby 1.7:

bporterfield@ ~/dev$ ruby -e 'require "a"'
hi
bporterfield@ ~/dev$ jrubyc a.rb
bporterfield@ ~/dev$ echo "require __FILE__.sub(/.rb$/, '.class')" > a.rb
bporterfield@ ~/dev$ ruby -e 'require "a"'
LoadError: no such file to load -- /Users/bporterfield/dev/a.class
  require at org/jruby/RubyKernel.java:991
  require at /Users/bporterfield/.rvm/rubies/jruby-head/lib/ruby/shared/rubygems/custom_require.rb:36
   (root) at /Users/bporterfield/dev/a.rb:1
  require at org/jruby/RubyKernel.java:991
   (root) at /Users/bporterfield/.rvm/rubies/jruby-head/lib/ruby/shared/rubygems/custom_require.rb:1
   (root) at -e:1

Using load instead of require seems to work. Is this expected?

sass/engine.rb can't compile on master/1.9

Have not investigated yet:


system ~/projects/jruby/tmp/braumeister.org $ jruby -X+C -S rspec spec/models/repository_spec.rb 
include_class is deprecated. Use java_import.
include_class is deprecated. Use java_import.
RuntimeError: could not compile and compile mode is 'force': /Users/headius/projects/jruby/lib/ruby/gems/shared/gems/sass-3.1.18/lib/sass/../sass/../sass/engine.rb
          require at org/jruby/RubyKernel.java:991
           (root) at /Users/headius/projects/jruby/lib/ruby/gems/shared/gems/sass-3.1.18/lib/sass/../sass/../sass.rb:71
          require at org/jruby/RubyKernel.java:991
           (root) at /Users/headius/projects/jruby/lib/ruby/gems/shared/gems/sass-3.1.18/lib/sass/../sass/version.rb:3
          require at org/jruby/RubyKernel.java:991
           (root) at /Users/headius/projects/jruby/lib/ruby/gems/shared/gems/sass-3.1.18/lib/sass/../sass.rb:9
          require at org/jruby/RubyKernel.java:991
           (root) at /Users/headius/projects/jruby/lib/ruby/gems/shared/gems/compass-0.12.1/lib/compass/dependencies.rb:6
           (root) at /Users/headius/projects/jruby/lib/ruby/gems/shared/gems/compass-0.12.1/lib/compass/dependencies.rb:2
          require at org/jruby/RubyKernel.java:991
           (root) at /Users/headius/projects/jruby/lib/ruby/gems/shared/gems/compass-0.12.1/lib/compass.rb:5
             each at org/jruby/RubyArray.java:1611
           (root) at /Users/headius/projects/jruby/lib/ruby/gems/shared/gems/compass-0.12.1/lib/compass.rb:4
          require at org/jruby/RubyKernel.java:991
           (root) at /Users/headius/projects/jruby/lib/ruby/gems/shared/gems/compass-rails-1.0.1/lib/compass-rails.rb:1
          require at org/jruby/RubyKernel.java:991
          require at /Users/headius/projects/jruby/lib/ruby/gems/shared/gems/bundler-1.1.3/lib/bundler/runtime.rb:68
             each at org/jruby/RubyArray.java:1611
          require at /Users/headius/projects/jruby/lib/ruby/gems/shared/gems/bundler-1.1.3/lib/bundler/runtime.rb:66
             each at org/jruby/RubyArray.java:1611
          require at /Users/headius/projects/jruby/lib/ruby/gems/shared/gems/bundler-1.1.3/lib/bundler/runtime.rb:55
          require at /Users/headius/projects/jruby/lib/ruby/gems/shared/gems/bundler-1.1.3/lib/bundler.rb:119
           (root) at /Users/headius/projects/jruby/tmp/braumeister.org/config/application.rb:11
          require at org/jruby/RubyKernel.java:991
          require at /Users/headius/projects/jruby/lib/ruby/shared/rubygems/custom_require.rb:36
           (root) at /Users/headius/projects/jruby/tmp/braumeister.org/config/environment.rb:2
          require at org/jruby/RubyKernel.java:991
          require at /Users/headius/projects/jruby/lib/ruby/shared/rubygems/custom_require.rb:36
           (root) at /Users/headius/projects/jruby/tmp/braumeister.org/spec/spec_helper.rb:7
          require at org/jruby/RubyKernel.java:991
          require at /Users/headius/projects/jruby/lib/ruby/shared/rubygems/custom_require.rb:36
           (root) at /Users/headius/projects/jruby/tmp/braumeister.org/spec/models/repository_spec.rb:6
             load at org/jruby/RubyKernel.java:1017
  load_spec_files at /Users/headius/projects/jruby/lib/ruby/gems/shared/gems/rspec-core-2.10.0/lib/rspec/core/configuration.rb:746
              map at org/jruby/RubyArray.java:2350
  load_spec_files at /Users/headius/projects/jruby/lib/ruby/gems/shared/gems/rspec-core-2.10.0/lib/rspec/core/configuration.rb:746
              run at /Users/headius/projects/jruby/lib/ruby/gems/shared/gems/rspec-core-2.10.0/lib/rspec/core/command_line.rb:22
       __ensure__ at /Users/headius/projects/jruby/lib/ruby/gems/shared/gems/rspec-core-2.10.0/lib/rspec/core/runner.rb:69
          autorun at /Users/headius/projects/jruby/lib/ruby/gems/shared/gems/rspec-core-2.10.0/lib/rspec/core/runner.rb:10

10 argument variant of `Time.local` mishandles timezone.

The 10 argument variant of Time.local mishandles the timezone of the created object:

JRuby:
(rdb:1) p Time.local(59, 59, 23, 31, 3, 2011, 4, 90, true, "PDT")
2011-03-31 23:59:59 UTC

MRI 1.9.3:
(rdb:1) p Time.local(59, 59, 23, 31, 3, 2011, 4, 90, true, "PDT")
2011-03-31 23:59:59 -0700

This is present in 1.6.7.2, and also in 1.7.0.preview1

defined?(OpenSSL) does file access in JRuby 1.6.7 branch

Here is the gist with the script to reproduce the issue and strace output: https://gist.github.com/2589054

From what I can tell, it works only on OpenSSL (e.g. Net constant is okay), only as part of the Thread and also requires 'net/https' to be required.

It also seems that jruby 1.7.0 head is working alright. Finally, I have traced the issue to d942651 commit.

Should I be worried about this bug's reintroduction into 1.7? :)

Instance vars on dup'ed classes should cache the same

Instance variables are cached and invalidated by the identity of the nearest concrete class. This works for simple cases, but when the concrete class has been dup'ed from another, even if it does not add any new instance variables, it will cause ivar caches to invalidated.

It appears that ActiveRecord's scope feature uses a lot of dup'ed classes with their own instance variables, preventing any caching. It's unclear whether the dup'ed classes go on to define their own instance vars, but see #155 for evidence that they definitely do not cache properly.

This should be investigated for 1.7. It does not represent a critical issue since we have cached this way for years, but we will have degraded perf until it is improved. Fixing #155 (which I consider critical) will mitigate some of this bug's effects.

LocalJumpError in RABL

In adding RABL support to Sinatra, I saw on travis that JRuby is throwing a LocalJumpError where all other rubies are passing. Error is thrown in both 1.8 & 1.9 mode.

You can run the specs on the RABL branch of my fork of Sinatra.

Please let me know if there's more info I can provide.

Thanks!

Async Issues

In jRuby 1.6.6 and 1.6.7 (but not 1.6.5), the minimal Goliath webserver (see their docs -- this happens whenever the library is used) doesn't flush the output when it responds to requests. This doesn't seem to be a goliath issue, as it works in other versions of Ruby and older versions of jRuby. Thought I'd re-raise the issue here, as it's pretty important to me this get resolved soon.

Also, on a somewhat related note, the "deadlock detection" discussed here:
http://www.ruby-forum.com/topic/197332

Isn't being done in jRuby, it seems -- the same actions that would be a violation in MRI actually lead to intensely unpredictable behavior, including this error message I found:

java(25921,0x11b719000) malloc: *** error for object 0x7fecd1105df0: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug

Which blows my mind. That issue is pretty low-priority for me, though. While it's considered a feature of MRI to find odd use cases, I think they should be supported instead of kicking people out or producing unspecified behavior silently.

Project suggestions

Hi All.

I was using the exec-maven-plugin:exec goal (couldn't get the java goal to work) to invoke jruby (rake and warble). This plugin looks pretty cool, I might try it later and see if the config/pom.xml is more comprehensible.

Meanwhile:

  1. May I suggest you guys talk to the author of the jruby-maven-plugin, also hosted at Codehaus.org, and consider merging?

  2. Also, will you consider using the advocated plugin naming convention i.e. jruby-rake-maven-plugin, thus allowing for mvn jruby-rake:rake [mvn jruby:rake would be better, see point 1) above]

  3. Can you publish the usage details i.e. the Maven generated site, so users don't need to sift through source code to understand how to use this plugin.

ClassNotFoundException: OperatingSystemService BcryptExtService PsychService

I am trying to run a simplest possible padrino application on SQLite3 with only Admin component accessible on "/admin"

and this is what I get

ip-192-168-1-126: [master]! $ bundle exec padrino s -p 4000
SystemStackError: stack level too deep
                  each at org/jruby/RubyArray.java:1615
             safe_load at /Users/dayas/.rbenv/versions/jruby-1.6.7/gemsets/padrino/gems/padrino-core-0.10.5/lib/padrino-core/reloader.rb:164
  require_dependencies at /Users/dayas/.rbenv/versions/jruby-1.6.7/gemsets/padrino/gems/padrino-core-0.10.5/lib/padrino-core/loader.rb:162
                  each at org/jruby/RubyArray.java:1615
  require_dependencies at /Users/dayas/.rbenv/versions/jruby-1.6.7/gemsets/padrino/gems/padrino-core-0.10.5/lib/padrino-core/loader.rb:160
                 load! at /Users/dayas/.rbenv/versions/jruby-1.6.7/gemsets/padrino/gems/padrino-core-0.10.5/lib/padrino-core/loader.rb:67
                (root) at /Users/dayas/RubyProjects/debugging/crap/config/boot.rb:29
               require at org/jruby/RubyKernel.java:1033
                 start at /Users/dayas/RubyProjects/debugging/crap/config/boot.rb:23

Investigating it further show this stack trace

for ruby 1.8 mode https://gist.github.com/7750be11e945d33cf0fa

for ruby 1.9 mode https://gist.github.com/7a2ff6e069e9f7f52fd9

OutOfMemoryError instead of Exceptions

Hello, headius suggested i'd file a bug on this.

Sometimes when my code throws an exception instead it sits for over a minute and then throws an OutOfMemoryError.
This example trace is a ActionView::Template::Error but i guess ActionView catches the error and throws its own.

ActionView::Template::Error (Java heap space):
  java.nio.HeapCharBuffer.<init>(HeapCharBuffer.java:39)
  java.nio.CharBuffer.allocate(CharBuffer.java:312)
  java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:775)
  java.nio.charset.Charset.decode(Charset.java:771)
  org.jruby.RubyEncoding$UTF8Coder.decode(RubyEncoding.java:246)
  org.jruby.RubyEncoding.decodeUTF8(RubyEncoding.java:192)
  org.jruby.RubyString.decodeString(RubyString.java:719)
  org.jruby.RubyString.toString(RubyString.java:701)
  org.jruby.RubyNameError$RubyNameErrorMessage.to_str(RubyNameError.java:120)
  org.jruby.RubyNameError$RubyNameErrorMessage$INVOKER$i$0$0$to_str.call(RubyNameError$RubyNameErrorMessage$INVOKER$i$0$0$to_str.gen)
  org.jruby.RubyClass.finvoke(RubyClass.java:679)
  org.jruby.javasupport.util.RuntimeHelpers.invoke(RuntimeHelpers.java:541)
  org.jruby.RubyBasicObject.callMethod(RubyBasicObject.java:364)
  org.jruby.util.TypeConverter.convertToType(TypeConverter.java:71)
  org.jruby.util.TypeConverter.convertToType(TypeConverter.java:117)
  org.jruby.RubyBasicObject.convertToString(RubyBasicObject.java:758)
  org.jruby.RubyNameError.to_s(RubyNameError.java:202)
  org.jruby.RubyNameError$INVOKER$i$0$0$to_s.call(RubyNameError$INVOKER$i$0$0$to_s.gen)
  org.jruby.RubyClass.finvoke(RubyClass.java:679)
  org.jruby.javasupport.util.RuntimeHelpers.invoke(RuntimeHelpers.java:541)
  org.jruby.RubyBasicObject.callMethod(RubyBasicObject.java:364)
  org.jruby.RubyException.message(RubyException.java:266)
  org.jruby.RubyException$INVOKER$i$0$0$message.call(RubyException$INVOKER$i$0$0$message.gen)
  org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:292)
  org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:135)
  org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:63)
  org.jruby.evaluator.ASTInterpreter.setupArgs(ASTInterpreter.java:357)
  org.jruby.ast.SuperNode.interpret(SuperNode.java:107)
  org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
  org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
  org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
  org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:298)

[1.6.7-HEAD] ConcurrencyError in safe code

Problem

I'm getting ConcurrencyError in monitor synchronized code (inside ActiveRecord).

Code

      # Check-in a database connection back into the pool, indicating that you
      # no longer need this connection.
      #
      # +conn+: an AbstractAdapter object, which was obtained by earlier by
      # calling +checkout+ on this pool.
      def checkin(conn)
        synchronize do
          conn.run_callbacks :checkin do
            conn.expire
            @queue.signal
          end

          release conn
        end
      end

      private

      # This method is only called from #checkin, which is synchronized by +MonitorMixin+.
      def release(conn)
        thread_id = nil

        if @reserved_connections[current_connection_id] == conn
          thread_id = current_connection_id
        else
          thread_id = @reserved_connections.keys.find { |k| # Error in this line
            @reserved_connections[k] == conn
          }
        end

        @reserved_connections.delete thread_id if thread_id
      end

Error

Server launched with: --1.9 -J-Dname=nebula_server -J-Djruby.jit.max=25000 --server -J-XX:+TieredCompilation -J-XX:-UseLoopPredicate -Xbacktrace.style=raw -X+C -J-XX:MaxPermSize=256m

Server has encountered an error!

[2012-04-22 20:44:50.981|worker-world_2|main|error] Threading::Worker crashed!
ConcurrencyError: Detected invalid hash contents due to unsynchronized modifications with concurrent users
java/lang/Thread.java:1567:in `getStackTrace'
org/jruby/runtime/backtrace/TraceType.java:59:in `getBacktraceData'
org/jruby/runtime/backtrace/TraceType.java:111:in `getBacktraceData'
org/jruby/runtime/backtrace/TraceType.java:25:in `getBacktrace'
org/jruby/RubyException.java:160:in `prepareBacktrace'
org/jruby/exceptions/RaiseException.java:205:in `preRaise'
org/jruby/exceptions/RaiseException.java:195:in `preRaise'
org/jruby/exceptions/RaiseException.java:112:in `<init>'
org/jruby/Ruby.java:3381:in `newRaiseException'
org/jruby/Ruby.java:3206:in `newConcurrencyError'
org/jruby/RubyHash.java:1913:in `concurrentModification'
org/jruby/RubyHash.java:1356:in `keys'
org/jruby/RubyHash$i$0$0$keys.gen:65535:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:133:in `call'
/home/spacegame/nebula-server/20120422201639/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:294:in `release'
home$spacegame$nebula_minus_server$$20120422201639$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$connection_adapters$abstract$connection_pool$method__21$RUBY$release:65535:in `call'
home$spacegame$nebula_minus_server$$20120422201639$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$connection_adapters$abstract$connection_pool$method__21$RUBY$release:65535:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:167:in `call'
/home/spacegame/nebula-server/20120422201639/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:282:in `checkin'
home$spacegame$nebula_minus_server$$20120422201639$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$connection_adapters$abstract$connection_pool$block_19$RUBY$checkin:65535:in `call'
org/jruby/runtime/CompiledBlock19.java:121:in `yieldSpecificInternal'
org/jruby/runtime/CompiledBlock19.java:96:in `yieldSpecific'
org/jruby/runtime/Block.java:99:in `yieldSpecific'
/usr/local/rvm/rubies/jruby-head-n16/lib/ruby/1.9/monitor.rb:201:in `__ensure__'
/usr/local/rvm/rubies/jruby-head-n16/lib/ruby/1.9/monitor.rb:200:in `mon_synchronize'
usr$local$rvm$rubies$jruby_minus_head_minus_n16$lib$ruby$$1_dot_9$monitor$method__14$RUBY$mon_synchronize:65535:in `call'
org/jruby/internal/runtime/methods/AliasMethod.java:81:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:142:in `callBlock'
org/jruby/runtime/callsite/CachingCallSite.java:153:in `callIter'
/home/spacegame/nebula-server/20120422201639/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:276:in `checkin'
home$spacegame$nebula_minus_server$$20120422201639$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$connection_adapters$abstract$connection_pool$method__20$RUBY$checkin:65535:in `call'
home$spacegame$nebula_minus_server$$20120422201639$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$connection_adapters$abstract$connection_pool$method__20$RUBY$checkin:65535:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:167:in `call'
/home/spacegame/nebula-server/20120422201639/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:110:in `release_connection'
home$spacegame$nebula_minus_server$$20120422201639$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$connection_adapters$abstract$connection_pool$method__7$RUBY$release_connection:65535:in `call'
org/jruby/internal/runtime/methods/DynamicMethod.java:211:in `call'
org/jruby/internal/runtime/methods/CompiledMethod.java:260:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:167:in `call'
/home/spacegame/nebula-server/20120422201639/vendor/bundle/jruby/1.9/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:121:in `__ensure__'
home$spacegame$nebula_minus_server$$20120422201639$vendor$bundle$jruby$$1_dot_9$gems$activerecord_minus_3_dot_2_dot_3$lib$active_record$connection_adapters$abstract$connection_pool$method__8$RUBY$with_connection:65535:in `call'
org/jruby/internal/runtime/methods/AliasMethod.java:81:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:142:in `callBlock'
org/jruby/runtime/callsite/CachingCallSite.java:153:in `callIter'
/home/spacegame/nebula-server/20120422201639/lib/server/monkey_squad.rb:42:in `with_connection'
home$spacegame$nebula_minus_server$$20120422201639$lib$server$monkey_squad$method__9$RUBY$with_connection:65535:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:142:in `callBlock'
org/jruby/runtime/callsite/CachingCallSite.java:153:in `callIter'
/home/spacegame/nebula-server/20120422201639/lib/server/threading/director/task.rb:31:in `run'
home$spacegame$nebula_minus_server$$20120422201639$lib$server$threading$director$task$method__5$RUBY$run:65535:in `call'
home$spacegame$nebula_minus_server$$20120422201639$lib$server$threading$director$task$method__5$RUBY$run:65535:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:167:in `call'
/home/spacegame/nebula-server/20120422201639/lib/server/threading/worker.rb:21:in `work'
home$spacegame$nebula_minus_server$$20120422201639$lib$server$threading$worker$block_1$RUBY$work:65535:in `call'
org/jruby/runtime/CompiledBlock19.java:121:in `yieldSpecificInternal'
org/jruby/runtime/CompiledBlock19.java:96:in `yieldSpecific'
org/jruby/runtime/Block.java:99:in `yieldSpecific'
/home/spacegame/nebula-server/20120422201639/lib/server/logging/logger.rb:57:in `block'
home$spacegame$nebula_minus_server$$20120422201639$lib$server$logging$logger$method__2$RUBY$block:65535:in `call'
org/jruby/internal/runtime/methods/DynamicMethod.java:219:in `call'
org/jruby/RubyClass.java:611:in `finvoke'
org/jruby/RubyBasicObject.java:1710:in `send19'
org/jruby/RubyKernel.java:2108:in `send19'
org/jruby/RubyKernel$s$send19.gen:65535:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:244:in `callBlock'
org/jruby/runtime/callsite/CachingCallSite.java:250:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:114:in `callVarargs'
/home/spacegame/nebula-server/20120422201639/lib/server/logging/thread_router.rb:7:in `method_missing'
home$spacegame$nebula_minus_server$$20120422201639$lib$server$logging$thread_router$method__1$RUBY$method_missing:65535:in `call'
org/jruby/javasupport/util/RuntimeHelpers.java:497:in `call'
org/jruby/internal/runtime/methods/DynamicMethod.java:219:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:403:in `callMethodMissing'
org/jruby/runtime/callsite/CachingCallSite.java:339:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:212:in `callBlock'
org/jruby/runtime/callsite/CachingCallSite.java:221:in `callIter'
/home/spacegame/nebula-server/20120422201639/lib/server/threading/worker.rb:20:in `work'
home$spacegame$nebula_minus_server$$20120422201639$lib$server$threading$worker$block_0$RUBY$work:65535:in `call'
org/jruby/runtime/CompiledBlock19.java:121:in `yieldSpecificInternal'
org/jruby/runtime/CompiledBlock19.java:96:in `yieldSpecific'
org/jruby/runtime/Block.java:99:in `yieldSpecific'
/home/spacegame/nebula-server/20120422201639/vendor/bundle/jruby/1.9/bundler/gems/celluloid-53b31cb209dd/lib/celluloid/actor.rb:122:in `__ensure__'
home$spacegame$nebula_minus_server$$20120422201639$vendor$bundle$jruby$$1_dot_9$bundler$gems$celluloid_minus_53b31cb209dd$lib$celluloid$actor$method__18$RUBY$exclusive:65535:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:142:in `callBlock'
org/jruby/runtime/callsite/CachingCallSite.java:148:in `call'
/home/spacegame/nebula-server/20120422201639/vendor/bundle/jruby/1.9/bundler/gems/celluloid-53b31cb209dd/lib/celluloid.rb:270:in `exclusive'
home$spacegame$nebula_minus_server$$20120422201639$vendor$bundle$jruby$$1_dot_9$bundler$gems$celluloid_minus_53b31cb209dd$lib$celluloid$method__41$RUBY$exclusive:65535:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:142:in `callBlock'
org/jruby/runtime/callsite/CachingCallSite.java:153:in `callIter'
/home/spacegame/nebula-server/20120422201639/lib/server/threading/worker.rb:19:in `work'
home$spacegame$nebula_minus_server$$20120422201639$lib$server$threading$worker$method__3$RUBY$work:65535:in `call'
org/jruby/RubyClass.java:592:in `finvoke'
org/jruby/RubyBasicObject.java:1704:in `send19'
org/jruby/RubyKernel.java:2104:in `send19'
org/jruby/RubyKernel$s$send19.gen:65535:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:342:in `cacheAndCall'
org/jruby/runtime/callsite/CachingCallSite.java:212:in `callBlock'
org/jruby/runtime/callsite/CachingCallSite.java:216:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:113:in `callVarargs'
/home/spacegame/nebula-server/20120422201639/vendor/bundle/jruby/1.9/bundler/gems/celluloid-53b31cb209dd/lib/celluloid/calls.rb:98:in `dispatch'
home$spacegame$nebula_minus_server$$20120422201639$vendor$bundle$jruby$$1_dot_9$bundler$gems$celluloid_minus_53b31cb209dd$lib$celluloid$calls$method__16$RUBY$dispatch:65535:in `call'
home$spacegame$nebula_minus_server$$20120422201639$vendor$bundle$jruby$$1_dot_9$bundler$gems$celluloid_minus_53b31cb209dd$lib$celluloid$calls$method__16$RUBY$dispatch:65535:in `call'
org/jruby/runtime/callsite/CachingCallSite.java:167:in `call'
/home/spacegame/nebula-server/20120422201639/vendor/bundle/jruby/1.9/bundler/gems/celluloid-53b31cb209dd/lib/celluloid/actor.rb:223:in `handle_message'
home$spacegame$nebula_minus_server$$20120422201639$vendor$bundle$jruby$$1_dot_9$bundler$gems$celluloid_minus_53b31cb209dd$lib$celluloid$actor$block_9$RUBY$handle_message:65535:in `call'
org/jruby/runtime/CompiledBlock19.java:121:in `yieldSpecificInternal'
org/jruby/runtime/CompiledBlock19.java:96:in `yieldSpecific'
org/jruby/runtime/Block.java:99:in `yieldSpecific'
/home/spacegame/nebula-server/20120422201639/vendor/bundle/jruby/1.9/bundler/gems/celluloid-53b31cb209dd/lib/celluloid/task.rb:45:in `initialize'
/home/spacegame/nebula-server/20120422201639/vendor/bundle/jruby/1.9/bundler/gems/celluloid-53b31cb209dd/lib/celluloid/task.rb:44:in `initialize'
home$spacegame$nebula_minus_server$$20120422201639$vendor$bundle$jruby$$1_dot_9$bundler$gems$celluloid_minus_53b31cb209dd$lib$celluloid$task$block_0$RUBY$initialize:65535:in `call'
org/jruby/runtime/CompiledBlock19.java:163:in `yield'
org/jruby/runtime/CompiledBlock19.java:149:in `yield'
org/jruby/runtime/Block.java:146:in `yieldArray'
org/jruby/ext/fiber/ThreadFiber.java:38:in `run'
java/util/concurrent/ThreadPoolExecutor.java:1110:in `runWorker'
java/util/concurrent/ThreadPoolExecutor.java:603:in `run'
java/lang/Thread.java:722:in `run'

Heroku + jirb => readline crashes on backspace

If you use the Heroku buildpack (https://github.com/jruby/heroku-buildpack-jruby) and start a irb session and press backspace it crashes:

$ heroku run jirb
Running jirb attached to terminal... up, run.1
irb(main):001:0> aConsoleReader.java:1414:in `backspace': java.lang.ArithmeticException: / by zero
    from ConsoleReader.java:1436:in `backspace'
    from ConsoleReader.java:628:in `readLine'
    from ConsoleReader.java:457:in `readLine'
    from Readline.java:237:in `s_readline'
    from Readline$s$s_readline.gen:65535:in `call'
    from CachingCallSite.java:332:in `cacheAndCall'
    from CachingCallSite.java:203:in `call'
    from FCallTwoArgNode.java:38:in `interpret'
    from LocalAsgnNode.java:123:in `interpret'
    from IfNode.java:111:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from BlockNode.java:71:in `interpret'
    from ASTInterpreter.java:74:in `INTERPRET_METHOD'
    from InterpretedMethod.java:147:in `call'
    from DefaultMethod.java:183:in `call'
    from CachingCallSite.java:292:in `cacheAndCall'
    from CachingCallSite.java:135:in `call'
    from CallNoArgNode.java:63:in `interpret'
    from DAsgnNode.java:110:in `interpret'
    from IfNode.java:111:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from BlockNode.java:71:in `interpret'
    from ASTInterpreter.java:111:in `INTERPRET_BLOCK'
    from Interpreted19Block.java:212:in `evalBlockBody'
    from Interpreted19Block.java:163:in `yield'
    from Interpreted19Block.java:136:in `yieldSpecific'
    from Block.java:99:in `yieldSpecific'
    from ZYieldNode.java:25:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from EnsureNode.java:96:in `interpret'
    from BeginNode.java:83:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from BlockNode.java:71:in `interpret'
    from ASTInterpreter.java:74:in `INTERPRET_METHOD'
    from InterpretedMethod.java:212:in `call'
    from DefaultMethod.java:207:in `call'
    from CachingCallSite.java:322:in `cacheAndCall'
    from CachingCallSite.java:178:in `callBlock'
    from CachingCallSite.java:187:in `callIter'
    from FCallOneArgBlockNode.java:34:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from ASTInterpreter.java:111:in `INTERPRET_BLOCK'
    from Interpreted19Block.java:212:in `evalBlockBody'
    from Interpreted19Block.java:200:in `yield'
    from Interpreted19Block.java:131:in `call'
    from Block.java:89:in `call'
    from RubyProc.java:270:in `call'
    from RubyProc.java:258:in `call19'
    from RubyProc$i$0$0$call19.gen:65535:in `call'
    from DynamicMethod.java:203:in `call'
    from DynamicMethod.java:199:in `call'
    from CachingCallSite.java:292:in `cacheAndCall'
    from CachingCallSite.java:135:in `call'
    from CallNoArgNode.java:63:in `interpret'
    from LocalAsgnNode.java:123:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from BlockNode.java:71:in `interpret'
    from ASTInterpreter.java:74:in `INTERPRET_METHOD'
    from InterpretedMethod.java:147:in `call'
    from DefaultMethod.java:183:in `call'
    from CachingCallSite.java:292:in `cacheAndCall'
    from CachingCallSite.java:135:in `call'
    from VCallNode.java:86:in `interpret'
    from IfNode.java:111:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from WhileNode.java:131:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from BlockNode.java:71:in `interpret'
    from ASTInterpreter.java:74:in `INTERPRET_METHOD'
    from InterpretedMethod.java:147:in `call'
    from DefaultMethod.java:183:in `call'
    from CachingCallSite.java:292:in `cacheAndCall'
    from CachingCallSite.java:135:in `call'
    from CallNoArgNode.java:63:in `interpret'
    from LocalAsgnNode.java:123:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from BlockNode.java:71:in `interpret'
    from IfNode.java:117:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from BlockNode.java:71:in `interpret'
    from ASTInterpreter.java:74:in `INTERPRET_METHOD'
    from InterpretedMethod.java:190:in `call'
    from DefaultMethod.java:199:in `call'
    from CachingCallSite.java:312:in `cacheAndCall'
    from CachingCallSite.java:169:in `call'
    from CallOneArgNode.java:57:in `interpret'
    from ReturnNode.java:92:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from CaseNode.java:138:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from BlockNode.java:71:in `interpret'
    from ASTInterpreter.java:74:in `INTERPRET_METHOD'
    from InterpretedMethod.java:190:in `call'
    from DefaultMethod.java:199:in `call'
    from CachingCallSite.java:312:in `cacheAndCall'
    from CachingCallSite.java:169:in `call'
    from CallOneArgNode.java:57:in `interpret'
    from LocalAsgnNode.java:123:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from BlockNode.java:71:in `interpret'
    from RescueNode.java:216:in `executeBody'
    from RescueNode.java:120:in `interpretWithJavaExceptions'
    from RescueNode.java:110:in `interpret'
    from BeginNode.java:83:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from WhileNode.java:131:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from BlockNode.java:71:in `interpret'
    from ASTInterpreter.java:74:in `INTERPRET_METHOD'
    from InterpretedMethod.java:147:in `call'
    from DefaultMethod.java:183:in `call'
    from CachingCallSite.java:292:in `cacheAndCall'
    from CachingCallSite.java:135:in `call'
    from VCallNode.java:86:in `interpret'
    from LocalAsgnNode.java:123:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from CallOneArgNode.java:57:in `interpret'
    from OrNode.java:95:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from AndNode.java:91:in `interpret'
    from OrNode.java:95:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from UntilNode.java:116:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from BlockNode.java:71:in `interpret'
    from ASTInterpreter.java:74:in `INTERPRET_METHOD'
    from InterpretedMethod.java:147:in `call'
    from DefaultMethod.java:183:in `call'
    from CachingCallSite.java:292:in `cacheAndCall'
    from CachingCallSite.java:135:in `call'
    from VCallNode.java:86:in `interpret'
    from DAsgnNode.java:110:in `interpret'
    from IfNode.java:111:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from BlockNode.java:71:in `interpret'
    from RescueNode.java:216:in `executeBody'
    from RescueNode.java:120:in `interpretWithJavaExceptions'
    from RescueNode.java:110:in `interpret'
    from BeginNode.java:83:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from ASTInterpreter.java:111:in `INTERPRET_BLOCK'
    from Interpreted19Block.java:212:in `evalBlockBody'
    from Interpreted19Block.java:163:in `yield'
    from Interpreted19Block.java:136:in `yieldSpecific'
    from Block.java:99:in `yieldSpecific'
    from RubyKernel.java:1410:in `loop'
    from RubyKernel$s$0$0$loop.gen:65535:in `call'
    from CachingCallSite.java:302:in `cacheAndCall'
    from CachingCallSite.java:144:in `callBlock'
    from CachingCallSite.java:153:in `callIter'
    from FCallNoArgBlockNode.java:32:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from ASTInterpreter.java:111:in `INTERPRET_BLOCK'
    from Interpreted19Block.java:212:in `evalBlockBody'
    from Interpreted19Block.java:163:in `yield'
    from Block.java:130:in `yield'
    from RubyContinuation.java:106:in `enter'
    from RubyKernel.java:1204:in `rbCatch19Common'
    from RubyKernel.java:1197:in `rbCatch19'
    from RubyKernel$s$rbCatch19.gen:65535:in `call'
    from CachingCallSite.java:322:in `cacheAndCall'
    from CachingCallSite.java:178:in `callBlock'
    from CachingCallSite.java:187:in `callIter'
    from FCallOneArgBlockNode.java:34:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from BlockNode.java:71:in `interpret'
    from ASTInterpreter.java:74:in `INTERPRET_METHOD'
    from InterpretedMethod.java:169:in `call'
    from DefaultMethod.java:191:in `call'
    from CachingCallSite.java:302:in `cacheAndCall'
    from CachingCallSite.java:144:in `callBlock'
    from CachingCallSite.java:153:in `callIter'
    from CallNoArgBlockNode.java:64:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from BlockNode.java:71:in `interpret'
    from ASTInterpreter.java:74:in `INTERPRET_METHOD'
    from InterpretedMethod.java:147:in `call'
    from DefaultMethod.java:183:in `call'
    from CachingCallSite.java:292:in `cacheAndCall'
    from CachingCallSite.java:135:in `call'
    from CallNoArgNode.java:63:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from ASTInterpreter.java:111:in `INTERPRET_BLOCK'
    from Interpreted19Block.java:212:in `evalBlockBody'
    from Interpreted19Block.java:163:in `yield'
    from Block.java:130:in `yield'
    from RubyContinuation.java:106:in `enter'
    from RubyKernel.java:1204:in `rbCatch19Common'
    from RubyKernel.java:1197:in `rbCatch19'
    from RubyKernel$s$rbCatch19.gen:65535:in `call'
    from CachingCallSite.java:322:in `cacheAndCall'
    from CachingCallSite.java:178:in `callBlock'
    from CachingCallSite.java:187:in `callIter'
    from FCallOneArgBlockNode.java:34:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from EnsureNode.java:96:in `interpret'
    from BeginNode.java:83:in `interpret'
    from NewlineNode.java:104:in `interpret'
    from BlockNode.java:71:in `interpret'
    from ASTInterpreter.java:74:in `INTERPRET_METHOD'
    from InterpretedMethod.java:190:in `call'
    from DefaultMethod.java:199:in `call'
    from CachingCallSite.java:312:in `cacheAndCall'
    from CachingCallSite.java:169:in `call'
    from jruby/bin/jirb:13:in `__file__'
    from jruby/bin/jirb:-1:in `load'
    from Ruby.java:697:in `runScript'
    from Ruby.java:690:in `runScript'
    from Ruby.java:597:in `runNormally'
    from Ruby.java:446:in `runFromMain'
    from Main.java:369:in `doRunFromMain'
    from Main.java:258:in `internalRun'
    from Main.java:224:in `run'
    from Main.java:208:in `run'
    from Main.java:188:in `main'

jline thinks that the console is 0 chars wide..

https://github.com/jline/jline/blob/master/src/main/java/jline/ConsoleReader.java#L1414

JFFI .so missing for Solaris x64

JRuby 1.7 is missing the FFI .so for Solaris x64.

I have emailed a working .so file to @enebo and @headius. This should be added as jni/x86_64-SunOS/libjffi-1.2.so .

The existing .so for Solaris works and is required to support 32 bit JVMs. Do not remove it!

[JRUBY-6668] StringScanner#scan_until spins forever on UTF-8 data

While running the tests in the ruby library 'mustache' (link: https://github.com/defunkt/mustache), one test in particular is failing:

https://github.com/defunkt/mustache/blob/master/test/mustache_test.rb#L510-522

JRuby dies calling StringScanner#scan_until here:

https://github.com/defunkt/mustache/blob/master/lib/mustache/parser.rb#L231

You can reproduce the issue with the following:

require 'strscan'
regex = /(^[ \t]*)?\{\{/
text = "<h1>中文 test</h1>\n\n{{> utf8_partial}}\n"
text.force_encoding 'BINARY'
scanner = StringScanner.new(text)
scanner.scan_until(regex) # Fans spin up, and this method never returns.

This seems to happen regardless of whether or not JRuby is in 1.8 or 1.9 mode. I am running this test like so:

JRUBY_OPTS=--1.9 ruby -I"lib:test" test/mustache_test.rb -n test_utf8 -v

I've also run it with: JRUBY_OPTS="--1.9 LC_ALL=en_US.UTF-8"

It appears that this affects UTF-8 characters. If I replace the chinese characters with "foo bar", then there is no problem.

I moved this issue here, as JIRA was butchering the UTF-8:

http://jira.codehaus.org/browse/JRUBY-6668?jwupdated=35361&focusedCommentId=299014#comment-299014

OpenSSL::X509::Certificate and OpenSSL::PKey::RSA constructors don't accept File objects

In Ruby (at least 1.9.x) the OpenSSL::X509::Certificate and OpenSSL::PKey::RSA constructors accept a File or String, such as:

OpenSSL::X509::Certificate.new File.open("/path/to/my.crt")
OpenSSL::X509::Certificate.new File.read("/path/to/my.crt")

However, JRuby (at least 1.6.5 and 1.6.7) only accept a String:

OpenSSL::X509::Certificate.new File.open("/path/to/my.crt")  #=> TypeError: can't convert File into String
OpenSSL::X509::Certificate.new File.read("/path/to/my.crt")   #=> this works

I believe the error created when passing a File to the OpenSSL::X509::Certificate constructor comes from sss which in turn calls OpenSSLImpl. -- the call to "arg.toconvertToString" seems to be the problem.

I believe the error created when passing a File to the OpenSSL::PKey::RSA constructor comes from here -- the call to "arg.toconvertToString" seems to be the problem.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.