Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Cannot Reproduce
    • Affects Version/s: JRuby 1.5
    • Fix Version/s: None
    • Component/s: Core Classes/Modules
    • Labels:
      None
    • Environment:
      OS X 10.5.8
      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)
    • Number of attachments :
      0

      Description

      After the commit,

      0d5302c - Wayne Meissner : Upgrade jffi to 1.0 and remove obsolete binaries,

      test_socket.rb freezes on JDK 6. However, this test passes successfully on JDK 5.

        Activity

        Hide
        Vladimir Sizikov added a comment -

        Strange, Nick reports that

        jruby test/test_socket.rb
        

        works for him on MacOS.

        Yoko, how do you run the test?

        Show
        Vladimir Sizikov added a comment - Strange, Nick reports that jruby test/test_socket.rb works for him on MacOS. Yoko, how do you run the test?
        Hide
        Yoko Harada added a comment -

        As we talked on IRC, test_socket.rb seems to hang up in my case. Here's thread dump.

         
        jruby -v test/test_socket.rb 
        jruby 1.5.0.dev (ruby 1.8.7 patchlevel 174) (2010-03-02 cefba78) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_17) [x86_64-java]
        Loaded suite test/test_socket
        Started
        ..............^\2010-03-02 16:49:27
        Full thread dump Java HotSpot(TM) 64-Bit Server VM (14.3-b01-101 mixed mode):
        
        "Low Memory Detector" daemon prio=5 tid=0x0000000101843000 nid=0x12df54000 runnable [0x0000000000000000]
           java.lang.Thread.State: RUNNABLE
        
        "CompilerThread1" daemon prio=9 tid=0x0000000101841800 nid=0x12de51000 waiting on condition [0x0000000000000000]
           java.lang.Thread.State: RUNNABLE
        
        "CompilerThread0" daemon prio=9 tid=0x0000000101840000 nid=0x12dd4e000 waiting on condition [0x0000000000000000]
           java.lang.Thread.State: RUNNABLE
        
        "Signal Dispatcher" daemon prio=9 tid=0x000000010183f000 nid=0x12dc4b000 waiting on condition [0x0000000000000000]
           java.lang.Thread.State: RUNNABLE
        
        "Surrogate Locker Thread (CMS)" daemon prio=5 tid=0x000000010183e000 nid=0x12db48000 waiting on condition [0x0000000000000000]
           java.lang.Thread.State: RUNNABLE
        
        "Finalizer" daemon prio=8 tid=0x0000000101828000 nid=0x12d068000 in Object.wait() [0x000000012d067000]
           java.lang.Thread.State: WAITING (on object monitor)
        	at java.lang.Object.wait(Native Method)
        	- waiting on <0x0000000107b6ea60> (a java.lang.ref.ReferenceQueue$Lock)
        	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
        	- locked <0x0000000107b6ea60> (a java.lang.ref.ReferenceQueue$Lock)
        	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
        	at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
        
        "Reference Handler" daemon prio=10 tid=0x0000000101826800 nid=0x12cf57000 in Object.wait() [0x000000012cf56000]
           java.lang.Thread.State: WAITING (on object monitor)
        	at java.lang.Object.wait(Native Method)
        	- waiting on <0x0000000107b6eb48> (a java.lang.ref.Reference$Lock)
        	at java.lang.Object.wait(Object.java:485)
        	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
        	- locked <0x0000000107b6eb48> (a java.lang.ref.Reference$Lock)
        
        "main" prio=5 tid=0x0000000101801000 nid=0x100401000 runnable [0x00000001003fa000]
           java.lang.Thread.State: RUNNABLE
        	at com.kenai.jffi.Foreign.invokeArrayO2Int32(Native Method)
        	at com.kenai.jffi.Invoker.invokeArrayWithObjectsInt32(Invoker.java:519)
        	at com.kenai.jffi.Invoker.invokeInt(Invoker.java:398)
        	at org.jruby.ext.socket.RubyUNIXSocket$LibCSocket$jaffl$0.accept(Unknown Source)
        	at org.jruby.ext.socket.RubyUNIXServer.accept_nonblock(RubyUNIXServer.java:107)
        	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)
        	at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:289)
        	at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:108)
        	at test.test_socket.block_10$RUBY$__block__(test_socket.rb:215)
        	at test.test_socketBlockCallback$block_10$RUBY$__block__xx1.call(Unknown Source)
        	at org.jruby.runtime.CompiledBlock.yield(CompiledBlock.java:115)
        	at org.jruby.runtime.CompiledBlock.yield(CompiledBlock.java:98)
        	at org.jruby.runtime.CompiledBlock.yieldSpecific(CompiledBlock.java:78)
        	at org.jruby.runtime.Block.yieldSpecific(Block.java:99)
        	at org.jruby.ast.ZYieldNode.interpret(ZYieldNode.java:25)
        	at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        	at org.jruby.ast.RescueNode.executeBody(RescueNode.java:225)
        	at org.jruby.ast.RescueNode.interpretWithJavaExceptions(RescueNode.java:147)
        	at org.jruby.ast.RescueNode.interpret(RescueNode.java:110)
        	at org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
        	at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        	at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        	at org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:373)
        	at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:294)
        	at org.jruby.runtime.InterpretedBlock.yieldSpecific(InterpretedBlock.java:228)
        	at org.jruby.runtime.Block.yieldSpecific(Block.java:99)
        	at ruby.jit.assert_block_FE757DB079C40AAD63024E69B46B1324EF50D1B7.block_0$RUBY$__block__(assertions.rb:47)
        	at ruby.jit.assert_block_FE757DB079C40AAD63024E69B46B1324EF50D1B7BlockCallback$block_0$RUBY$__block__xx1.call(Unknown Source)
        	at org.jruby.runtime.CompiledBlock.yield(CompiledBlock.java:115)
        	at org.jruby.runtime.CompiledBlock.yield(CompiledBlock.java:98)
        	at org.jruby.runtime.CompiledBlock.yieldSpecific(CompiledBlock.java:78)
        	at org.jruby.runtime.Block.yieldSpecific(Block.java:99)
        	at ruby.jit._wrap_assertion_73C7C6DE6FCB82EBEA98BF4BB2540F58599A2D5A.__file__(assertions.rb:500)
        	at ruby.jit._wrap_assertion_73C7C6DE6FCB82EBEA98BF4BB2540F58599A2D5A.__file__(assertions.rb)
        	at org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:136)
        	at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:115)
        	at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:132)
        	at ruby.jit.assert_block_FE757DB079C40AAD63024E69B46B1324EF50D1B7.__file__(assertions.rb:46)
        	at ruby.jit.assert_block_FE757DB079C40AAD63024E69B46B1324EF50D1B7.__file__(assertions.rb)
        	at org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:39)
        	at org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:170)
        	at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:319)
        	at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:157)
        	at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:172)
        	at org.jruby.ast.FCallOneArgBlockNode.interpret(FCallOneArgBlockNode.java:34)
        	at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        	at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        	at org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:373)
        	at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:294)
        	at org.jruby.runtime.InterpretedBlock.yieldSpecific(InterpretedBlock.java:228)
        	at org.jruby.runtime.Block.yieldSpecific(Block.java:99)
        	at ruby.jit._wrap_assertion_73C7C6DE6FCB82EBEA98BF4BB2540F58599A2D5A.ensure_1$RUBY$__ensure___0(assertions.rb:495)
        	at ruby.jit._wrap_assertion_73C7C6DE6FCB82EBEA98BF4BB2540F58599A2D5A.__file__(assertions.rb:493)
        	at ruby.jit._wrap_assertion_73C7C6DE6FCB82EBEA98BF4BB2540F58599A2D5A.__file__(assertions.rb)
        	at org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:136)
        	at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:299)
        	at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:117)
        	at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:132)
        	at org.jruby.ast.FCallNoArgBlockNode.interpret(FCallNoArgBlockNode.java:32)
        	at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        	at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:201)
        	at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:180)
        	at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:319)
        	at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:157)
        	at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:162)
        	at org.jruby.ast.FCallSpecialArgBlockPassNode.interpret(FCallSpecialArgBlockPassNode.java:38)
        	at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        	at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:201)
        	at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:180)
        	at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:319)
        	at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:157)
        	at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:172)
        	at test.test_socket.method__22$RUBY$test_can_create_socket_server_and_accept_nonblocking(test_socket.rb:214)
        	at test.test_socketInvokermethod__22$RUBY$test_can_create_socket_server_and_accept_nonblockingFixed0.call(test_socket#test_can_create_socket_server_and_accept_nonblocking)
        	at org.jruby.RubyClass.finvoke(RubyClass.java:459)
        	at org.jruby.RubyObject.send(RubyObject.java:1438)
        	at org.jruby.RubyObject$i_method_multi$RUBYINVOKER$send.call(org/jruby/RubyObject$i_method_multi$RUBYINVOKER$send.gen)
        	at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodZeroOrOneOrNBlock.call(JavaMethod.java:266)
        	at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:146)
        	at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
        	at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        	at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        	at org.jruby.ast.RescueNode.executeBody(RescueNode.java:225)
        	at org.jruby.ast.RescueNode.interpretWithJavaExceptions(RescueNode.java:147)
        	at org.jruby.ast.RescueNode.interpret(RescueNode.java:110)
        	at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96)
        	at org.jruby.ast.BeginNode.interpret(BeginNode.java:83)
        	at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        	at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        	at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:201)
        	at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:180)
        	at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:155)
        	at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:162)
        	at org.jruby.ast.CallOneArgBlockPassNode.interpret(CallOneArgBlockPassNode.java:60)
        	at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        	at org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:373)
        	at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:346)
        	at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:303)
        	at org.jruby.runtime.Block.yield(Block.java:194)
        	at org.jruby.RubyArray.eachCommon(RubyArray.java:1630)
        	at org.jruby.RubyArray.each(RubyArray.java:1637)
        	at org.jruby.RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.call(org/jruby/RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.gen)
        	at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:115)
        	at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:122)
        	at org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:64)
        	at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        	at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        	at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:201)
        	at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:180)
        	at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:319)
        	at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:157)
        	at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:162)
        	at org.jruby.ast.CallOneArgBlockPassNode.interpret(CallOneArgBlockPassNode.java:60)
        	at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        	at org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:373)
        	at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:346)
        	at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:303)
        	at org.jruby.runtime.Block.yield(Block.java:194)
        	at org.jruby.RubyArray.eachCommon(RubyArray.java:1630)
        	at org.jruby.RubyArray.each(RubyArray.java:1637)
        	at org.jruby.RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.call(org/jruby/RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.gen)
        	at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:299)
        	at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:117)
        	at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:122)
        	at org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:64)
        	at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        	at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        	at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:201)
        	at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:180)
        	at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:319)
        	at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:157)
        	at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:162)
        	at org.jruby.ast.CallOneArgBlockNode.interpret(CallOneArgBlockNode.java:60)
        	at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        	at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        	at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:139)
        	at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:156)
        	at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:289)
        	at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:108)
        	at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
        	at org.jruby.ast.ReturnNode.interpret(ReturnNode.java:92)
        	at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        	at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:139)
        	at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:156)
        	at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:289)
        	at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:108)
        	at org.jruby.ast.VCallNode.interpret(VCallNode.java:85)
        	at org.jruby.ast.ReturnNode.interpret(ReturnNode.java:92)
        	at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        	at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        	at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:139)
        	at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:156)
        	at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:289)
        	at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:108)
        	at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
        	at org.jruby.ast.ReturnNode.interpret(ReturnNode.java:92)
        	at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        	at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:221)
        	at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:188)
        	at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:329)
        	at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:188)
        	at org.jruby.ast.CallTwoArgNode.interpret(CallTwoArgNode.java:59)
        	at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
        	at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        	at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        	at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:139)
        	at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:156)
        	at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:289)
        	at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:108)
        	at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
        	at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        	at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
        	at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:139)
        	at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:156)
        	at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:289)
        	at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:108)
        	at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61)
        	at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
        	at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        	at org.jruby.ast.IfNode.interpret(IfNode.java:119)
        	at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
        	at org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:373)
        	at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:327)
        	at org.jruby.runtime.BlockBody.call(BlockBody.java:78)
        	at org.jruby.runtime.Block.call(Block.java:89)
        	at org.jruby.RubyProc.call(RubyProc.java:224)
        	at org.jruby.RubyProc.call(RubyProc.java:207)
        	at org.jruby.Ruby.tearDown(Ruby.java:2759)
        	at org.jruby.Main.run(Main.java:277)
        	at org.jruby.Main.run(Main.java:117)
        	at org.jruby.Main.main(Main.java:97)
        
        "VM Thread" prio=9 tid=0x000000010181f000 nid=0x12ce54000 runnable 
        
        "Gang worker#0 (Parallel GC Threads)" prio=9 tid=0x0000000101803800 nid=0x1006c7000 runnable 
        
        "Gang worker#1 (Parallel GC Threads)" prio=9 tid=0x0000000101805000 nid=0x1007ca000 runnable 
        
        "Concurrent Mark-Sweep GC Thread" prio=9 tid=0x0000000101807000 nid=0x12cad3000 runnable 
        "VM Periodic Task Thread" prio=10 tid=0x0000000101844800 nid=0x12e057000 waiting on condition 
        
        "Exception Catcher Thread" prio=10 tid=0x0000000101802000 nid=0x100504000 runnable 
        JNI global references: 870
        
        Heap
         par new generation   total 18624K, used 12492K [0x0000000105010000, 0x00000001064d0000, 0x00000001079a0000)
          eden space 16000K,  78% used [0x0000000105010000, 0x0000000105c43378, 0x0000000105fb0000)
          from space 2624K,   0% used [0x0000000106240000, 0x0000000106240000, 0x00000001064d0000)
          to   space 2624K,   0% used [0x0000000105fb0000, 0x0000000105fb0000, 0x0000000106240000)
         concurrent mark-sweep generation total 63872K, used 4439K [0x00000001079a0000, 0x000000010b800000, 0x0000000124410000)
         concurrent-mark-sweep perm gen total 35404K, used 23148K [0x0000000124410000, 0x00000001266a3000, 0x0000000129810000)
        
        Show
        Yoko Harada added a comment - As we talked on IRC, test_socket.rb seems to hang up in my case. Here's thread dump. jruby -v test/test_socket.rb jruby 1.5.0.dev (ruby 1.8.7 patchlevel 174) (2010-03-02 cefba78) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_17) [x86_64-java] Loaded suite test/test_socket Started ..............^\2010-03-02 16:49:27 Full thread dump Java HotSpot(TM) 64-Bit Server VM (14.3-b01-101 mixed mode): "Low Memory Detector" daemon prio=5 tid=0x0000000101843000 nid=0x12df54000 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE "CompilerThread1" daemon prio=9 tid=0x0000000101841800 nid=0x12de51000 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "CompilerThread0" daemon prio=9 tid=0x0000000101840000 nid=0x12dd4e000 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Signal Dispatcher" daemon prio=9 tid=0x000000010183f000 nid=0x12dc4b000 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Surrogate Locker Thread (CMS)" daemon prio=5 tid=0x000000010183e000 nid=0x12db48000 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Finalizer" daemon prio=8 tid=0x0000000101828000 nid=0x12d068000 in Object.wait() [0x000000012d067000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x0000000107b6ea60> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) - locked <0x0000000107b6ea60> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) "Reference Handler" daemon prio=10 tid=0x0000000101826800 nid=0x12cf57000 in Object.wait() [0x000000012cf56000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x0000000107b6eb48> (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Object.java:485) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116) - locked <0x0000000107b6eb48> (a java.lang.ref.Reference$Lock) "main" prio=5 tid=0x0000000101801000 nid=0x100401000 runnable [0x00000001003fa000] java.lang.Thread.State: RUNNABLE at com.kenai.jffi.Foreign.invokeArrayO2Int32(Native Method) at com.kenai.jffi.Invoker.invokeArrayWithObjectsInt32(Invoker.java:519) at com.kenai.jffi.Invoker.invokeInt(Invoker.java:398) at org.jruby.ext.socket.RubyUNIXSocket$LibCSocket$jaffl$0.accept(Unknown Source) at org.jruby.ext.socket.RubyUNIXServer.accept_nonblock(RubyUNIXServer.java:107) 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) at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:289) at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:108) at test.test_socket.block_10$RUBY$__block__(test_socket.rb:215) at test.test_socketBlockCallback$block_10$RUBY$__block__xx1.call(Unknown Source) at org.jruby.runtime.CompiledBlock.yield(CompiledBlock.java:115) at org.jruby.runtime.CompiledBlock.yield(CompiledBlock.java:98) at org.jruby.runtime.CompiledBlock.yieldSpecific(CompiledBlock.java:78) at org.jruby.runtime.Block.yieldSpecific(Block.java:99) at org.jruby.ast.ZYieldNode.interpret(ZYieldNode.java:25) at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) at org.jruby.ast.RescueNode.executeBody(RescueNode.java:225) at org.jruby.ast.RescueNode.interpretWithJavaExceptions(RescueNode.java:147) at org.jruby.ast.RescueNode.interpret(RescueNode.java:110) at org.jruby.ast.BeginNode.interpret(BeginNode.java:83) at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) at org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:373) at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:294) at org.jruby.runtime.InterpretedBlock.yieldSpecific(InterpretedBlock.java:228) at org.jruby.runtime.Block.yieldSpecific(Block.java:99) at ruby.jit.assert_block_FE757DB079C40AAD63024E69B46B1324EF50D1B7.block_0$RUBY$__block__(assertions.rb:47) at ruby.jit.assert_block_FE757DB079C40AAD63024E69B46B1324EF50D1B7BlockCallback$block_0$RUBY$__block__xx1.call(Unknown Source) at org.jruby.runtime.CompiledBlock.yield(CompiledBlock.java:115) at org.jruby.runtime.CompiledBlock.yield(CompiledBlock.java:98) at org.jruby.runtime.CompiledBlock.yieldSpecific(CompiledBlock.java:78) at org.jruby.runtime.Block.yieldSpecific(Block.java:99) at ruby.jit._wrap_assertion_73C7C6DE6FCB82EBEA98BF4BB2540F58599A2D5A.__file__(assertions.rb:500) at ruby.jit._wrap_assertion_73C7C6DE6FCB82EBEA98BF4BB2540F58599A2D5A.__file__(assertions.rb) at org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:136) at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:115) at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:132) at ruby.jit.assert_block_FE757DB079C40AAD63024E69B46B1324EF50D1B7.__file__(assertions.rb:46) at ruby.jit.assert_block_FE757DB079C40AAD63024E69B46B1324EF50D1B7.__file__(assertions.rb) at org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:39) at org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:170) at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:319) at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:157) at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:172) at org.jruby.ast.FCallOneArgBlockNode.interpret(FCallOneArgBlockNode.java:34) at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) at org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:373) at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:294) at org.jruby.runtime.InterpretedBlock.yieldSpecific(InterpretedBlock.java:228) at org.jruby.runtime.Block.yieldSpecific(Block.java:99) at ruby.jit._wrap_assertion_73C7C6DE6FCB82EBEA98BF4BB2540F58599A2D5A.ensure_1$RUBY$__ensure___0(assertions.rb:495) at ruby.jit._wrap_assertion_73C7C6DE6FCB82EBEA98BF4BB2540F58599A2D5A.__file__(assertions.rb:493) at ruby.jit._wrap_assertion_73C7C6DE6FCB82EBEA98BF4BB2540F58599A2D5A.__file__(assertions.rb) at org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:136) at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:299) at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:117) at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:132) at org.jruby.ast.FCallNoArgBlockNode.interpret(FCallNoArgBlockNode.java:32) at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:201) at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:180) at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:319) at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:157) at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:162) at org.jruby.ast.FCallSpecialArgBlockPassNode.interpret(FCallSpecialArgBlockPassNode.java:38) at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:201) at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:180) at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:319) at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:157) at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:172) at test.test_socket.method__22$RUBY$test_can_create_socket_server_and_accept_nonblocking(test_socket.rb:214) at test.test_socketInvokermethod__22$RUBY$test_can_create_socket_server_and_accept_nonblockingFixed0.call(test_socket#test_can_create_socket_server_and_accept_nonblocking) at org.jruby.RubyClass.finvoke(RubyClass.java:459) at org.jruby.RubyObject.send(RubyObject.java:1438) at org.jruby.RubyObject$i_method_multi$RUBYINVOKER$send.call(org/jruby/RubyObject$i_method_multi$RUBYINVOKER$send.gen) at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodZeroOrOneOrNBlock.call(JavaMethod.java:266) at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:146) at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36) at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) at org.jruby.ast.RescueNode.executeBody(RescueNode.java:225) at org.jruby.ast.RescueNode.interpretWithJavaExceptions(RescueNode.java:147) at org.jruby.ast.RescueNode.interpret(RescueNode.java:110) at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96) at org.jruby.ast.BeginNode.interpret(BeginNode.java:83) at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:201) at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:180) at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:155) at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:162) at org.jruby.ast.CallOneArgBlockPassNode.interpret(CallOneArgBlockPassNode.java:60) at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) at org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:373) at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:346) at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:303) at org.jruby.runtime.Block.yield(Block.java:194) at org.jruby.RubyArray.eachCommon(RubyArray.java:1630) at org.jruby.RubyArray.each(RubyArray.java:1637) at org.jruby.RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.call(org/jruby/RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.gen) at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:115) at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:122) at org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:64) at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:201) at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:180) at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:319) at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:157) at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:162) at org.jruby.ast.CallOneArgBlockPassNode.interpret(CallOneArgBlockPassNode.java:60) at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) at org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:373) at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:346) at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:303) at org.jruby.runtime.Block.yield(Block.java:194) at org.jruby.RubyArray.eachCommon(RubyArray.java:1630) at org.jruby.RubyArray.each(RubyArray.java:1637) at org.jruby.RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.call(org/jruby/RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.gen) at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:299) at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:117) at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:122) at org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:64) at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:201) at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:180) at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:319) at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:157) at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:162) at org.jruby.ast.CallOneArgBlockNode.interpret(CallOneArgBlockNode.java:60) at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:139) at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:156) at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:289) at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:108) at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61) at org.jruby.ast.ReturnNode.interpret(ReturnNode.java:92) at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:139) at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:156) at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:289) at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:108) at org.jruby.ast.VCallNode.interpret(VCallNode.java:85) at org.jruby.ast.ReturnNode.interpret(ReturnNode.java:92) at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:139) at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:156) at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:289) at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:108) at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61) at org.jruby.ast.ReturnNode.interpret(ReturnNode.java:92) at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:221) at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:188) at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:329) at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:188) at org.jruby.ast.CallTwoArgNode.interpret(CallTwoArgNode.java:59) at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61) at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:139) at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:156) at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:289) at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:108) at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61) at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:139) at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:156) at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:289) at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:108) at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61) at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36) at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) at org.jruby.ast.IfNode.interpret(IfNode.java:119) at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) at org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:373) at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:327) at org.jruby.runtime.BlockBody.call(BlockBody.java:78) at org.jruby.runtime.Block.call(Block.java:89) at org.jruby.RubyProc.call(RubyProc.java:224) at org.jruby.RubyProc.call(RubyProc.java:207) at org.jruby.Ruby.tearDown(Ruby.java:2759) at org.jruby.Main.run(Main.java:277) at org.jruby.Main.run(Main.java:117) at org.jruby.Main.main(Main.java:97) "VM Thread" prio=9 tid=0x000000010181f000 nid=0x12ce54000 runnable "Gang worker#0 (Parallel GC Threads)" prio=9 tid=0x0000000101803800 nid=0x1006c7000 runnable "Gang worker#1 (Parallel GC Threads)" prio=9 tid=0x0000000101805000 nid=0x1007ca000 runnable "Concurrent Mark-Sweep GC Thread" prio=9 tid=0x0000000101807000 nid=0x12cad3000 runnable "VM Periodic Task Thread" prio=10 tid=0x0000000101844800 nid=0x12e057000 waiting on condition "Exception Catcher Thread" prio=10 tid=0x0000000101802000 nid=0x100504000 runnable JNI global references: 870 Heap par new generation total 18624K, used 12492K [0x0000000105010000, 0x00000001064d0000, 0x00000001079a0000) eden space 16000K, 78% used [0x0000000105010000, 0x0000000105c43378, 0x0000000105fb0000) from space 2624K, 0% used [0x0000000106240000, 0x0000000106240000, 0x00000001064d0000) to space 2624K, 0% used [0x0000000105fb0000, 0x0000000105fb0000, 0x0000000106240000) concurrent mark-sweep generation total 63872K, used 4439K [0x00000001079a0000, 0x000000010b800000, 0x0000000124410000) concurrent-mark-sweep perm gen total 35404K, used 23148K [0x0000000124410000, 0x00000001266a3000, 0x0000000129810000)
        Hide
        Hiro Asari added a comment -

        I've tested master on Mac OS X 10.6.6 and Ubuntu 10.10, and they both have no problems with test_socket.rb.

        I'm incline to mark it "can't reproduce".

        Show
        Hiro Asari added a comment - I've tested master on Mac OS X 10.6.6 and Ubuntu 10.10, and they both have no problems with test_socket.rb. I'm incline to mark it "can't reproduce".
        Hide
        Yoko Harada added a comment -

        I'm still having this problem on Mac OS X 10.6.6 and Java(TM) SE Runtime Environment (build 1.6.0_22-b04-307-10M3261). So, I always comment test_socket.rb out when I run ant test.

        I guess something I installed to my Mac causes this problem. Right after I upgraded to Snow Leopard, test_socket.rb finished in seconds. But, after I reinstalled bunch of tools using fink, test_socket.rb stopped working in middle of the evaluation, again.

        I pasted the result of netstat -a, https://gist.github.com/791332, hoping this helps to figure out what process bothers test_socket.rb

        Show
        Yoko Harada added a comment - I'm still having this problem on Mac OS X 10.6.6 and Java(TM) SE Runtime Environment (build 1.6.0_22-b04-307-10M3261). So, I always comment test_socket.rb out when I run ant test. I guess something I installed to my Mac causes this problem. Right after I upgraded to Snow Leopard, test_socket.rb finished in seconds. But, after I reinstalled bunch of tools using fink, test_socket.rb stopped working in middle of the evaluation, again. I pasted the result of netstat -a, https://gist.github.com/791332 , hoping this helps to figure out what process bothers test_socket.rb
        Hide
        Charles Oliver Nutter added a comment -

        Socket tests will always be sensitive to your network setup, and this one sounds like an environmental problem. If you're still having trouble on JRuby master right now, let me know and we can try to figure it out.

        Show
        Charles Oliver Nutter added a comment - Socket tests will always be sensitive to your network setup, and this one sounds like an environmental problem. If you're still having trouble on JRuby master right now, let me know and we can try to figure it out.
        Hide
        Yoko Harada added a comment -

        I'm still having this problem.

        I dag this a little bit.
        Following three UNIX socket tests cause deadlock:

        test_unix_socket_peeraddr
        test_can_create_socket_server_and_client_connected_to_it_and_send_from_server_to_client
        test_can_create_socket_server_and_client_connected_to_it_and_send_from_client_to_server_using_recvfrom
        test_can_create_socket_server_and_client_connected_to_it_and_send_from_server_to_client_using_recvfrom

        However, all four tests passed when I ran each individually.

        Since Unit Test runs multiple tests concurrently, some termination/clearing related may cause the deadlock?

        Show
        Yoko Harada added a comment - I'm still having this problem. I dag this a little bit. Following three UNIX socket tests cause deadlock: test_unix_socket_peeraddr test_can_create_socket_server_and_client_connected_to_it_and_send_from_server_to_client test_can_create_socket_server_and_client_connected_to_it_and_send_from_client_to_server_using_recvfrom test_can_create_socket_server_and_client_connected_to_it_and_send_from_server_to_client_using_recvfrom However, all four tests passed when I ran each individually. Since Unit Test runs multiple tests concurrently, some termination/clearing related may cause the deadlock?
        Hide
        Yoko Harada added a comment -

        Additional info. The results may or may not help to figure out the culprit.

        When I deleted four tests from test_socket.rb, I got the results below:

        bin/jruby ../tmp/test_socket_1.rb 
        Run options: 
        
        # Running tests:
        
        ....F.........F.............
        
        Finished tests in 0.655000s, 42.7481 tests/s, 85.4962 assertions/s.
        
          1) Failure:
        test_nil_hostname_and_no_flags_returns_localhost(SocketTest) [../tmp/test_socket_1.rb:41]:
        <"localhost"> expected but was
        <"127.0.0.1">.
        
          2) Failure:
        test_can_create_socket_server_and_accept_nonblocking(UNIXSocketTests) [../tmp/test_socket_1.rb:194]:
        [Errno::EAGAIN] exception expected, not
        Class: <JRuby::EAGAINReadable>
        Message: <"Resource temporarily unavailable - errno backtraces disabled; run with -Xerrno.backtrace=true to enable">
        ---Backtrace---
        
        ---------------
        
        28 tests, 56 assertions, 2 failures, 0 errors, 0 skips
        
        Show
        Yoko Harada added a comment - Additional info. The results may or may not help to figure out the culprit. When I deleted four tests from test_socket.rb, I got the results below: bin/jruby ../tmp/test_socket_1.rb Run options: # Running tests: ....F.........F............. Finished tests in 0.655000s, 42.7481 tests/s, 85.4962 assertions/s. 1) Failure: test_nil_hostname_and_no_flags_returns_localhost(SocketTest) [../tmp/test_socket_1.rb:41]: <"localhost"> expected but was <"127.0.0.1">. 2) Failure: test_can_create_socket_server_and_accept_nonblocking(UNIXSocketTests) [../tmp/test_socket_1.rb:194]: [Errno::EAGAIN] exception expected, not Class: <JRuby::EAGAINReadable> Message: <"Resource temporarily unavailable - errno backtraces disabled; run with -Xerrno.backtrace=true to enable"> ---Backtrace--- --------------- 28 tests, 56 assertions, 2 failures, 0 errors, 0 skips

          People

          • Assignee:
            Charles Oliver Nutter
            Reporter:
            Yoko Harada
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: