哪个版本的ruby少了马车?

我最近写了一些复杂的ruby脚本,最终在随机时间和随机位置失败了segfaults,如nokogiri,mechanize,iconv,timeout。 我已经尝试过在Windows 7下的1.9.1 p 129,1.8.6 p 369和ubuntu下的1.8.7,仍然是相同的行为。 由于有三个实际版本(1.8.6,1.8.7和1.9.1)可以从ruby-lang下载,哪一个是较少的错误,维护所有版本的原因是什么?

好吧,我不确定导致错误的是什么,这里是一个错误示例转储

D:/ruby-1.9.1/lib/ruby/1.9.1/net/protocol.rb:93: [BUG] Segmentation fault ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-mswin32] -- control frame ---------- c:0031 p:0167 s:0167 b:0163 l:000162 d:000162 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/protocol.rb:93 c:0030 p:0111 s:0155 b:0155 l:000154 d:000154 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:2353 c:0029 p:0024 s:0147 b:0147 l:000146 d:000146 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:2328 c:0028 p:0099 s:0142 b:0142 l:000141 d:000141 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:2288 c:0027 p:0050 s:0136 b:0136 l:000898 d:000898 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize/chain/response_reader.rb:15 c:0026 p:0021 s:0128 b:0128 l:000127 d:000127 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize/chain.rb:25 c:0025 p:0067 s:0124 b:0124 l:001788 d:000123 BLOCK D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:490 c:0024 p:0017 s:0120 b:0120 l:000112 d:000119 BLOCK D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:1120 c:0023 p:0038 s:0118 b:0118 l:000117 d:000117 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:2251 c:0022 p:0110 s:0113 b:0113 l:000112 d:000112 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:1119 c:0021 p:0097 s:0108 b:0108 l:000107 d:000107 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:1103 c:0020 p:0513 s:0101 b:0101 l:001788 d:001788 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:485 c:0019 p:0170 s:0075 b:0075 l:000074 d:000074 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:413 c:0018 p:0123 s:0066 b:0066 l:000065 d:000065 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:344 c:0017 p:0024 s:0060 b:0060 l:000059 d:000059 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize/form.rb:130 c:0016 p:0039 s:0055 b:0055 l:000054 d:000054 METHOD D:/code/h4/www/poster.rb:340 c:0015 p:0223 s:0050 b:0050 l:000049 d:000049 METHOD D:/code/h4/www/poster.rb:238 c:0014 p:0112 s:0045 b:0045 l:000044 d:000044 METHOD D:/code/h4/www/poster.rb:286 c:0013 p:0330 s:0042 b:0042 l:000041 d:000041 METHOD D:/code/h4/www/poster.rb:115 c:0012 p:0038 s:0033 b:0033 l:000016 d:000032 BLOCK D:/code/h4/post.rb:22 c:0011 p:---- s:0030 b:0030 l:000029 d:000029 FINISH c:0010 p:---- s:0028 b:0028 l:000027 d:000027 CFUNC :times c:0009 p:0050 s:0025 b:0025 l:000016 d:000024 BLOCK D:/code/h4/post.rb:19 c:0008 p:---- s:0022 b:0022 l:000021 d:000021 FINISH c:0007 p:---- s:0020 b:0020 l:000019 d:000019 CFUNC :times c:0006 p:0111 s:0017 b:0017 l:000016 d:000016 TOP D:/code/h4/post.rb:14 c:0005 p:---- s:0012 b:0012 l:000011 d:000011 FINISH c:0004 p:---- s:0010 b:0010 l:000009 d:000009 CFUNC :load c:0003 p:0061 s:0006 b:0006 l:000e84 d:00227c EVAL -e:1 c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH c:0001 p:0000 s:0002 b:0002 l:000e84 d:000e84 TOP --------------------------- D:/ruby-1.9.1/lib/ruby/1.9.1/net/protocol.rb:93: [BUG] object allocation during garbage collection phase ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-mswin32] -- control frame ---------- c:0031 p:0167 s:0167 b:0163 l:000162 d:000162 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/protocol.rb:93 c:0030 p:0111 s:0155 b:0155 l:000154 d:000154 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:2353 c:0029 p:0024 s:0147 b:0147 l:000146 d:000146 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:2328 c:0028 p:0099 s:0142 b:0142 l:000141 d:000141 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:2288 c:0027 p:0050 s:0136 b:0136 l:000898 d:000898 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize/chain/response_reader.rb:15 c:0026 p:0021 s:0128 b:0128 l:000127 d:000127 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize/chain.rb:25 c:0025 p:0067 s:0124 b:0124 l:001788 d:000123 BLOCK D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:490 c:0024 p:0017 s:0120 b:0120 l:000112 d:000119 BLOCK D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:1120 c:0023 p:0038 s:0118 b:0118 l:000117 d:000117 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:2251 c:0022 p:0110 s:0113 b:0113 l:000112 d:000112 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:1119 c:0021 p:0097 s:0108 b:0108 l:000107 d:000107 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:1103 c:0020 p:0513 s:0101 b:0101 l:001788 d:001788 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:485 c:0019 p:0170 s:0075 b:0075 l:000074 d:000074 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:413 c:0018 p:0123 s:0066 b:0066 l:000065 d:000065 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:344 c:0017 p:0024 s:0060 b:0060 l:000059 d:000059 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize/form.rb:130 c:0016 p:0039 s:0055 b:0055 l:000054 d:000054 METHOD D:/code/h4/www/poster.rb:340 c:0015 p:0223 s:0050 b:0050 l:000049 d:000049 METHOD D:/code/h4/www/poster.rb:238 c:0014 p:0112 s:0045 b:0045 l:000044 d:000044 METHOD D:/code/h4/www/poster.rb:286 c:0013 p:0330 s:0042 b:0042 l:000041 d:000041 METHOD D:/code/h4/www/poster.rb:115 c:0012 p:0038 s:0033 b:0033 l:000016 d:000032 BLOCK D:/code/h4/post.rb:22 c:0011 p:---- s:0030 b:0030 l:000029 d:000029 FINISH c:0010 p:---- s:0028 b:0028 l:000027 d:000027 CFUNC :times c:0009 p:0050 s:0025 b:0025 l:000016 d:000024 BLOCK D:/code/h4/post.rb:19 c:0008 p:---- s:0022 b:0022 l:000021 d:000021 FINISH c:0007 p:---- s:0020 b:0020 l:000019 d:000019 CFUNC :times c:0006 p:0111 s:0017 b:0017 l:000016 d:000016 TOP D:/code/h4/post.rb:14 c:0005 p:---- s:0012 b:0012 l:000011 d:000011 FINISH c:0004 p:---- s:0010 b:0010 l:000009 d:000009 CFUNC :load c:0003 p:0061 s:0006 b:0006 l:000e84 d:00227c EVAL -e:1 c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH c:0001 p:0000 s:0002 b:0002 l:000e84 d:000e84 TOP --------------------------- -- Ruby level backtrace information----------------------------------------- D:/ruby-1.9.1/lib/ruby/1.9.1/net/protocol.rb:93:in `read' D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:2353:in `read_chunked' D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:2328:in `read_body_0' D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:2288:in `read_body' D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize/chain/response_reader.rb:15:in `handle' D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize/chain.rb:25:in `handle' D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:490:in `block in fetch_page' D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:1120:in `block in transport_request' D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:2251:in `reading_body' D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:1119:in `transport_request' D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:1103:in `request' D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:485:in `fetch_page' D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:413:in `post_form' D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:344:in `submit' D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize/form.rb:130:in `submit' D:/code/h4/www/poster.rb:340:in `submit' D:/code/h4/www/poster.rb:238:in `register' D:/code/h4/www/poster.rb:286:in `login' D:/code/h4/www/poster.rb:115:in `checkifworks' D:/code/h4/post.rb:22:in `block (2 levels) in ' D:/code/h4/post.rb:19:in `times' D:/code/h4/post.rb:19:in `block in ' D:/code/h4/post.rb:14:in `times' D:/code/h4/post.rb:14:in `' -e:1:in `load' -e:1:in `' [NOTE] You may encounter a bug of Ruby interpreter. Bug reports are welcome. For details: http://www.ruby-lang.org/bugreport.html This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. 

我会尝试使用Jruby,以防我使用nokogiri。 这是另一个转储,如果它可能以某种方式有用

 D:/ruby-1.9.1/lib/ruby/1.9.1/net/protocol.rb:135: [BUG] Segmentation fault ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-mswin32] -- control frame ---------- c:0026 p:---- s:0142 b:0142 l:000141 d:000141 CFUNC :sysread c:0025 p:0019 s:0138 b:0137 l:000adc d:000136 BLOCK D:/ruby-1.9.1/lib/ruby/1.9.1/net/protocol.rb:135 c:0024 p:0103 s:0135 b:0135 l:000e08 d:000e08 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/timeout.rb:52 c:0023 p:0026 s:0123 b:0123 l:000122 d:000122 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/timeout.rb:82 c:0022 p:0013 s:0117 b:0117 l:000adc d:000adc METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/protocol.rb:134 c:0021 p:0025 s:0114 b:0114 l:000113 d:000113 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/protocol.rb:116 c:0020 p:0013 s:0108 b:0108 l:000107 d:000107 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/protocol.rb:126 c:0019 p:0012 s:0105 b:0105 l:000104 d:000104 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:2135 c:0018 p:0013 s:0099 b:0099 l:000098 d:000098 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:2124 c:0017 p:0069 s:0091 b:0091 l:000090 d:000090 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:1117 c:0016 p:0097 s:0086 b:0086 l:000085 d:000085 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:1103 c:0015 p:0513 s:0079 b:0079 l:0025a0 d:0025a0 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:485 c:0014 p:0346 s:0053 b:0053 l:000052 d:000052 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:238 c:0013 p:0016 s:0044 b:0044 l:000043 d:000043 METHOD D:/code/h4/www/poster.rb:185 c:0012 p:0085 s:0040 b:0040 l:000039 d:000039 METHOD D:/code/h4/www/poster.rb:217 c:0011 p:0112 s:0035 b:0035 l:000034 d:000034 METHOD D:/code/h4/www/poster.rb:286 c:0010 p:0308 s:0032 b:0032 l:000031 d:000031 METHOD D:/code/h4/www/poster.rb:115 c:0009 p:0011 s:0023 b:0023 l:000015 d:000022 BLOCK D:/code/h4/post.rb:14 c:0008 p:---- s:0021 b:0021 l:000020 d:000020 FINISH c:0007 p:---- s:0019 b:0019 l:000018 d:000018 CFUNC :times c:0006 p:0107 s:0016 b:0016 l:000015 d:000015 TOP D:/code/h4/post.rb:13 c:0005 p:---- s:0012 b:0012 l:000011 d:000011 FINISH c:0004 p:---- s:0010 b:0010 l:000009 d:000009 CFUNC :load c:0003 p:0061 s:0006 b:0006 l:000604 d:001a54 EVAL -e:1 c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH c:0001 p:0000 s:0002 b:0002 l:000604 d:000604 TOP --------------------------- D:/ruby-1.9.1/lib/ruby/1.9.1/net/protocol.rb:135: [BUG] object allocation during garbage collection phase ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-mswin32] -- control frame ---------- c:0026 p:---- s:0142 b:0142 l:000141 d:000141 CFUNC :sysread c:0025 p:0019 s:0138 b:0137 l:000adc d:000136 BLOCK D:/ruby-1.9.1/lib/ruby/1.9.1/net/protocol.rb:135 c:0024 p:0103 s:0135 b:0135 l:000e08 d:000e08 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/timeout.rb:52 c:0023 p:0026 s:0123 b:0123 l:000122 d:000122 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/timeout.rb:82 c:0022 p:0013 s:0117 b:0117 l:000adc d:000adc METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/protocol.rb:134 c:0021 p:0025 s:0114 b:0114 l:000113 d:000113 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/protocol.rb:116 c:0020 p:0013 s:0108 b:0108 l:000107 d:000107 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/protocol.rb:126 c:0019 p:0012 s:0105 b:0105 l:000104 d:000104 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:2135 c:0018 p:0013 s:0099 b:0099 l:000098 d:000098 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:2124 c:0017 p:0069 s:0091 b:0091 l:000090 d:000090 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:1117 c:0016 p:0097 s:0086 b:0086 l:000085 d:000085 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:1103 c:0015 p:0513 s:0079 b:0079 l:0025a0 d:0025a0 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:485 c:0014 p:0346 s:0053 b:0053 l:000052 d:000052 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:238 c:0013 p:0016 s:0044 b:0044 l:000043 d:000043 METHOD D:/code/h4/www/poster.rb:185 c:0012 p:0085 s:0040 b:0040 l:000039 d:000039 METHOD D:/code/h4/www/poster.rb:217 c:0011 p:0112 s:0035 b:0035 l:000034 d:000034 METHOD D:/code/h4/www/poster.rb:286 c:0010 p:0308 s:0032 b:0032 l:000031 d:000031 METHOD D:/code/h4/www/poster.rb:115 c:0009 p:0011 s:0023 b:0023 l:000015 d:000022 BLOCK D:/code/h4/post.rb:14 c:0008 p:---- s:0021 b:0021 l:000020 d:000020 FINISH c:0007 p:---- s:0019 b:0019 l:000018 d:000018 CFUNC :times c:0006 p:0107 s:0016 b:0016 l:000015 d:000015 TOP D:/code/h4/post.rb:13 c:0005 p:---- s:0012 b:0012 l:000011 d:000011 FINISH c:0004 p:---- s:0010 b:0010 l:000009 d:000009 CFUNC :load c:0003 p:0061 s:0006 b:0006 l:000604 d:001a54 EVAL -e:1 c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH c:0001 p:0000 s:0002 b:0002 l:000604 d:000604 TOP --------------------------- -- Ruby level backtrace information----------------------------------------- D:/ruby-1.9.1/lib/ruby/1.9.1/net/protocol.rb:135:in `sysread' D:/ruby-1.9.1/lib/ruby/1.9.1/net/protocol.rb:135:in `block in rbuf_fill' D:/ruby-1.9.1/lib/ruby/1.9.1/timeout.rb:52:in `timeout' D:/ruby-1.9.1/lib/ruby/1.9.1/timeout.rb:82:in `timeout' D:/ruby-1.9.1/lib/ruby/1.9.1/net/protocol.rb:134:in `rbuf_fill' D:/ruby-1.9.1/lib/ruby/1.9.1/net/protocol.rb:116:in `readuntil' D:/ruby-1.9.1/lib/ruby/1.9.1/net/protocol.rb:126:in `readline' D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:2135:in `read_status_line' D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:2124:in `read_new' D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:1117:in `transport_request' D:/ruby-1.9.1/lib/ruby/1.9.1/net/http.rb:1103:in `request' D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:485:in `fetch_page' D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:238:in `get' D:/code/h4/www/poster.rb:185:in `myget' D:/code/h4/www/poster.rb:217:in `register' D:/code/h4/www/poster.rb:286:in `login' D:/code/h4/www/poster.rb:115:in `checkifworks' D:/code/h4/post.rb:14:in `block in ' D:/code/h4/post.rb:13:in `times' D:/code/h4/post.rb:13:in `' -e:1:in `load' -e:1:in `' [NOTE] You may encounter a bug of Ruby interpreter. Bug reports are welcome. For details: http://www.ruby-lang.org/bugreport.html This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. 

而另一个。 我希望,因为我没有直接读取任何内存或进行一些相对较低级别的操作,我从Ruby解释器中获得的最糟糕的事情必定是exception? 我对吗?

 D:/ruby-1.9.1/lib/ruby/1.9.1/uri/generic.rb:1078: [BUG] Segmentation fault ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-mswin32] -- control frame ---------- c:0024 p:---- s:0134 b:0134 l:000133 d:000133 CFUNC :collect c:0023 p:0017 s:0131 b:0131 l:000130 d:000130 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/uri/generic.rb:1078 c:0022 p:0052 s:0128 b:0127 l:000126 d:000126 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/uri/generic.rb:1051 c:0021 p:0033 s:0123 b:0123 l:000122 d:000122 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/uri/generic.rb:740 c:0020 p:0555 s:0116 b:0116 l:000115 d:000115 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize/chain/uri_resolver.rb:62 c:0019 p:0021 s:0107 b:0107 l:000106 d:000106 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize/chain.rb:25 c:0018 p:0251 s:0103 b:0103 l:000102 d:000102 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:457 c:0017 p:0346 s:0077 b:0077 l:000076 d:000076 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:238 c:0016 p:0258 s:0068 b:0068 l:000a74 d:000067 BLOCK D:/code/h4/www/poster.rb:464 c:0015 p:---- s:0052 b:0052 l:000051 d:000051 FINISH c:0014 p:---- s:0050 b:0050 l:000049 d:000049 CFUNC :each c:0013 p:0243 s:0047 b:0047 l:000a74 d:000a74 METHOD D:/code/h4/www/poster.rb:446 c:0012 p:0174 s:0040 b:0040 l:000039 d:000039 METHOD D:/code/h4/www/poster.rb:232 c:0011 p:0112 s:0035 b:0035 l:000034 d:000034 METHOD D:/code/h4/www/poster.rb:286 c:0010 p:0308 s:0032 b:0032 l:000031 d:000031 METHOD D:/code/h4/www/poster.rb:115 c:0009 p:0011 s:0023 b:0023 l:000015 d:000022 BLOCK D:/code/h4/post.rb:14 c:0008 p:---- s:0021 b:0021 l:000020 d:000020 FINISH c:0007 p:---- s:0019 b:0019 l:000018 d:000018 CFUNC :times c:0006 p:0107 s:0016 b:0016 l:000015 d:000015 TOP D:/code/h4/post.rb:13 c:0005 p:---- s:0012 b:0012 l:000011 d:000011 FINISH c:0004 p:---- s:0010 b:0010 l:000009 d:000009 CFUNC :load c:0003 p:0061 s:0006 b:0006 l:0001d4 d:001624 EVAL -e:1 c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH c:0001 p:0000 s:0002 b:0002 l:0001d4 d:0001d4 TOP --------------------------- D:/ruby-1.9.1/lib/ruby/1.9.1/uri/generic.rb:1078: [BUG] object allocation during garbage collection phase ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-mswin32] -- control frame ---------- c:0024 p:---- s:0134 b:0134 l:000133 d:000133 CFUNC :collect c:0023 p:0017 s:0131 b:0131 l:000130 d:000130 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/uri/generic.rb:1078 c:0022 p:0052 s:0128 b:0127 l:000126 d:000126 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/uri/generic.rb:1051 c:0021 p:0033 s:0123 b:0123 l:000122 d:000122 METHOD D:/ruby-1.9.1/lib/ruby/1.9.1/uri/generic.rb:740 c:0020 p:0555 s:0116 b:0116 l:000115 d:000115 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize/chain/uri_resolver.rb:62 c:0019 p:0021 s:0107 b:0107 l:000106 d:000106 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize/chain.rb:25 c:0018 p:0251 s:0103 b:0103 l:000102 d:000102 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:457 c:0017 p:0346 s:0077 b:0077 l:000076 d:000076 METHOD D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:238 c:0016 p:0258 s:0068 b:0068 l:000a74 d:000067 BLOCK D:/code/h4/www/poster.rb:464 c:0015 p:---- s:0052 b:0052 l:000051 d:000051 FINISH c:0014 p:---- s:0050 b:0050 l:000049 d:000049 CFUNC :each c:0013 p:0243 s:0047 b:0047 l:000a74 d:000a74 METHOD D:/code/h4/www/poster.rb:446 c:0012 p:0174 s:0040 b:0040 l:000039 d:000039 METHOD D:/code/h4/www/poster.rb:232 c:0011 p:0112 s:0035 b:0035 l:000034 d:000034 METHOD D:/code/h4/www/poster.rb:286 c:0010 p:0308 s:0032 b:0032 l:000031 d:000031 METHOD D:/code/h4/www/poster.rb:115 c:0009 p:0011 s:0023 b:0023 l:000015 d:000022 BLOCK D:/code/h4/post.rb:14 c:0008 p:---- s:0021 b:0021 l:000020 d:000020 FINISH c:0007 p:---- s:0019 b:0019 l:000018 d:000018 CFUNC :times c:0006 p:0107 s:0016 b:0016 l:000015 d:000015 TOP D:/code/h4/post.rb:13 c:0005 p:---- s:0012 b:0012 l:000011 d:000011 FINISH c:0004 p:---- s:0010 b:0010 l:000009 d:000009 CFUNC :load c:0003 p:0061 s:0006 b:0006 l:0001d4 d:001624 EVAL -e:1 c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH c:0001 p:0000 s:0002 b:0002 l:0001d4 d:0001d4 TOP --------------------------- -- Ruby level backtrace information----------------------------------------- D:/ruby-1.9.1/lib/ruby/1.9.1/uri/generic.rb:1078:in `collect' D:/ruby-1.9.1/lib/ruby/1.9.1/uri/generic.rb:1078:in `component_ary' D:/ruby-1.9.1/lib/ruby/1.9.1/uri/generic.rb:1051:in `==' D:/ruby-1.9.1/lib/ruby/1.9.1/uri/generic.rb:740:in `merge' D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize/chain/uri_resolver.rb:62:in `handle' D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize/chain.rb:25:in `handle' D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:457:in `fetch_page' D:/ruby-1.9.1/lib/ruby/gems/1.9.1/gems/mechanize-0.9.3/lib/www/mechanize.rb:238:in `get' D:/code/h4/www/poster.rb:464:in `block in fillform' D:/code/h4/www/poster.rb:446:in `each' D:/code/h4/www/poster.rb:446:in `fillform' D:/code/h4/www/poster.rb:232:in `register' D:/code/h4/www/poster.rb:286:in `login' D:/code/h4/www/poster.rb:115:in `checkifworks' D:/code/h4/post.rb:14:in `block in ' D:/code/h4/post.rb:13:in `times' D:/code/h4/post.rb:13:in `' -e:1:in `load' -e:1:in `' [NOTE] You may encounter a bug of Ruby interpreter. Bug reports are welcome. For details: http://www.ruby-lang.org/bugreport.html This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. 

我只能想到你可能已经考虑过的三件事。 但是为了记录:

  1. 试试jRuby,看看会发生什么。 这可能会对所有这些库中的本机扩展产生一些问题。

  2. 在ruby论坛上提出这个问题。

  3. 咬紧牙关,用-g编译ruby,然后调试C代码。 如果你解决它,我会送你一瓶中央海岸葡萄酒,如果这是合法的…

1.8.6是当前版本很长一段时间。 1.9是最新版本,虽然它引入了一些与旧版Ruby程序不兼容的版本。 1.8.7作为1.8和1.9之间的“桥梁”发布,包含一些较新的向后兼容function,但保留旧的解释器而不是新的YARV虚拟机。

至于“少马车”,我真的不知道如何回答这个问题。 我没有在任何版本的Ruby本身遇到过很多错误。 唯一一个我能记得错误的是1.8.6,但那是多年前的事了。 是什么让你确定这些错误是在Ruby中而不是你使用它的库? 您说您遇到了三个不同版本的错误,因此查看其他相关代码可能是合理的。

像这样的Ruby崩溃和烧毁对我来说不是什么大问题。 你得到一个错误,你谷歌关于它,问Stack Overflow,或使用其他一些gem,或做一些不同的事情。 我担心的主要是语言给你不正确的信息 – 例如,错误地拆分字符串。

我发现JRuby和Rubinius犯了错误的信息类型的错误,但我从来没有遇到MRI或YARV这样做。 Rubinius示例: 505和513 ,JRuby示例是5461 。

我一直致力于小型本征碰撞器,以检测不同实现中的不一致性和段错误。

对我来说,最好的解决方案是:切换到Linux :)。 在那之后,我所有的问题,神奇地,解决了!

当然,这不是一个答案,但可能是一个解决方案。