Coming up with a way to report a JRuby bug.

16 views
Skip to first unread message

Elliot Shank

unread,
May 23, 2016, 2:21:18 PM5/23/16
to Celluloid
I get the stack trace below with both v9.1.0.0 and v9.1.1.0 of JRuby; works fine with v9.0.5.0.

Given that none of my code is on the stack and everything is going through Celluloid dynamic stuff, I'm not sure what to report.

The JRuby code at the site of the blowup: https://github.com/jruby/jruby/blob/master/core/src/main/java/org/jruby/ext/socket/RubyUDPSocket.java#L223


Java::JavaLang::ArrayIndexOutOfBoundsException: 2
org.jruby.ext.socket.RubyUDPSocket.recvfrom_nonblock(RubyUDPSocket.java:223)
org.jruby.ext.socket.RubyUDPSocket$INVOKER$i$recvfrom_nonblock.call(RubyUDPSocket$INVOKER$i$recvfrom_nonblock.gen)
org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:724)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:205)
org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:740)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:273)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:79)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:83)
org.jruby.ir.instructions.CallBase.interpret(CallBase.java:423)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:348)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:77)
org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:86)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:179)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:165)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:197)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:313)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:163)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:316)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:77)
org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:86)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:179)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:165)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:197)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:313)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:163)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:316)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:77)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:109)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:95)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:273)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:79)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:83)
org.jruby.ir.instructions.CallBase.interpret(CallBase.java:423)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:348)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:77)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:109)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:95)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:273)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:79)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:83)
org.jruby.RubyClass.newInstance(RubyClass.java:904)
org.jruby.RubyClass$INVOKER$i$newInstance.call(RubyClass$INVOKER$i$newInstance.gen)
org.jruby.ir.runtime.IRRuntimeHelpers.classSuper(IRRuntimeHelpers.java:975)
org.jruby.ir.instructions.ClassSuperInstr.interpret(ClassSuperInstr.java:65)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:348)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:77)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:109)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:95)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:273)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:79)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:83)
org.jruby.ir.instructions.CallBase.interpret(CallBase.java:423)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:348)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:77)
org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:80)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:144)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:130)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:189)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:293)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:131)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:332)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:77)
org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:80)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:144)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:130)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:189)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:293)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:131)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:332)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:77)
org.jruby.ir.interpreter.Interpreter.INTERPRET_BLOCK(Interpreter.java:132)
org.jruby.runtime.MixedModeIRBlockBody.commonYieldPath(MixedModeIRBlockBody.java:148)
org.jruby.runtime.IRBlockBody.yieldSpecific(IRBlockBody.java:77)
org.jruby.runtime.Block.yieldSpecific(Block.java:136)
org.jruby.ir.runtime.IRRuntimeHelpers.yieldSpecific(IRRuntimeHelpers.java:480)
org.jruby.ir.instructions.YieldInstr.interpret(YieldInstr.java:74)
org.jruby.ir.interpreter.StartupInterpreterEngine.processOtherOp(StartupInterpreterEngine.java:191)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:115)
org.jruby.ir.interpreter.InterpreterEngine.interpret(InterpreterEngine.java:86)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:179)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:165)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:323)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:173)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:177)
org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:325)
org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:77)
org.jruby.internal.runtime.methods.MixedModeIRMethod.INTERPRET_METHOD(MixedModeIRMethod.java:109)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:95)
org.jruby.RubyClass.finvoke(RubyClass.java:543)
org.jruby.RubyBasicObject.send19(RubyBasicObject.java:1640)
org.jruby.RubyBasicObject$INVOKER$i$send19.call(RubyBasicObject$INVOKER$i$send19.gen)
org.jruby.RubyKernel.public_send(RubyKernel.java:1812)
org.jruby.RubyKernel$INVOKER$s$0$0$public_send.call(RubyKernel$INVOKER$s$0$0$public_send.gen)
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:273)
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:79)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:83)
install.path.gems.celluloid_minus_0_dot_17_dot_3.lib.celluloid.calls.invokeOther6:public_send(/install/path/gems/celluloid-0.17.3/lib/celluloid/calls.rb)
install.path.gems.celluloid_minus_0_dot_17_dot_3.lib.celluloid.calls.RUBY$method$dispatch$0(/install/path/gems/celluloid-0.17.3/lib/celluloid/calls.rb:28)
org.jruby.internal.runtime.methods.CompiledIRMethod.invokeExact(CompiledIRMethod.java:219)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:92)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:93)
org.jruby.ir.runtime.IRRuntimeHelpers.instanceSuper(IRRuntimeHelpers.java:960)
org.jruby.ir.runtime.IRRuntimeHelpers.instanceSuperSplatArgs(IRRuntimeHelpers.java:951)
install.path.gems.celluloid_minus_0_dot_17_dot_3.lib.celluloid.call.sync.invokeSuper14:dispatch(/install/path/gems/celluloid-0.17.3/lib/celluloid/call/sync.rb)
install.path.gems.celluloid_minus_0_dot_17_dot_3.lib.celluloid.call.sync.RUBY$method$dispatch$0(/install/path/gems/celluloid-0.17.3/lib/celluloid/call/sync.rb:16)
org.jruby.internal.runtime.methods.CompiledIRMethod.invokeExact(CompiledIRMethod.java:245)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:110)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:163)
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:197)
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:161)
install.path.gems.celluloid_minus_0_dot_17_dot_3.lib.celluloid.cell.invokeOther13:dispatch(/install/path/gems/celluloid-0.17.3/lib/celluloid/cell.rb)
install.path.gems.celluloid_minus_0_dot_17_dot_3.lib.celluloid.cell.RUBY$block$dispatch$2(/install/path/gems/celluloid-0.17.3/lib/celluloid/cell.rb:50)
org.jruby.runtime.CompiledIRBlockBody.yieldDirect(CompiledIRBlockBody.java:156)
org.jruby.runtime.BlockBody.yield(BlockBody.java:110)
org.jruby.runtime.Block.yield(Block.java:167)
org.jruby.ir.runtime.IRRuntimeHelpers.yield(IRRuntimeHelpers.java:476)
org.jruby.ir.targets.YieldSite.yield(YieldSite.java:87)
install.path.gems.celluloid_minus_0_dot_17_dot_3.lib.celluloid.cell.RUBY$block$task$1(/install/path/gems/celluloid-0.17.3/lib/celluloid/cell.rb:76)
org.jruby.runtime.CompiledIRBlockBody.yieldDirect(CompiledIRBlockBody.java:156)
org.jruby.runtime.IRBlockBody.yieldSpecific(IRBlockBody.java:73)
org.jruby.runtime.Block.yieldSpecific(Block.java:136)
org.jruby.ir.runtime.IRRuntimeHelpers.yieldSpecific(IRRuntimeHelpers.java:480)
org.jruby.ir.targets.YieldSite.yieldSpecific(YieldSite.java:114)
install.path.gems.celluloid_minus_0_dot_17_dot_3.lib.celluloid.actor.RUBY$block$task$1(/install/path/gems/celluloid-0.17.3/lib/celluloid/actor.rb:339)
org.jruby.runtime.CompiledIRBlockBody.yieldDirect(CompiledIRBlockBody.java:156)
org.jruby.runtime.IRBlockBody.yieldSpecific(IRBlockBody.java:73)
org.jruby.runtime.Block.yieldSpecific(Block.java:136)
org.jruby.ir.runtime.IRRuntimeHelpers.yieldSpecific(IRRuntimeHelpers.java:480)
org.jruby.ir.targets.YieldSite.yieldSpecific(YieldSite.java:114)
install.path.gems.celluloid_minus_0_dot_17_dot_3.lib.celluloid.task.RUBY$block$initialize$2(/install/path/gems/celluloid-0.17.3/lib/celluloid/task.rb:44)
org.jruby.runtime.CompiledIRBlockBody.yieldDirect(CompiledIRBlockBody.java:156)
org.jruby.runtime.IRBlockBody.yieldSpecific(IRBlockBody.java:73)
org.jruby.runtime.Block.yieldSpecific(Block.java:136)
org.jruby.ir.runtime.IRRuntimeHelpers.yieldSpecific(IRRuntimeHelpers.java:480)
org.jruby.ir.targets.YieldSite.yieldSpecific(YieldSite.java:114)
install.path.gems.celluloid_minus_0_dot_17_dot_3.lib.celluloid.task.fibered.RUBY$block$create$2(/install/path/gems/celluloid-0.17.3/lib/celluloid/task/fibered.rb:14)
org.jruby.runtime.CompiledIRBlockBody.yieldDirect(CompiledIRBlockBody.java:156)
org.jruby.runtime.BlockBody.yield(BlockBody.java:118)
org.jruby.runtime.Block.yieldArray(Block.java:179)
org.jruby.ext.fiber.ThreadFiber$1.run(ThreadFiber.java:262)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)

Tony Arcieri

unread,
May 23, 2016, 3:19:07 PM5/23/16
to cellulo...@googlegroups.com
I'd say just pass that along to the JRuby team as-is. It's not Celluloid-specific. Seems very strange though



--
You received this message because you are subscribed to the Google Groups "Celluloid" group.
To unsubscribe from this group and stop receiving emails from it, send an email to celluloid-rub...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Tony Arcieri

Elliot Shank

unread,
May 23, 2016, 3:46:31 PM5/23/16
to cellulo...@googlegroups.com
In case you wish to follow along: https://github.com/jruby/jruby/issues/3916
Reply all
Reply to author
Forward
0 new messages