Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
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
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)
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".
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
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.
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?
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
Strange, Nick reports that
works for him on MacOS.
Yoko, how do you run the test?