3

我用 ruby​​ 1.8.7 有一个很好的时间,我用这个版本的 ruby​​ 和 rails 3.0.x 自从这个版本的 rails 发布。而且我从来没有遇到过分段错误错误。但是现在,在开始使用 rails 3.1.3 开发 ruby​​ 1.8.7 后,当我执行 webrick 并浏览应用程序时,出现以下错误:

/usr/lib/ruby/gems/1.8/gems/rack-1.3.5/lib/rack/utils.rb:380: [BUG] Segmentation fault
ruby 1.8.7 (2010-06-23 patchlevel 299) [i686-linux]

该错误非常不稳​​定,有时发生在 webrick 的 httputils 上,有时发生在机架上。也许错误与资产管道有某种关系,因为错误发生在这样的一些过程之前:

Started GET "/assets/wymeditor/wymeditor/lang/zh_cn.js?body=1" for 127.0.0.1 at Wed Dec 28 09:22:23 -0200 2011
cache: [GET /assets/wymeditor/wymeditor/lang/zh_cn.js?body=1] stale, valid, store
Served asset /wymeditor/wymeditor/lang/zh_cn.js - 304 Not Modified (1ms)


Started GET "/assets/wymeditor/wymeditor/plugins/embed/jquery.wymeditor.embed.js?body=1" for 127.0.0.1 at Wed Dec 28 09:22:23 -0200 2011

任何人都可以帮助我,关于这个问题。从现在开始,我感谢任何帮助。

谢谢

开发日志:

Started GET "/assets/wymeditor/wymeditor/lang/he.js?body=1" for 127.0.0.1 at Wed Dec 28 11:57:36 -0200 2011
cache: [GET /assets/wymeditor/wymeditor/lang/he.js?body=1] stale, valid, store
Served asset /wymeditor/wymeditor/lang/he.js - 304 Not Modified (0ms)
Started GET "/assets/wymeditor/wymeditor/lang/hr.js?body=1" for 127.0.0.1 at Wed Dec 28 11:57:36 -0200 2011
cache: [GET /assets/wymeditor/wymeditor/lang/hr.js?body=1] stale, valid, store
Served asset /wymeditor/wymeditor/lang/hr.js - 304 Not Modified (1ms)
Started GET "/assets/wymeditor/wymeditor/lang/hu.js?body=1" for 127.0.0.1 at Wed Dec 28 11:57:36 -0200 2011
cache: [GET /assets/wymeditor/wymeditor/lang/hu.js?body=1] stale, valid, store
Served asset /wymeditor/wymeditor/lang/hu.js - 304 Not Modified (1ms)
Started GET "/assets/wymeditor/wymeditor/lang/it.js?body=1" for 127.0.0.1 at Wed Dec 28 11:57:36 -0200 2011
cache: [GET /assets/wymeditor/wymeditor/lang/it.js?body=1] stale, valid, store
Served asset /wymeditor/wymeditor/lang/it.js - 304 Not Modified (1ms)
Started GET "/assets/wymeditor/wymeditor/lang/nb.js?body=1" for 127.0.0.1 at Wed Dec 28 11:57:36 -0200 2011
cache: [GET /assets/wymeditor/wymeditor/lang/nb.js?body=1] stale, valid, store
Served asset /wymeditor/wymeditor/lang/nb.js - 304 Not Modified (1ms)
Started GET "/assets/wymeditor/wymeditor/lang/nl.js?body=1" for 127.0.0.1 at Wed Dec 28 11:57:36 -0200 2011
cache: [GET /assets/wymeditor/wymeditor/lang/nl.js?body=1] stale, valid, store
Served asset /wymeditor/wymeditor/lang/nl.js - 304 Not Modified (4ms)
Started GET "/assets/wymeditor/wymeditor/lang/pl.js?body=1" for 127.0.0.1 at Wed Dec 28 11:57:36 -0200 2011
cache: [GET /assets/wymeditor/wymeditor/lang/pl.js?body=1] stale, valid, store
Served asset /wymeditor/wymeditor/lang/pl.js - 304 Not Modified (0ms)
Started GET "/assets/wymeditor/wymeditor/lang/pt-br.js?body=1" for 127.0.0.1 at Wed Dec 28 11:57:36 -0200 2011
cache: [GET /assets/wymeditor/wymeditor/lang/pt-br.js?body=1] stale, valid, store
Served asset /wymeditor/wymeditor/lang/pt-br.js - 304 Not Modified (3ms)
Started GET "/assets/wymeditor/wymeditor/lang/pt.js?body=1" for 127.0.0.1 at Wed Dec 28 11:57:36 -0200 2011
cache: [GET /assets/wymeditor/wymeditor/lang/pt.js?body=1] stale, valid, store
Served asset /wymeditor/wymeditor/lang/pt.js - 304 Not Modified (1ms)
Started GET "/assets/wymeditor/wymeditor/lang/ru.js?body=1" for 127.0.0.1 at Wed Dec 28 11:57:36 -0200 2011
/usr/lib/ruby/gems/1.8/gems/rack-cache-1.1/lib/rack/cache/metastore.rb:232: [BUG] Segmentation fault
ruby 1.8.7 (2010-06-23 patchlevel 299) [i686-linux]
Abortado

英语中的 Abortado 已中止

