Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

JRuby 1.9 mode causes dead lock while running rake #571

Closed
yokolet opened this issue Nov 18, 2011 · 2 comments
Closed

JRuby 1.9 mode causes dead lock while running rake #571

yokolet opened this issue Nov 18, 2011 · 2 comments

Comments

@yokolet
Copy link
Member

yokolet commented Nov 18, 2011

$ rake
(in /Users/yoko/Documents/workspace/Ranunculus)
cp tmp/java/nokogiri/nokogiri.jar lib/nokogiri/nokogiri.jar
/Users/yoko/Projects/nokogiri/jruby/bin/jruby -w -I.:lib:bin:test:. -e 'require "rubygems"; require "minitest/autorun"; require "test/test_convert_xpath.rb"; require "test/test_css_cache.rb"; require "test/test_encoding_handler.rb"; require "test/test_jruby_header.rb"; require "test/test_memory_leak.rb"; require "test/test_nokogiri.rb"; require "test/test_reader.rb"; require "test/test_soap4r_sax.rb"; require "test/test_xslt_transforms.rb"; require "test/css/test_nthiness.rb"; require "test/css/test_parser.rb"; require "test/css/test_tokenizer.rb"; require "test/css/test_xpath_visitor.rb"; require "test/decorators/test_slop.rb"; require "test/html/test_builder.rb"; require "test/html/test_document.rb"; require "test/html/test_document_encoding.rb"; require "test/html/test_document_fragment.rb"; require "test/html/test_element_description.rb"; require "test/html/test_named_characters.rb"; require "test/html/test_node.rb"; require "test/html/test_node_encoding.rb"; require "test/html/sax/test_parser.rb"; require "test/html/sax/test_parser_context.rb"; require "test/xml/test_attr.rb"; require "test/xml/test_attribute_decl.rb"; require "test/xml/test_builder.rb"; require "test/xml/test_c14n.rb"; require "test/xml/test_cdata.rb"; require "test/xml/test_comment.rb"; require "test/xml/test_document.rb"; require "test/xml/test_document_encoding.rb"; require "test/xml/test_document_fragment.rb"; require "test/xml/test_document_mini.rb"; require "test/xml/test_dtd.rb"; require "test/xml/test_dtd_encoding.rb"; require "test/xml/test_element_content.rb"; require "test/xml/test_element_decl.rb"; require "test/xml/test_entity_decl.rb"; require "test/xml/test_entity_reference.rb"; require "test/xml/test_namespace.rb"; require "test/xml/test_node.rb"; require "test/xml/test_node_attributes.rb"; require "test/xml/test_node_encoding.rb"; require "test/xml/test_node_inheritance.rb"; require "test/xml/test_node_reparenting.rb"; require "test/xml/test_node_set.rb"; require "test/xml/test_parse_options.rb"; require "test/xml/test_processing_instruction.rb"; require "test/xml/test_reader_encoding.rb"; require "test/xml/test_relax_ng.rb"; require "test/xml/test_schema.rb"; require "test/xml/test_syntax_error.rb"; require "test/xml/test_text.rb"; require "test/xml/test_unparented_node.rb"; require "test/xml/test_xinclude.rb"; require "test/xml/test_xpath.rb"; require "test/xml/node/test_save_options.rb"; require "test/xml/node/test_subclass.rb"; require "test/xml/sax/test_parser.rb"; require "test/xml/sax/test_parser_context.rb"; require "test/xml/sax/test_push_parser.rb"; require "test/xslt/test_custom_functions.rb"; require "test/xslt/test_exception_handling.rb"' -- 
/Users/yoko/Documents/workspace/Ranunculus/lib/nokogiri/css.rb:3 warning: global variable `$-w' not initialized
/Users/yoko/Documents/workspace/Ranunculus/test/helper.rb:10: version info: {"warnings"=>[], "nokogiri"=>"1.5.0", "ruby"=>{"version"=>"1.9.2", "platform"=>"java", "description"=>"jruby 1.6.5.dev (ruby-1.9.2-p136) (2011-09-29 8f84564) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_29) [darwin-x86_64-java]", "engine"=>"jruby", "jruby"=>"1.6.5.dev"}}
Loaded suite -e
Started
...............................................................................................................................................................................^\2011-11-18 12:01:29
Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.4-b02-402 mixed mode):

"Thread-7" daemon prio=5 tid=102b61800 nid=0x10b457000 in Object.wait() [10b456000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <7dbf377a8> (a java.lang.Object)
    at org.jruby.util.ShellLauncher$StreamPumper.run(ShellLauncher.java:1323)
    - locked <7dbf377a8> (a java.lang.Object)

"Thread-6" daemon prio=5 tid=10c0c6800 nid=0x10b295000 runnable [10b294000]
   java.lang.Thread.State: RUNNABLE
    at java.io.FileInputStream.readBytes(Native Method)
    at java.io.FileInputStream.read(FileInputStream.java:198)
    at java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:218)
    at org.jruby.util.ShellLauncher$StreamPumper.run(ShellLauncher.java:1331)

"Thread-5" daemon prio=5 tid=10c0c5800 nid=0x10b192000 runnable [10b191000]
   java.lang.Thread.State: RUNNABLE
    at java.io.FileInputStream.readBytes(Native Method)
    at java.io.FileInputStream.read(FileInputStream.java:220)
    at java.lang.UNIXProcess$DeferredCloseInputStream.read(UNIXProcess.java:227)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
    - locked <7dbf33038> (a java.io.BufferedInputStream)
    at java.io.FilterInputStream.read(FilterInputStream.java:90)
    at org.jruby.util.ShellLauncher$StreamPumper.run(ShellLauncher.java:1331)

"process reaper" daemon prio=5 tid=102eb7800 nid=0x10ae8d000 runnable [10ae8c000]
   java.lang.Thread.State: RUNNABLE
    at java.lang.UNIXProcess.waitForProcessExit(Native Method)
    at java.lang.UNIXProcess.access$900(UNIXProcess.java:17)
    at java.lang.UNIXProcess$2$1.run(UNIXProcess.java:86)

"Poller SunPKCS11-Darwin" daemon prio=1 tid=101a50800 nid=0x10b574000 waiting on condition [10b573000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
    at java.lang.Thread.sleep(Native Method)
    at sun.security.pkcs11.SunPKCS11$TokenPoller.run(SunPKCS11.java:692)
    at java.lang.Thread.run(Thread.java:680)

"Low Memory Detector" daemon prio=5 tid=1018a8800 nid=0x10a80d000 runnable [00000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" daemon prio=9 tid=1018a8000 nid=0x10a70a000 waiting on condition [00000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" daemon prio=9 tid=1018a7000 nid=0x10a607000 waiting on condition [00000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=9 tid=1018a6800 nid=0x10a504000 waiting on condition [00000000]
   java.lang.Thread.State: RUNNABLE

"Surrogate Locker Thread (Concurrent GC)" daemon prio=5 tid=1018a5800 nid=0x10a401000 waiting on condition [00000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=8 tid=10280a000 nid=0x10a06e000 in Object.wait() [10a06d000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <7de5e6bb0> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
    - locked <7de5e6bb0> (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=102809000 nid=0x109f6b000 in Object.wait() [109f6a000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <7de5e6bc8> (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 <7de5e6bc8> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=101801000 nid=0x100501000 in Object.wait() [1004f6000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <7dbf35258> (a org.jruby.util.ShellLauncher$StreamPumper)
    at java.lang.Thread.join(Thread.java:1210)
    - locked <7dbf35258> (a org.jruby.util.ShellLauncher$StreamPumper)
    at java.lang.Thread.join(Thread.java:1263)
    at org.jruby.util.ShellLauncher.handleStreams(ShellLauncher.java:1429)
    at org.jruby.util.ShellLauncher.runAndWaitPid(ShellLauncher.java:510)
    at org.jruby.util.ShellLauncher.runAndWaitPid(ShellLauncher.java:372)
    at org.jruby.RubyKernel.systemCommon(RubyKernel.java:1713)
    at org.jruby.RubyKernel.system19(RubyKernel.java:1695)
    at org.jruby.RubyKernel$s$0$0$system19.call(RubyKernel$s$0$0$system19.gen:65535)
    at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:642)
    at org.jruby.RubyMethod.call(RubyMethod.java:133)
    at org.jruby.RubyMethod.bmcall(RubyMethod.java:224)
    at org.jruby.RubyMethod$1.callback(RubyMethod.java:177)
    at org.jruby.runtime.MethodBlock.yield(MethodBlock.java:142)
    at org.jruby.runtime.BlockBody.yield(BlockBody.java:85)
    at org.jruby.runtime.BlockBody.call(BlockBody.java:73)
    at org.jruby.runtime.Block.call(Block.java:89)
    at org.jruby.RubyProc.call(RubyProc.java:270)
    at org.jruby.internal.runtime.methods.ProcMethod.call(ProcMethod.java:64)
    at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:211)
    at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:207)
    at org.jruby.internal.runtime.methods.WrapperMethod.call(WrapperMethod.java:58)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
    at org.jruby.ast.CallSpecialArgNode.interpret(CallSpecialArgNode.java:67)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:190)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:179)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
    at org.jruby.ast.FCallSpecialArgNode.interpret(FCallSpecialArgNode.java:39)
    at org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
    at org.jruby.ast.IfNode.interpret(IfNode.java:119)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:255)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:203)
    at org.jruby.runtime.callsite.SuperCallSite.cacheAndCall(SuperCallSite.java:386)
    at org.jruby.runtime.callsite.SuperCallSite.callBlock(SuperCallSite.java:238)
    at org.jruby.runtime.callsite.SuperCallSite.call(SuperCallSite.java:243)
    at org.jruby.runtime.callsite.SuperCallSite.callVarargs(SuperCallSite.java:109)
    at org.jruby.ast.SuperNode.interpret(SuperNode.java:114)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:255)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:203)
    at org.jruby.internal.runtime.methods.WrapperMethod.call(WrapperMethod.java:82)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:342)
    at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:212)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:216)
    at org.jruby.ast.FCallTwoArgBlockPassNode.interpret(FCallTwoArgBlockPassNode.java:34)
    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.ast.BlockNode.interpret(BlockNode.java:71)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:255)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:203)
    at org.jruby.runtime.callsite.SuperCallSite.cacheAndCall(SuperCallSite.java:386)
    at org.jruby.runtime.callsite.SuperCallSite.callBlock(SuperCallSite.java:238)
    at org.jruby.runtime.callsite.SuperCallSite.call(SuperCallSite.java:243)
    at org.jruby.runtime.callsite.SuperCallSite.callVarargs(SuperCallSite.java:109)
    at org.jruby.ast.SuperNode.interpret(SuperNode.java:114)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:190)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:179)
    at org.jruby.internal.runtime.methods.WrapperMethod.call(WrapperMethod.java:58)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
    at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
    at org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:203)
    at org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:191)
    at org.jruby.runtime.Interpreted19Block.call(Interpreted19Block.java:122)
    at org.jruby.runtime.Block.call(Block.java:89)
    at org.jruby.RubyProc.call(RubyProc.java:270)
    at org.jruby.RubyProc.call19(RubyProc.java:258)
    at org.jruby.RubyProc$i$0$0$call19.call(RubyProc$i$0$0$call19.gen:65535)
    at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:219)
    at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:215)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:201)
    at org.jruby.ast.CallTwoArgNode.interpret(CallTwoArgNode.java:59)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.ast.CaseNode.interpret(CaseNode.java:138)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
    at org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:203)
    at org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:154)
    at org.jruby.runtime.Block.yield(Block.java:130)
    at org.jruby.RubyArray.eachCommon(RubyArray.java:1605)
    at org.jruby.RubyArray.each(RubyArray.java:1612)
    at org.jruby.RubyArray$i$0$0$each.call(RubyArray$i$0$0$each.gen:65535)
    at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:142)
    at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:153)
    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.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:190)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:179)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:167)
    at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
    at org.jruby.ast.IfNode.interpret(IfNode.java:117)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
    at org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:203)
    at org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:154)
    at org.jruby.runtime.Interpreted19Block.yieldSpecific(Interpreted19Block.java:127)
    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.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.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:169)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:171)
    at org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:81)
    at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:142)
    at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:153)
    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.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:233)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:195)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:332)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:203)
    at org.jruby.ast.CallTwoArgNode.interpret(CallTwoArgNode.java:59)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
    at org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:203)
    at org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:154)
    at org.jruby.runtime.Block.yield(Block.java:130)
    at org.jruby.RubyArray.eachCommon(RubyArray.java:1605)
    at org.jruby.RubyArray.each(RubyArray.java:1612)
    at org.jruby.RubyArray$i$0$0$each.call(RubyArray$i$0$0$each.gen:65535)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:302)
    at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:144)
    at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:153)
    at org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:64)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:233)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:195)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:332)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:203)
    at org.jruby.ast.FCallTwoArgNode.interpret(FCallTwoArgNode.java:38)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
    at org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:203)
    at org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:154)
    at org.jruby.runtime.Interpreted19Block.yieldSpecific(Interpreted19Block.java:127)
    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.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.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:169)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:171)
    at org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:81)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:302)
    at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:144)
    at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:153)
    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.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:233)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:195)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:332)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:203)
    at org.jruby.ast.FCallTwoArgNode.interpret(FCallTwoArgNode.java:38)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:147)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:163)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:292)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:135)
    at org.jruby.ast.CallSpecialArgNode.interpret(CallSpecialArgNode.java:65)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:190)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:179)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
    at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
    at org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:203)
    at org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:154)
    at org.jruby.runtime.Block.yield(Block.java:130)
    at org.jruby.RubyArray.eachCommon(RubyArray.java:1605)
    at org.jruby.RubyArray.each(RubyArray.java:1612)
    at org.jruby.RubyArray$i$0$0$each.call(RubyArray$i$0$0$each.gen:65535)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:302)
    at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:144)
    at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:153)
    at org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:64)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.ast.IfNode.interpret(IfNode.java:119)
    at org.jruby.ast.IfNode.interpret(IfNode.java:119)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
    at org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:203)
    at org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:154)
    at org.jruby.runtime.Interpreted19Block.yieldSpecific(Interpreted19Block.java:127)
    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:216)
    at org.jruby.ast.RescueNode.interpretWithJavaExceptions(RescueNode.java:120)
    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.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:169)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:171)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:302)
    at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:144)
    at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:153)
    at org.jruby.ast.FCallNoArgBlockNode.interpret(FCallNoArgBlockNode.java:32)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:147)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:163)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:292)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:135)
    at org.jruby.ast.VCallNode.interpret(VCallNode.java:86)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
    at org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:203)
    at org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:154)
    at org.jruby.runtime.Interpreted19Block.yieldSpecific(Interpreted19Block.java:127)
    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:216)
    at org.jruby.ast.RescueNode.interpretWithJavaExceptions(RescueNode.java:120)
    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.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:169)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:171)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:302)
    at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:144)
    at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:153)
    at org.jruby.ast.FCallNoArgBlockNode.interpret(FCallNoArgBlockNode.java:32)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:147)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:163)
        at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:292)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:135)
    at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:63)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
    at org.jruby.ast.RootNode.interpret(RootNode.java:129)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_ROOT(ASTInterpreter.java:120)
    at org.jruby.Ruby.runInterpreter(Ruby.java:720)
    at org.jruby.Ruby.loadFile(Ruby.java:2470)
    at org.jruby.runtime.load.ExternalScript.load(ExternalScript.java:66)
    at org.jruby.runtime.load.LoadService.load(LoadService.java:272)
    at org.jruby.RubyKernel.loadCommon(RubyKernel.java:1081)
    at org.jruby.RubyKernel.load19(RubyKernel.java:1073)
    at org.jruby.RubyKernel$s$0$1$load19.call(RubyKernel$s$0$1$load19.gen:65535)
    at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:211)
    at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:207)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
    at Users.yoko.Projects.nokogiri.jruby.bin.rake.__file__(/Users/yoko/Projects/nokogiri/jruby/bin/rake:19)
    at Users.yoko.Projects.nokogiri.jruby.bin.rake.load(/Users/yoko/Projects/nokogiri/jruby/bin/rake)
    at org.jruby.Ruby.runScript(Ruby.java:693)
    at org.jruby.Ruby.runScript(Ruby.java:686)
    at org.jruby.Ruby.runNormally(Ruby.java:593)
    at org.jruby.Ruby.runFromMain(Ruby.java:442)
    at org.jruby.Main.doRunFromMain(Main.java:321)
    at org.jruby.Main.internalRun(Main.java:241)
    at org.jruby.Main.run(Main.java:207)
    at org.jruby.Main.run(Main.java:191)
    at org.jruby.Main.main(Main.java:171)

"VM Thread" prio=9 tid=102806800 nid=0x109e68000 runnable 

"Gang worker#0 (Parallel GC Threads)" prio=9 tid=101802800 nid=0x102201000 runnable 

"Gang worker#1 (Parallel GC Threads)" prio=9 tid=101803000 nid=0x102304000 runnable 

"Concurrent Mark-Sweep GC Thread" prio=9 tid=10184d800 nid=0x109b74000 runnable 
"VM Periodic Task Thread" prio=10 tid=1018ba000 nid=0x10a910000 waiting on condition 

"Exception Catcher Thread" prio=10 tid=101801800 nid=0x1017f9000 runnable 
JNI global references: 1385

Heap
2011-11-18 12:01:29
Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.4-b02-402 mixed mode):

"ReferenceReaper" daemon prio=5 tid=1036cc000 nid=0x10b0c5000 in Object.wait() [10b0c4000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <7dccb0070> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
    - locked <7dccb0070> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
    at org.jruby.util.ReferenceReaper$1.run(ReferenceReaper.java:32)
    at java.lang.Thread.run(Thread.java:680)

"Poller SunPKCS11-Darwin" daemon prio=1 tid=101db6000 nid=0x10adb0000 waiting on condition [10adaf000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
    at java.lang.Thread.sleep(Native Method)
    at sun.security.pkcs11.SunPKCS11$TokenPoller.run(SunPKCS11.java:692)
    at java.lang.Thread.run(Thread.java:680)

"Low Memory Detector" daemon prio=5 tid=103064800 nid=0x10a80d000 runnable [00000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" daemon prio=9 tid=103063800 nid=0x10a70a000 waiting on condition [00000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" daemon prio=9 tid=103063000 nid=0x10a607000 waiting on condition [00000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=9 tid=103062000 nid=0x10a504000 waiting on condition [00000000]
   java.lang.Thread.State: RUNNABLE

"Surrogate Locker Thread (Concurrent GC)" daemon prio=5 tid=103061000 nid=0x10a401000 waiting on condition [00000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=8 tid=103058800 nid=0x10a06e000 in Object.wait() [10a06d000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <7de48ef90> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
    - locked <7de48ef90> (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=103057800 nid=0x109f6b000 in Object.wait() [109f6a000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <7de5b0838> (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 <7de5b0838> (a java.lang.ref.Reference$Lock)

"main" prio=5 tid=101801800 nid=0x100501000 runnable [1004fd000]
   java.lang.Thread.State: RUNNABLE
    at org.joni.SearchAlgorithm$6.search(SearchAlgorithm.java:435)
    at org.joni.Matcher.forwardSearchRange(Matcher.java:129)
    at org.joni.Matcher.search(Matcher.java:432)
    at org.jruby.RubyRegexp.search19(RubyRegexp.java:1547)
    at org.jruby.RubyRegexp.matchPos(RubyRegexp.java:1474)
    at org.jruby.RubyRegexp.op_match19(RubyRegexp.java:1419)
    at org.jruby.RubyRegexp$i$1$0$op_match19.call(RubyRegexp$i$1$0$op_match19.gen:65535)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:167)
    at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
    at org.jruby.ast.FCallTwoArgNode.interpret(FCallTwoArgNode.java:38)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:233)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:195)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:332)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:203)
    at org.jruby.ast.FCallTwoArgNode.interpret(FCallTwoArgNode.java:38)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:169)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:171)
    at org.jruby.RubyClass.finvoke(RubyClass.java:536)
    at org.jruby.RubyBasicObject.send19(RubyBasicObject.java:1688)
    at org.jruby.RubyBasicObject$i$send19.call(RubyBasicObject$i$send19.gen:65535)
    at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodZeroOrOneOrNBlock.call(JavaMethod.java:266)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
    at rubyjit.run_9872AB00800D2C9F43D1436A49CD2F22329F78C1.chained_1_rescue_1$RUBY$SYNTHETIC__file__(/Users/yoko/Projects/nokogiri/jruby/lib/ruby/1.9/minitest/unit.rb:695)
    at rubyjit.run_9872AB00800D2C9F43D1436A49CD2F22329F78C1.chained_0_ensure_1$RUBY$__ensure__(/Users/yoko/Projects/nokogiri/jruby/lib/ruby/1.9/minitest/unit.rb)
    at rubyjit.run_9872AB00800D2C9F43D1436A49CD2F22329F78C1.__file__(/Users/yoko/Projects/nokogiri/jruby/lib/ruby/1.9/minitest/unit.rb:692)
    at rubyjit.run_9872AB00800D2C9F43D1436A49CD2F22329F78C1.__file__(/Users/yoko/Projects/nokogiri/jruby/lib/ruby/1.9/minitest/unit.rb)
    at org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:167)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
    at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
    at org.jruby.ast.DAsgnNode.interpret(DAsgnNode.java:110)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
    at org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:203)
    at org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:154)
    at org.jruby.runtime.Block.yield(Block.java:130)
    at org.jruby.RubyArray.eachCommon(RubyArray.java:1605)
    at org.jruby.RubyArray.each(RubyArray.java:1612)
    at org.jruby.RubyArray$i$0$0$each.call(RubyArray$i$0$0$each.gen:65535)
    at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:142)
    at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:153)
    at org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:64)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
    at org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:203)
    at org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:154)
    at org.jruby.runtime.Block.yield(Block.java:130)
    at org.jruby.RubyArray.eachCommon(RubyArray.java:1605)
    at org.jruby.RubyArray.each(RubyArray.java:1612)
    at org.jruby.RubyArray$i$0$0$each.call(RubyArray$i$0$0$each.gen:65535)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:302)
    at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:144)
    at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:153)
    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.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:190)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:179)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
    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:216)
    at org.jruby.ast.RescueNode.interpretWithJavaExceptions(RescueNode.java:120)
    at org.jruby.ast.RescueNode.interpret(RescueNode.java:110)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:75)
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:190)
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:179)
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:312)
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:169)
    at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
    at org.jruby.ast.DAsgnNode.interpret(DAsgnNode.java:110)
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104)
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71)
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)
    at org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:203)
    at org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:191)
    at org.jruby.runtime.Interpreted19Block.call(Interpreted19Block.java:122)
    at org.jruby.runtime.Block.call(Block.java:89)
    at org.jruby.RubyProc.call(RubyProc.java:270)
    at org.jruby.RubyProc.call(RubyProc.java:224)
    at org.jruby.Ruby.tearDown(Ruby.java:2763)
    at org.jruby.Ruby.tearDown(Ruby.java:2750)
    at org.jruby.Main.internalRun(Main.java:244)
    at org.jruby.Main.run(Main.java:207)
    at org.jruby.Main.run(Main.java:191)
    at org.jruby.Main.main(Main.java:171)

"VM Thread" prio=9 tid=103053000 nid=0x109e68000 runnable 

"Gang worker#0 (Parallel GC Threads)" prio=9 tid=101802800 nid=0x102a01000 runnable 

"Gang worker#1 (Parallel GC Threads)" prio=9 tid=101803800 nid=0x102b04000 runnable 

"Concurrent Mark-Sweep GC Thread" prio=9 tid=10184e000 nid=0x109b74000 runnable 
"VM Periodic Task Thread" prio=10 tid=10185f800 nid=0x10a910000 waiting on condition 

"Exception Catcher Thread" prio=10 tid=101802000 nid=0x1017f9000 runnable 
JNI global references: 1088

Heap
 par new generation   total 19136K, used 7710K [7dba00000, 7dcec0000, 7de390000)
  eden space 17024K,  36% used [7dba00000, 7dc025920, 7dcaa0000)
  from space 2112K,  67% used [7dccb0000, 7dce120a0, 7dcec0000)
  to   space 2112K,   0% used [7dcaa0000, 7dcaa0000, 7dccb0000)
 concurrent mark-sweep generation total 63872K, used 8008K [7de390000, 7e21f0000, 7fae00000)
 par new generation   total 19136K, used 3462K [7dba00000, 7dcec0000, 7de390000)
  eden space 17024K,   9% used [7dba00000, 7dbb9c378, 7dcaa0000)
  from space 2112K,  85% used [7dccb0000, 7dce75800, 7dcec0000)
  to   space 2112K,   0% used [7dcaa0000, 7dcaa0000, 7dccb0000)
 concurrent mark-sweep generation total 63872K, used 30228K [7de390000, 7e21f0000, 7fae00000)
 concurrent-mark-sweep perm gen total 25472K, used 25425K [7fae00000, 7fc6e0000, 800000000)

 concurrent-mark-sweep perm gen total 31808K, used 31674K [7fae00000, 7fcd10000, 800000000)
@dekz
Copy link

dekz commented Apr 10, 2012

cc /me
This seems more of a JRuby issue than Nokogiri, I seem to be getting a temporary lockout when performing Proc new calls from a rake task which has performed a Runtime.exec call spawning a new jruby instance.

Process:
jruby --1.9 -S rake -> Runtime.exec('jruby') -> ...output... -> Proc.new.call [LOCK]

@yokolet
Copy link
Member Author

yokolet commented Apr 11, 2012

I'm also suspecting JRuby. But, I know there was a suspicious implementation in Nokogiri. I rewrote that part and pushed yesterday. So, on Nokogiri in master, "jruby -S rake" command doesn't cause dead lock anymore.

For reference, I paste JRuby's version below. It is 1.9 mode.

$ jruby -v
jruby 1.6.8.dev (ruby-1.9.2-p312) (2012-04-11 03c14ba) (Java HotSpot(TM) 64-Bit Server VM 1.6.0_29) [darwin-x86_64-java]

Thanks for looking at this issue!

@yokolet yokolet closed this as completed Apr 11, 2012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants