From: Bill Kelly Date: 2010-07-19T18:30:23+09:00 Subject: [ruby-core:31351] Re: [Bug #3523][Assigned] win32 exception c0000029 on exit using fibers Hi, Bill Kelly wrote: > > ... and now the 0xC0000374 happens again, every time, > after the FIRST time through the loop. > > (I already had the GC.stress = true, before.) > > > Currently MemoryValidator isn't helping much. I will > try recompiling with --enable-shared . . . . (Note: --enable-shared didn't change the Makefile produced by extconf.rb at all. So, nevermind --enable-shared.) When I put the test in a loop, and if I don't get the 0xC0000374, I see the following: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ test/test_em_fiber4f.rb:151: [BUG] Segmentation fault ruby 1.9.2dev (2010-07-15) [i386-mswin32_100] -- control frame ---------- c:0025 p:---- s:0096 b:0096 l:000095 d:000095 CFUNC :transfer c:0024 p:0046 s:0093 b:0093 l:0024f0 d:0024f0 METHOD test/test_em_fiber4f.rb:151 c:0023 p:0083 s:0087 b:0087 l:00265c d:00265c METHOD test/test_em_fiber4f.rb:260 c:0022 p:0076 s:0080 b:0080 l:000079 d:000079 METHOD test/test_em_fiber4f.rb:241 c:0021 p:0021 s:0076 b:0076 l:000075 d:000075 METHOD test/test_em_fiber4f.rb:182 c:0020 p:---- s:0072 b:0072 l:000071 d:000071 FINISH c:0019 p:---- s:0070 b:0070 l:000069 d:000069 CFUNC :run_machine c:0018 p:0248 s:0067 b:0067 l:000066 d:000066 METHOD m:/dev/ruby-build/v1_9_2-pure/lib/ruby/site_ruby/1.9.1/eventmachine.rb:195 c:0017 p:0131 s:0060 b:0060 l:001df4 d:001df4 METHOD test/test_em_fiber4f.rb:527 c:0016 p:0009 s:0055 b:0055 l:000047 d:000054 BLOCK test/test_em_fiber4f.rb:512 c:0015 p:---- s:0053 b:0053 l:000052 d:000052 FINISH c:0014 p:---- s:0051 b:0051 l:000050 d:000050 CFUNC :times c:0013 p:0030 s:0048 b:0048 l:000047 d:000047 METHOD test/test_em_fiber4f.rb:512 c:0012 p:0063 s:0045 b:0045 l:000044 d:000044 METHOD m:/dev/ruby-build/v1_9_2-pure/lib/ruby/1.9.1/minitest/unit.rb:680 c:0011 p:0091 s:0039 b:0039 l:000020 d:000038 BLOCK m:/dev/ruby-build/v1_9_2-pure/lib/ruby/1.9.1/minitest/unit.rb:641 c:0010 p:---- s:0034 b:0034 l:000033 d:000033 FINISH c:0009 p:---- s:0032 b:0032 l:000031 d:000031 CFUNC :each c:0008 p:0026 s:0029 b:0029 l:000020 d:000028 BLOCK m:/dev/ruby-build/v1_9_2-pure/lib/ruby/1.9.1/minitest/unit.rb:635 c:0007 p:---- s:0026 b:0026 l:000025 d:000025 FINISH c:0006 p:---- s:0024 b:0024 l:000023 d:000023 CFUNC :each c:0005 p:0082 s:0021 b:0021 l:000020 d:000020 METHOD m:/dev/ruby-build/v1_9_2-pure/lib/ruby/1.9.1/minitest/unit.rb:634 c:0004 p:0188 s:0016 b:0016 l:000015 d:000015 METHOD m:/dev/ruby-build/v1_9_2-pure/lib/ruby/1.9.1/minitest/unit.rb:594 c:0003 p:0041 s:0007 b:0007 l:00212c d:000006 BLOCK m:/dev/ruby-build/v1_9_2-pure/lib/ruby/1.9.1/minitest/unit.rb:492 c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH c:0001 p:0000 s:0002 b:0002 l:00060c d:00060c TOP --------------------------- -- Ruby level backtrace information ---------------------------------------- m:/dev/ruby-build/v1_9_2-pure/lib/ruby/1.9.1/minitest/unit.rb:492:in `block in autorun' m:/dev/ruby-build/v1_9_2-pure/lib/ruby/1.9.1/minitest/unit.rb:594:in `run' m:/dev/ruby-build/v1_9_2-pure/lib/ruby/1.9.1/minitest/unit.rb:634:in `run_test_suites' m:/dev/ruby-build/v1_9_2-pure/lib/ruby/1.9.1/minitest/unit.rb:634:in `each' m:/dev/ruby-build/v1_9_2-pure/lib/ruby/1.9.1/minitest/unit.rb:635:in `block in run_test_suites' m:/dev/ruby-build/v1_9_2-pure/lib/ruby/1.9.1/minitest/unit.rb:635:in `each' m:/dev/ruby-build/v1_9_2-pure/lib/ruby/1.9.1/minitest/unit.rb:641:in `block (2 levels) in run_test_suites' m:/dev/ruby-build/v1_9_2-pure/lib/ruby/1.9.1/minitest/unit.rb:680:in `run' test/test_em_fiber4f.rb:512:in `test_em_fiber' test/test_em_fiber4f.rb:512:in `times' test/test_em_fiber4f.rb:512:in `block in test_em_fiber' test/test_em_fiber4f.rb:527:in `do_test_em_fiber' m:/dev/ruby-build/v1_9_2-pure/lib/ruby/site_ruby/1.9.1/eventmachine.rb:195:in `run' m:/dev/ruby-build/v1_9_2-pure/lib/ruby/site_ruby/1.9.1/eventmachine.rb:195:in `run_machine' test/test_em_fiber4f.rb:182:in `receive_data' test/test_em_fiber4f.rb:241:in `rpc_connection_established' test/test_em_fiber4f.rb:260:in `rpc_dispatch' test/test_em_fiber4f.rb:151:in `run_in_fiber' test/test_em_fiber4f.rb:151:in `transfer' [NOTE] You may have encountered a bug in the Ruby interpreter or extension libraries. Bug reports are welcome. For details: http://www.ruby-lang.org/bugreport.html ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Note, I get no such crash on 1.9.2 if I back-port cont.c from trunk. (I can loop the test hundreds of times with no crash.) So I can't prove it's not EventMachine's fault, but... It seems to have to do with cont.c. Regards, Bill