Haven't built JRuby in a while, and now suddenly I have problems running
the test suite. Specifically, it hangs for Java 6 during the Testsuite:
org.jruby.test.JRubyTestSuite step. Is anyone else seeing this?
It works fine with Java 5.
It doesn't work for:
SoyLatte (but with a test failure - about decimal formats)
Java 7 (but with a test failure instead - about "Bad file descriptor -
Bad file descriptor")
The specific version of 1.6 I'm running with is:
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04-248-9M3125)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01-101, mixed mode)
Thread dump for the hang:
[junit] 2010-09-13 16:39:56
[junit] Full thread dump Java HotSpot(TM) 64-Bit Server VM
(14.3-b01-101 mixed mode):
[junit]
[junit] "ReferenceReaper" daemon prio=5 tid=0x0000000101a83800
nid=0x132d5c000 in Object.wait() [0x0000000132d5b000]
[junit] java.lang.Thread.State: WAITING (on object monitor)
[junit] at java.lang.Object.wait(Native Method)
[junit] - waiting on <0x00000001128b1f18> (a
java.lang.ref.ReferenceQueue$Lock)
[junit] at
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
[junit] - locked <0x00000001128b1f18> (a
java.lang.ref.ReferenceQueue$Lock)
[junit] at
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
[junit] at
org.jruby.util.ReferenceReaper$1.run(ReferenceReaper.java:50)
[junit] at java.lang.Thread.run(Thread.java:637)
[junit]
[junit] "Low Memory Detector" daemon prio=5 tid=0x0000000101844800
nid=0x131854000 runnable [0x0000000000000000]
[junit] java.lang.Thread.State: RUNNABLE
[junit]
[junit] "CompilerThread1" daemon prio=9 tid=0x0000000101843000
nid=0x131751000 waiting on condition [0x0000000000000000]
[junit] java.lang.Thread.State: RUNNABLE
[junit]
[junit] "CompilerThread0" daemon prio=9 tid=0x0000000101841800
nid=0x13164e000 waiting on condition [0x0000000000000000]
[junit] java.lang.Thread.State: RUNNABLE
[junit]
[junit] "Signal Dispatcher" daemon prio=9 tid=0x0000000101840000
nid=0x13154b000 waiting on condition [0x0000000000000000]
[junit] java.lang.Thread.State: RUNNABLE
[junit]
[junit] "Surrogate Locker Thread (CMS)" daemon prio=5
tid=0x000000010183f800 nid=0x131448000 waiting on condition
[0x0000000000000000]
[junit] java.lang.Thread.State: RUNNABLE
[junit]
[junit] "Finalizer" daemon prio=8 tid=0x0000000101829000
nid=0x130968000 in Object.wait() [0x0000000130967000]
[junit] java.lang.Thread.State: WAITING (on object monitor)
[junit] at java.lang.Object.wait(Native Method)
[junit] - waiting on <0x00000001079a0018> (a
java.lang.ref.ReferenceQueue$Lock)
[junit] at
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
[junit] - locked <0x00000001079a0018> (a
java.lang.ref.ReferenceQueue$Lock)
[junit] at
java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
[junit] at
java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
[junit]
[junit] "Reference Handler" daemon prio=10 tid=0x0000000101828000
nid=0x130857000 in Object.wait() [0x0000000130856000]
[junit] java.lang.Thread.State: WAITING (on object monitor)
[junit] at java.lang.Object.wait(Native Method)
[junit] - waiting on <0x00000001079a0030> (a
java.lang.ref.Reference$Lock)
[junit] at java.lang.Object.wait(Object.java:485)
[junit] at
java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
[junit] - locked <0x00000001079a0030> (a java.lang.ref.Reference$Lock)
[junit]
[junit] "main" prio=5 tid=0x0000000101801000 nid=0x100401000
runnable [0x00000001003fd000]
[junit] java.lang.Thread.State: RUNNABLE
[junit] at com.kenai.jffi.Foreign.invokeArrayO2Int32(Native Method)
[junit] at
com.kenai.jffi.Invoker.invokeArrayWithObjectsInt32(Invoker.java:519)
[junit] at com.kenai.jffi.Invoker.invokeInt(Invoker.java:398)
[junit] at
org.jruby.ext.socket.RubyUNIXSocket$LibCSocket$jaffl$1.accept(Unknown
Source)
[junit] at
org.jruby.ext.socket.RubyUNIXServer.accept_nonblock(RubyUNIXServer.java:107)
[junit] at
org.jruby.ext.socket.RubyUNIXServer$i_method_0_0$RUBYINVOKER$accept_nonblock.call(org/jruby/ext/socket/RubyUNIXServer$i_method_0_0$RUBYINVOKER$accept_nonblock.gen:65535)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:293)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:112)
[junit] at
org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:373)
[junit] at
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:294)
[junit] at
org.jruby.runtime.InterpretedBlock.yieldSpecific(InterpretedBlock.java:228)
[junit] at org.jruby.runtime.Block.yieldSpecific(Block.java:99)
[junit] at org.jruby.ast.ZYieldNode.interpret(ZYieldNode.java:25)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at org.jruby.ast.RescueNode.executeBody(RescueNode.java:215)
[junit] at
org.jruby.ast.RescueNode.interpretWithJavaExceptions(RescueNode.java:120)
[junit] at org.jruby.ast.RescueNode.interpret(RescueNode.java:110)
[junit] at org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
[junit] at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:373)
[junit] at
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:294)
[junit] at
org.jruby.runtime.InterpretedBlock.yieldSpecific(InterpretedBlock.java:228)
[junit] at org.jruby.runtime.Block.yieldSpecific(Block.java:99)
[junit] at org.jruby.ast.ZYieldNode.interpret(ZYieldNode.java:25)
[junit] at org.jruby.ast.NotNode.interpret(NotNode.java:83)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at org.jruby.ast.IfNode.interpret(IfNode.java:111)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:373)
[junit] at
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:294)
[junit] at
org.jruby.runtime.InterpretedBlock.yieldSpecific(InterpretedBlock.java:228)
[junit] at org.jruby.runtime.Block.yieldSpecific(Block.java:99)
[junit] at org.jruby.ast.ZYieldNode.interpret(ZYieldNode.java:25)
[junit] at org.jruby.ast.ReturnNode.interpret(ReturnNode.java:92)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at org.jruby.ast.IfNode.interpret(IfNode.java:117)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
[junit] at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:160)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:119)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:136)
[junit] at
org.jruby.ast.FCallNoArgBlockNode.interpret(FCallNoArgBlockNode.java:32)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:201)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:323)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:161)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:176)
[junit] at
org.jruby.ast.FCallOneArgBlockNode.interpret(FCallOneArgBlockNode.java:34)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
[junit] at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:373)
[junit] at
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:294)
[junit] at
org.jruby.runtime.InterpretedBlock.yieldSpecific(InterpretedBlock.java:228)
[junit] at org.jruby.runtime.Block.yieldSpecific(Block.java:99)
[junit] at org.jruby.ast.ZYieldNode.interpret(ZYieldNode.java:25)
[junit] at org.jruby.ast.ReturnNode.interpret(ReturnNode.java:92)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
[junit] at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
[junit] at org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
[junit] at org.jruby.ast.IfNode.interpret(IfNode.java:119)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
[junit] at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:160)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:303)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:121)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:136)
[junit] at
org.jruby.ast.FCallNoArgBlockNode.interpret(FCallNoArgBlockNode.java:32)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:201)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:323)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:161)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:166)
[junit] at
org.jruby.ast.FCallSpecialArgBlockPassNode.interpret(FCallSpecialArgBlockPassNode.java:38)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:201)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:323)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:161)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:176)
[junit] at
org.jruby.ast.FCallOneArgBlockNode.interpret(FCallOneArgBlockNode.java:34)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
[junit] at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:160)
[junit] at org.jruby.RubyClass.finvoke(RubyClass.java:521)
[junit] at org.jruby.RubyObject.send(RubyObject.java:1291)
[junit] at
org.jruby.RubyObject$i_method_multi$RUBYINVOKER$send.call(org/jruby/RubyObject$i_method_multi$RUBYINVOKER$send.gen:65535)
[junit] at
org.jruby.internal.runtime.methods.JavaMethod$JavaMethodZeroOrOneOrNBlock.call(JavaMethod.java:266)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:150)
[junit] at
org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
[junit] at org.jruby.ast.RescueNode.executeBody(RescueNode.java:215)
[junit] at
org.jruby.ast.RescueNode.interpretWithJavaExceptions(RescueNode.java:120)
[junit] at org.jruby.ast.RescueNode.interpret(RescueNode.java:110)
[junit] at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
[junit] at org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
[junit] at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:201)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:159)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:166)
[junit] at
org.jruby.ast.CallOneArgBlockPassNode.interpret(CallOneArgBlockPassNode.java:60)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at
org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:373)
[junit] at
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:346)
[junit] at
org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:303)
[junit] at org.jruby.runtime.Block.yield(Block.java:194)
[junit] at org.jruby.RubyArray.eachCommon(RubyArray.java:1634)
[junit] at org.jruby.RubyArray.each(RubyArray.java:1641)
[junit] at
org.jruby.RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.call(org/jruby/RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.gen:65535)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:119)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:126)
[junit] at
org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:64)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
[junit] at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:201)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:159)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:166)
[junit] at
org.jruby.ast.CallOneArgBlockNode.interpret(CallOneArgBlockNode.java:60)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
[junit] at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:139)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:110)
[junit] at
org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
[junit] at org.jruby.ast.ReturnNode.interpret(ReturnNode.java:92)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:139)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:110)
[junit] at org.jruby.ast.VCallNode.interpret(VCallNode.java:85)
[junit] at org.jruby.ast.ReturnNode.interpret(ReturnNode.java:92)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
[junit] at
org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:139)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:293)
[junit] at
org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:112)
[junit] at
org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
[junit] at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
[junit] at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
[junit] at org.jruby.ast.RootNode.interpret(RootNode.java:129)
[junit] at org.jruby.Ruby.runInterpreter(Ruby.java:707)
[junit] at org.jruby.Ruby.executeScript(Ruby.java:341)
[junit] at
org.jruby.test.TestUnitTestSuite$ScriptTest.runTest(TestUnitTestSuite.java:212)
[junit] - locked <0x00000001105bb780> (a
org.jruby.test.TestUnitTestSuite$Interpreter)
[junit] at junit.framework.TestCase.runBare(TestCase.java:134)
[junit] at junit.framework.TestResult$1.protect(TestResult.java:110)
[junit] at
junit.framework.TestResult.runProtected(TestResult.java:128)
[junit] at junit.framework.TestResult.run(TestResult.java:113)
[junit] at junit.framework.TestCase.run(TestCase.java:124)
[junit] at junit.framework.TestSuite.runTest(TestSuite.java:232)
[junit] at junit.framework.TestSuite.run(TestSuite.java:227)
[junit] at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:420)
[junit] at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:911)
[junit] at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:743)
[junit]
[junit] "VM Thread" prio=9 tid=0x0000000101820800 nid=0x130754000
runnable
[junit]
[junit] "Gang worker#0 (Parallel GC Threads)" prio=9
tid=0x0000000101805800 nid=0x1006c7000 runnable
[junit]
[junit] "Gang worker#1 (Parallel GC Threads)" prio=9
tid=0x0000000101807000 nid=0x1007ca000 runnable
[junit]
[junit] "Concurrent Mark-Sweep GC Thread" prio=9
tid=0x0000000101808800 nid=0x1303c8000 runnable
[junit] "VM Periodic Task Thread" prio=10 tid=0x0000000101846000
nid=0x131957000 waiting on condition
[junit]
[junit] "Exception Catcher Thread" prio=10 tid=0x0000000101804000
nid=0x100504000 runnable
[junit] JNI global references: 986
[junit]
[junit] Heap
[junit] par new generation total 34176K, used 8055K
[0x0000000105010000, 0x0000000107630000, 0x00000001079a0000)
[junit] eden space 29312K, 10% used [0x0000000105010000,
0x000000010532dc90, 0x0000000106cb0000)
[junit] from space 4864K, 100% used [0x0000000106cb0000,
0x0000000107170000, 0x0000000107170000)
[junit] to space 4864K, 0% used [0x0000000107170000,
0x0000000107170000, 0x0000000107630000)
[junit] concurrent mark-sweep generation total 272832K, used
211950K [0x00000001079a0000, 0x0000000118410000, 0x0000000125010000)
[junit] concurrent-mark-sweep perm gen total 57812K, used 38309K
[0x0000000125010000, 0x0000000128885000, 0x000000012d010000)
[junit]
Cheers
--
Ola Bini (http://olabini.com)
Ioke - JRuby - ThoughtWorks
"Yields falsehood when quined" yields falsehood when quined.
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email