Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Java::JavaLang::RuntimeException: org.jruby.runtime.scopes.DynamicScope0 only supports scopes with 0 variables #5431

Closed
dr-itz opened this issue Nov 8, 2018 · 5 comments
Milestone

Comments

@dr-itz
Copy link
Contributor

dr-itz commented Nov 8, 2018

Environment

jruby 9.2.1.0 (2.5.0) 2018-11-06 7b14404 Java HotSpot(TM) 64-Bit Server VM 25.162-b12 on 1.8.0_162-b12 +jit [darwin-x86_64]

Behaviour

Running AR-JDBC (52-stable branch, but doesn't matter) tests:

$ rake test_mysql

I get:

Error: test_releasing_named_savepoints(MySQLTransactionTest)
  Java::JavaLang::RuntimeException: org.jruby.runtime.scopes.DynamicScope0 only supports scopes with 0 variables
org.jruby.runtime.scopes.DynamicScope0.sizeError(Unknown Source)
org.jruby.runtime.scopes.DynamicScope0.setValueZeroDepthZeroVoid(Unknown Source)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.activerecord_minus_5_dot_2_dot_1.lib.active_record.connection_adapters.abstract.connection_pool.RUBY$block$with_new_connections_blocked$6(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:761)
org.jruby.runtime.CompiledIRBlockBody.yieldDirect(CompiledIRBlockBody.java:146)
org.jruby.runtime.IRBlockBody.yieldSpecific(IRBlockBody.java:85)
org.jruby.runtime.Block.yieldSpecific(Block.java:134)
org.jruby.ir.targets.YieldSite.yieldSpecific(YieldSite.java:141)
Users.dritz.$_dot_rvm.rubies.jruby_minus_9_dot_2_dot_1_dot_0.lib.ruby.stdlib.monitor.RUBY$method$mon_synchronize$0(/Users/dritz/.rvm/rubies/jruby-9.2.1.0/lib/ruby/stdlib/monitor.rb:226)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:90)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:123)
org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:85)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:334)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:149)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:156)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.activerecord_minus_5_dot_2_dot_1.lib.active_record.connection_adapters.abstract.connection_pool.invokeOther52:synchronize(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:755)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.activerecord_minus_5_dot_2_dot_1.lib.active_record.connection_adapters.abstract.connection_pool.RUBY$method$with_new_connections_blocked$0(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:755)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:90)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:123)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:334)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:149)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:156)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.activerecord_minus_5_dot_2_dot_1.lib.active_record.connection_adapters.abstract.connection_pool.invokeOther2:with_new_connections_blocked(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:674)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.activerecord_minus_5_dot_2_dot_1.lib.active_record.connection_adapters.abstract.connection_pool.RUBY$method$with_exclusively_acquired_all_connections$0(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:674)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:77)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:100)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:156)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:355)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:180)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:187)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.activerecord_minus_5_dot_2_dot_1.lib.active_record.connection_adapters.abstract.connection_pool.invokeOther13:with_exclusively_acquired_all_connections(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:431)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.activerecord_minus_5_dot_2_dot_1.lib.active_record.connection_adapters.abstract.connection_pool.RUBY$method$disconnect$0(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:431)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:77)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:100)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:156)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:199)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:344)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.activerecord_minus_5_dot_2_dot_1.lib.active_record.connection_adapters.abstract.connection_pool.invokeOther0:disconnect(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:453)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.activerecord_minus_5_dot_2_dot_1.lib.active_record.connection_adapters.abstract.connection_pool.RUBY$method$disconnect!$0(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:453)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:90)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:123)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:191)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:323)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:139)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.activerecord_minus_5_dot_2_dot_1.lib.active_record.connection_adapters.abstract.connection_pool.invokeOther3:disconnect!(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:1025)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.activerecord_minus_5_dot_2_dot_1.lib.active_record.connection_adapters.abstract.connection_pool.RUBY$method$remove_connection$0(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:1025)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:103)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:156)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:199)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.activerecord_minus_5_dot_2_dot_1.lib.active_record.connection_adapters.abstract.connection_pool.invokeOther8:remove_connection(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:952)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.activerecord_minus_5_dot_2_dot_1.lib.active_record.connection_adapters.abstract.connection_pool.RUBY$method$establish_connection$0(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:952)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:103)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:156)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:199)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.activerecord_minus_5_dot_2_dot_1.lib.active_record.connection_handling.invokeOther17:establish_connection(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/activerecord-5.2.1/lib/active_record/connection_handling.rb:60)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.activerecord_minus_5_dot_2_dot_1.lib.active_record.connection_handling.RUBY$method$establish_connection$0(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/activerecord-5.2.1/lib/active_record/connection_handling.rb:60)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:77)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:100)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:156)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:199)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:317)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:72)
org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:80)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:138)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:125)
org.jruby.RubyClass.finvoke(RubyClass.java:502)
org.jruby.RubyBasicObject.send(RubyBasicObject.java:1716)
org.jruby.RubyKernel.send(RubyKernel.java:2172)
org.jruby.RubyKernel$INVOKER$s$send.call(RubyKernel$INVOKER$s$send.gen)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:199)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.test_minus_unit_minus_2_dot_5_dot_5.lib.test.unit.fixture.invokeOther1:send(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/test-unit-2.5.5/lib/test/unit/fixture.rb:202)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.test_minus_unit_minus_2_dot_5_dot_5.lib.test.unit.fixture.RUBY$block$run_fixture_callback$2(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/test-unit-2.5.5/lib/test/unit/fixture.rb:202)
org.jruby.runtime.CompiledIRBlockBody.callDirect(CompiledIRBlockBody.java:136)
org.jruby.runtime.IRBlockBody.call(IRBlockBody.java:77)
org.jruby.runtime.Block.call(Block.java:124)
org.jruby.RubyProc.call(RubyProc.java:286)
org.jruby.RubyProc.call(RubyProc.java:266)
org.jruby.RubyProc$INVOKER$i$0$0$call.call(RubyProc$INVOKER$i$0$0$call.gen)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:195)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:191)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:137)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.test_minus_unit_minus_2_dot_5_dot_5.lib.test.unit.fixture.invokeOther10:call(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/test-unit-2.5.5/lib/test/unit/fixture.rb:207)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.test_minus_unit_minus_2_dot_5_dot_5.lib.test.unit.fixture.RUBY$method$run_fixture_callback$0(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/test-unit-2.5.5/lib/test/unit/fixture.rb:207)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:116)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:189)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:207)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:199)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.test_minus_unit_minus_2_dot_5_dot_5.lib.test.unit.fixture.invokeOther0:run_fixture_callback(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/test-unit-2.5.5/lib/test/unit/fixture.rb:190)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.test_minus_unit_minus_2_dot_5_dot_5.lib.test.unit.fixture.RUBY$block$run_fixture$1(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/test-unit-2.5.5/lib/test/unit/fixture.rb:190)
org.jruby.runtime.CompiledIRBlockBody.yieldDirect(CompiledIRBlockBody.java:146)
org.jruby.runtime.BlockBody.yield(BlockBody.java:114)
org.jruby.runtime.Block.yield(Block.java:165)
org.jruby.RubyArray.each(RubyArray.java:1789)
org.jruby.RubyArray$INVOKER$i$0$0$each.call(RubyArray$INVOKER$i$0$0$each.gen)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:147)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:156)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.test_minus_unit_minus_2_dot_5_dot_5.lib.test.unit.fixture.invokeOther11:each(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/test-unit-2.5.5/lib/test/unit/fixture.rb:186)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.test_minus_unit_minus_2_dot_5_dot_5.lib.test.unit.fixture.RUBY$method$run_fixture$0(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/test-unit-2.5.5/lib/test/unit/fixture.rb:186)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:77)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:100)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:156)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:199)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.test_minus_unit_minus_2_dot_5_dot_5.lib.test.unit.fixture.invokeOther2:run_fixture(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/test-unit-2.5.5/lib/test/unit/fixture.rb:215)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.test_minus_unit_minus_2_dot_5_dot_5.lib.test.unit.fixture.RUBY$method$run_setup$0(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/test-unit-2.5.5/lib/test/unit/fixture.rb:215)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:90)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:123)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:191)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:137)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.test_minus_unit_minus_2_dot_5_dot_5.lib.test.unit.testcase.invokeOther4:run_setup(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/test-unit-2.5.5/lib/test/unit/testcase.rb:430)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.test_minus_unit_minus_2_dot_5_dot_5.lib.test.unit.testcase.RUBY$method$run$0(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/test-unit-2.5.5/lib/test/unit/testcase.rb:430)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:103)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:156)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:178)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:187)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.test_minus_unit_minus_2_dot_5_dot_5.lib.test.unit.testsuite.invokeOther7:run(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/test-unit-2.5.5/lib/test/unit/testsuite.rb:121)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.test_minus_unit_minus_2_dot_5_dot_5.lib.test.unit.testsuite.RUBY$method$run_test$0(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/test-unit-2.5.5/lib/test/unit/testsuite.rb:121)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.test_minus_unit_minus_2_dot_5_dot_5.lib.test.unit.testsuite.RUBY$method$run_test$0$__VARARGS__(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/test-unit-2.5.5/lib/test/unit/testsuite.rb)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:77)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:90)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:80)
org.jruby.ir.instructions.CallBase.interpret(CallBase.java:540)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:362)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:72)
org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:86)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:171)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:158)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:355)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:180)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:187)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.test_minus_unit_minus_2_dot_5_dot_5.lib.test.unit.testsuite.invokeOther7:run(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/test-unit-2.5.5/lib/test/unit/testsuite.rb:121)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.test_minus_unit_minus_2_dot_5_dot_5.lib.test.unit.testsuite.RUBY$method$run_test$0(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/test-unit-2.5.5/lib/test/unit/testsuite.rb:121)
Users.dritz.$_dot_rvm.gems.jruby_minus_9_dot_2_dot_1_dot_0.gems.test_minus_unit_minus_2_dot_5_dot_5.lib.test.unit.testsuite.RUBY$method$run_test$0$__VARARGS__(/Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/test-unit-2.5.5/lib/test/unit/testsuite.rb)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:77)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:90)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:80)
org.jruby.ir.instructions.CallBase.interpret(CallBase.java:540)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:362)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:72)
org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:86)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:171)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:158)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:355)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:180)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:187)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:338)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:72)
org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:86)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:171)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:158)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:199)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:344)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:317)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:72)
org.jruby.ir.interpreter.Interpreter.INTERPRET_BLOCK(Interpreter.java:128)
org.jruby.runtime.MixedModeIRBlockBody.commonYieldPath(MixedModeIRBlockBody.java:151)
org.jruby.runtime.IRBlockBody.yieldSpecific(IRBlockBody.java:89)
org.jruby.runtime.Block.yieldSpecific(Block.java:134)
org.jruby.ir.runtime.IRRuntimeHelpers.yieldSpecific(IRRuntimeHelpers.java:467)
org.jruby.ir.instructions.YieldInstr.interpret(YieldInstr.java:76)
org.jruby.ir.interpreter.StartupInterpreterEngine.processOtherOp(StartupInterpreterEngine.java:178)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:104)
org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:86)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:171)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:158)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:355)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:180)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:187)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:338)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:72)
org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:80)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:138)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:125)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:191)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:323)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:139)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:346)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:72)
org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:80)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:138)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:125)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:191)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:323)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:139)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:346)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:72)
org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:80)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:138)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:125)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:191)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:323)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:139)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:346)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:72)
org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:92)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:204)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:191)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:207)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:365)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:201)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:326)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:72)
org.jruby.ir.interpreter.Interpreter.INTERPRET_BLOCK(Interpreter.java:128)
org.jruby.runtime.MixedModeIRBlockBody.commonYieldPath(MixedModeIRBlockBody.java:151)
org.jruby.runtime.IRBlockBody.yieldSpecific(IRBlockBody.java:89)
org.jruby.runtime.Block.yieldSpecific(Block.java:134)
org.jruby.ir.runtime.IRRuntimeHelpers.yieldSpecific(IRRuntimeHelpers.java:467)
org.jruby.ir.instructions.YieldInstr.interpret(YieldInstr.java:76)
org.jruby.ir.interpreter.StartupInterpreterEngine.processOtherOp(StartupInterpreterEngine.java:178)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:104)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:105)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:92)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:301)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:82)
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:89)
org.jruby.ir.instructions.CallBase.interpret(CallBase.java:537)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:362)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:72)
org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:80)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:138)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:125)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:191)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:323)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:139)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:346)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:72)
org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:80)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:138)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:125)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:191)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:323)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:139)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:346)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:72)
org.jruby.ir.interpreter.Interpreter.INTERPRET_BLOCK(Interpreter.java:128)
org.jruby.runtime.MixedModeIRBlockBody.commonYieldPath(MixedModeIRBlockBody.java:151)
org.jruby.runtime.IRBlockBody.call(IRBlockBody.java:79)
org.jruby.runtime.Block.call(Block.java:124)
org.jruby.RubyProc.call(RubyProc.java:286)
org.jruby.RubyProc.call(RubyProc.java:270)
org.jruby.Ruby.tearDown(Ruby.java:3313)
org.jruby.Ruby.tearDown(Ruby.java:3286)
org.jruby.Main.internalRun(Main.java:311)
org.jruby.Main.run(Main.java:234)
org.jruby.Main.main(Main.java:206)
@dr-itz
Copy link
Contributor Author

