新手问题 You may have encountered a bug in the Ruby interpreter or extension libraries.

string2020 · November 26, 2014 · Last by luikore replied at November 27, 2014 · 6597 hits
ly@hadoop:~/src/ruby$ ruby server.rb 
server.rb:15: warning: already initialized constant DEFAULT_PORT
/home/ly/.rvm/gems/ruby-1.9.2-p320/gems/em-synchrony-1.0.3/lib/em-synchrony.rb:38: [BUG] Segmentation fault
ruby 1.9.2p320 (2012-04-20 revision 35421) [x86_64-linux]

-- control frame ----------
c:0014 p:---- s:0049 b:0049 l:000048 d:000048 CFUNC  :resume
c:0013 p:0021 s:0046 b:0046 l:001308 d:001ac8 BLOCK  /home/ly/.rvm/gems/ruby-1.9.2-p320/gems/em-synchrony-1.0.3/lib/em-synchrony.rb:38
c:0012 p:---- s:0044 b:0044 l:000043 d:000043 FINISH
c:0011 p:---- s:0042 b:0042 l:000041 d:000041 CFUNC  :call
c:0010 p:---- s:0040 b:0040 l:000039 d:000039 CFUNC  :run_machine
c:0009 p:0325 s:0037 b:0037 l:000036 d:000036 METHOD /home/ly/.rvm/gems/ruby-1.9.2-p320/gems/eventmachine-1.0.0/lib/eventmachine.rb:187
c:0008 p:0118 s:0030 b:0030 l:001308 d:001308 METHOD /home/ly/.rvm/gems/ruby-1.9.2-p320/gems/em-synchrony-1.0.3/lib/em-synchrony.rb:38
c:0007 p:0033 s:0025 b:0025 l:000e30 d:000e30 METHOD /home/ly/.rvm/gems/ruby-1.9.2-p320/gems/goliath-1.0.1/lib/goliath/server.rb:73
c:0006 p:0079 s:0021 b:0021 l:000020 d:000020 METHOD /home/ly/.rvm/gems/ruby-1.9.2-p320/gems/goliath-1.0.1/lib/goliath/runner.rb:296
c:0005 p:0172 s:0016 b:0016 l:000015 d:000015 METHOD /home/ly/.rvm/gems/ruby-1.9.2-p320/gems/goliath-1.0.1/lib/goliath/runner.rb:221
c:0004 p:0184 s:0013 b:0013 l:000012 d:000012 METHOD /home/ly/.rvm/gems/ruby-1.9.2-p320/gems/goliath-1.0.1/lib/goliath/application.rb:111
c:0003 p:0048 s:0006 b:0006 l:001af8 d:000005 BLOCK  /home/ly/.rvm/gems/ruby-1.9.2-p320/gems/goliath-1.0.1/lib/goliath/application.rb:129
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:001d98 d:001d98 TOP   
---------------------------
-- Ruby level backtrace information ----------------------------------------
/home/ly/.rvm/gems/ruby-1.9.2-p320/gems/goliath-1.0.1/lib/goliath/application.rb:129:in `block in <module:Goliath>'
/home/ly/.rvm/gems/ruby-1.9.2-p320/gems/goliath-1.0.1/lib/goliath/application.rb:111:in `run!'
/home/ly/.rvm/gems/ruby-1.9.2-p320/gems/goliath-1.0.1/lib/goliath/runner.rb:221:in `run'
/home/ly/.rvm/gems/ruby-1.9.2-p320/gems/goliath-1.0.1/lib/goliath/runner.rb:296:in `run_server'
/home/ly/.rvm/gems/ruby-1.9.2-p320/gems/goliath-1.0.1/lib/goliath/server.rb:73:in `start'
/home/ly/.rvm/gems/ruby-1.9.2-p320/gems/em-synchrony-1.0.3/lib/em-synchrony.rb:38:in `synchrony'
/home/ly/.rvm/gems/ruby-1.9.2-p320/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in `run'
/home/ly/.rvm/gems/ruby-1.9.2-p320/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in `run_machine'
/home/ly/.rvm/gems/ruby-1.9.2-p320/gems/eventmachine-1.0.0/lib/eventmachine.rb:187:in `call'
/home/ly/.rvm/gems/ruby-1.9.2-p320/gems/em-synchrony-1.0.3/lib/em-synchrony.rb:38:in `block in synchrony'
/home/ly/.rvm/gems/ruby-1.9.2-p320/gems/em-synchrony-1.0.3/lib/em-synchrony.rb:38:in `resume'

-- C level backtrace information -------------------------------------------
/home/ly/.rvm/rubies/ruby-1.9.2-p320/lib/libruby.so.1.9(rb_vm_bugreport+0x5e) [0x7f7a4643aade]
/home/ly/.rvm/rubies/ruby-1.9.2-p320/lib/libruby.so.1.9(+0x659ee) [0x7f7a4630a9ee]
/home/ly/.rvm/rubies/ruby-1.9.2-p320/lib/libruby.so.1.9(rb_bug+0xa5) [0x7f7a4630b605]
/home/ly/.rvm/rubies/ruby-1.9.2-p320/lib/libruby.so.1.9(+0x122074) [0x7f7a463c7074]
/lib/x86_64-linux-gnu/libc.so.6(+0x36c30) [0x7f7a45f15c30]

[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

已放弃 (核心已转储)

这是 ruby 的 bug 吗?,怎么解决

为何要用那么老的 ruby 版本?

是比较 RP 的问题,em-synchrony 把 socket 的主要函数 monkey patch 了,但如果数据库驱动里用了 socket 什么的就很可能出错。现在 em 系的逐渐被 celluloid 系的取代了

gdb core 可能能找到问题...

You need to Sign in before reply, if you don't have an account, please Sign up first.