我所有的宝石清单:

  • actionmailer (3.1.3)
    • 动作包 (3.1.3)
    • 活动模型(3.1.3)
    • 活动记录(3.1.3)
    • 主动资源(3.1.3)
    • 主动支持 (3.1.3)
    • 雷尔 (2.2.1)
    • bcrypt-ruby (3.0.1)
    • brI18n (3.0.4)
    • 巴西铁路 (3.0.4)
    • brcep (3.0.4)
    • brcpfcnpj (3.0.4)
    • brdata (3.0.4)
    • 布迪涅罗 (3.0.4)
    • 帮手 (3.0.4)
    • 布鲁诺梅罗斯 (3.0.4)
    • brstring (3.0.4)
    • 建设者(3.0.0)
    • 捆绑器 (1.0.15)
    • 水豚 (1.1.1)
    • 子进程(0.2.2)
    • 咖啡轨 (3.1.1)
    • 咖啡脚本(2.2.0)
    • 咖啡脚本源 (1.1.3)
    • 分列(0.3.4)
    • 黄瓜 (1.1.0)
    • 黄瓜导轨 (1.1.1)
    • database_cleaner (0.6.7)
    • 设计(1.4.8)
    • diff-lcs (1.1.3)
    • 蜻蜓 (0.9.8)
    • 厄鲁比斯 (2.7.0)
    • 执行js (1.2.12)
    • factory_girl (2.2.0)
    • factory_girl_rails (1.3.0)
    • 菲(1.0.9)
    • 小黄瓜 (2.5.1)
    • 远足 (1.2.1)
    • i18n (0.6.0)
    • jquery-rails (1.0.19)
    • json (1.6.3)
    • json_pure (1.6.1)
    • 线缓存(0.46)
    • 邮件 (2.3.0)
    • 哑剧类型 (1.17.2)
    • multi_json (1.0.4)
    • mysql2 (0.3.11)
    • nokogiri (1.5.0)
    • orm_adapter (0.0.5)
    • 多语言(0.3.3)
    • 机架 (1.3.5)
    • 机架缓存 (1.1)
    • 机架式 (0.8.3)
    • 机架 SSL (1.3.2)
    • 机架测试(0.6.1)
    • 导轨 (3.1.3)
    • 铁路 (3.1.3)
    • 耙子 (0.9.2.2)
    • rbx-require-relative (0.0.5)
    • rdoc (3.11)
    • rspec (2.6.0)
    • rspec 核心 (2.6.4)
    • rspec-expectations (2.6.0)
    • rspec 模拟 (2.6.0)
    • rspec-rails (2.6.1)
    • 红宝石调试(0.10.4)
    • 红宝石调试基础(0.10.4)
    • rubyzip (0.9.4)
    • 萨斯(3.1.11)
    • sass-rails (3.1.5)
    • 硒客户端(1.2.18)
    • 硒网络驱动程序(2.8.0)
    • 链轮 (2.0.3)
    • 术语 ansicolor (1.0.7)
    • 雷神 (0.14.6)
    • 倾斜 (1.3.3)
    • 树顶 (1.4.10)
    • tzinfo (0.3.31)
    • 丑陋者(1.1.0)
    • 典狱长 (1.0.6)
    • 韦拉特 (0.7.3)
    • wymeditor (0.5.0.rc2)
    • xpath (0.1.4)

Ruby 版本:ruby 1.8.7 (2010-06-23 patchlevel 299) Arch: [i686-linux]

我得到的唯一堆栈跟踪:

/usr/lib/ruby/1.8/webrick/httpserver.rb:50
while timeout > 0
(rdb:2) n
[2011-12-28 16:22:52] ERROR #<Class:0xb6614868>: execution expired
   /usr/lib/ruby/1.8/timeout.rb:64:in `timeout'
   /usr/lib/ruby/1.8/timeout.rb:101:in `timeout'
   /usr/lib/ruby/1.8/webrick/httprequest.rb:326:in `_read_data'
   /usr/lib/ruby/1.8/webrick/httprequest.rb:337:in `read_line'
   /usr/lib/ruby/1.8/webrick/httprequest.rb:240:in `read_header'
   /usr/lib/ruby/1.8/webrick/httprequest.rb:88:in `parse'
   /usr/lib/ruby/1.8/webrick/httpserver.rb:56:in `run'
   /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
   /usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
   /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
   /usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
   /usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
   /usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
   /usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
   /usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
   /usr/lib/ruby/gems/1.8/gems/rack-1.3.5/lib/rack/handler/webrick.rb:13:in `run'
   /usr/lib/ruby/gems/1.8/gems/rack-1.3.5/lib/rack/server.rb:265:in `start'
   /usr/lib/ruby/gems/1.8/gems/railties-3.1.3/lib/rails/commands/server.rb:70:in `start'
   /usr/lib/ruby/gems/1.8/gems/railties-3.1.3/lib/rails/commands.rb:54
   /usr/lib/ruby/gems/1.8/gems/railties-3.1.3/lib/rails/commands.rb:49:in `tap'
   /usr/lib/ruby/gems/1.8/gems/railties-3.1.3/lib/rails/commands.rb:49
   script/rails:6:in `require'
   script/rails:6
/usr/lib/ruby/1.8/webrick/httpserver.rb:51
break if IO.select([sock], nil, nil, 0.5)

在调试模式下,该错误不会轻易发生,一行一行。我确实只有一个堆栈跟踪,而且我没有得到超过一次。

此时我禁用了资产管道、coffeescript 和 sass。而且我没有得到更多的错误,但我没有更多的这些功能。

4

1 回答 1

0

guides.rubyonrails.org的注释说:

请注意,Ruby 1.8.7 p248 和 p249 存在导致 Rails 3.0 崩溃的编组错误。不过,Ruby 企业版自 1.8.7-2010.02 版以来已修复这些问题。在 1.9 方面,Ruby 1.9.1 不可用,因为它在 Rails 3.0 上完全出现段错误,所以如果你想使用带有 1.9.x 的 Rails 3,请在 1.9.2 上顺利运行。

我在 1.9.2 上的运气非常好,而且 rvm 可以很容易地在 ruby​​ 的多个版本之间切换。你能试试这个吗?

于 2012-01-05T01:20:55.947 回答