dr-itz commented Nov 8, 2018

From the stack trace: /Users/dritz/.rvm/gems/jruby-9.2.1.0/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:761 would be this:

 746         def with_new_connections_blocked
 747           synchronize do
 748             @threads_blocking_new_connections += 1
 749           end
 750 
 751           yield
 752         ensure
 753           num_new_conns_required = 0
 754 
 755           synchronize do
 756             @threads_blocking_new_connections -= 1
 757 
 758             if @threads_blocking_new_connections.zero?
 759               @available.clear
 760 
 761               num_new_conns_required = num_waiting_in_queue                                                              
 762 
 763               @connections.each do |conn|
 764                 next if conn.in_use?
 765 
 766                 @available.add conn
 767                 num_new_conns_required -= 1
 768               end
 769             end
 770           end
 771 
 772           bulk_make_new_connections(num_new_conns_required) if num_new_conns_required > 0
 773         end

@dr-itz
Copy link
Contributor Author

dr-itz commented Nov 8, 2018

9.2.2.0 fails with the same

jruby 9.2.2.0 (2.5.0) 2018-11-08 fc462a4 Java HotSpot(TM) 64-Bit Server VM 25.162-b12 on 1.8.0_162-b12 +jit [darwin-x86_64]

@headius headius added this to the JRuby 9.2.3.0 milestone Nov 8, 2018
@headius
Copy link
Member

headius commented Nov 8, 2018

The problem here is that it appears to be trying to access the num_new_conns_required local variable within the block as though it were defined in that block, rather than walking up a level to the ensure block where the variable was actually defined.

We have not yet been able to reproduce locally.

@dr-itz Try running again with each of the following two flags in JRUBY_OPTS in separate runs: --dev and -Xjit.threshold=0. The first may not fail. The second will show additional context.

@headius
Copy link
Member

headius commented Nov 8, 2018

I believe we've found the problem in some late-merged optimization code that we did not expect to affect normal execution. @enebo is putting together a fix.

@dr-itz
Copy link
Contributor Author

dr-itz commented Nov 8, 2018

That was fast, thanks. I can confirm it's fixed

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants