我最近编写了一些复杂的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 <top (required)>'
D:/code/h4/post.rb:19:in `times'
D:/code/h4/post.rb:19:in `block in <top (required)>'
D:/code/h4/post.rb:14:in `times'
D:/code/h4/post.rb:14:in `<top (required)>'
-e:1:in `load'
-e:1:in `<main>'
[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 <top (required)>'
D:/code/h4/post.rb:13:in `times'
D:/code/h4/post.rb:13:in `<top (required)>'
-e:1:in `load'
-e:1:in `<main>'
[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解释器中获得的最糟糕的事情必定是异常?我是对的吗?
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 <top (required)>'
D:/code/h4/post.rb:13:in `times'
D:/code/h4/post.rb:13:in `<top (required)>'
-e:1:in `load'
-e:1:in `<main>'
[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.
答案 0 :(得分:2)
1.8.6是当前版本很长一段时间。 1.9是最新版本,虽然它引入了与旧Ruby程序的一些不兼容性。 1.8.7作为1.8和1.9之间的一种“桥梁”发布,包含一些较新的向后兼容功能,但保留旧的解释器而不是新的YARV虚拟机。
至于“少马车”,我真的不知道如何回答这个问题。我没有在任何版本的Ruby本身遇到过很多错误。我唯一能记得错误的是1.8.6,但那是多年前的事了。是什么让你确定这些错误是在Ruby中而不是你使用它的库?你说你遇到了三个不同版本的bug,所以查看其他相关代码可能是合理的。
答案 1 :(得分:2)
我只能想到你可能已经考虑过的三件事。但是为了记录:
试试jRuby,看看会发生什么。这可能会对所有这些库中的原生扩展产生一些问题。
在红宝石论坛上发表这篇文章。
咬紧牙关,用-g编译ruby,然后调试C代码。如果你修好它,我会送你一瓶中央海岸葡萄酒,如果这是合法的......
答案 2 :(得分:0)
我发现JRuby和Rubinius犯了错误信息的错误,但我从来没有遇到MRI或YARV这样做。 Rubinius示例:505和513,JRuby示例为5461。
我一直致力于Small Eigen Collider来检测不同实现中的不一致和段错误。
答案 3 :(得分:-1)
对我来说,最好的解决方案是:切换到Linux :)。在那之后,我的所有问题都神奇地解决了!
当然这不是答案,但可能是一种解决方案。