【问题标题】:Rails segmentation fault when starting server?启动服务器时Rails分段错误?
【发布时间】:2011-03-26 07:21:50
【问题描述】:

尝试让我的 rails 3 环境启动并运行,但我一直遇到无法解决的错误。任何帮助将不胜感激!

问题来了:

Patrick-Scotts-MacBook-Pro:~ PJS$ cd hope_app
Patrick-Scotts-MacBook-Pro:hope_app PJS$ rails server
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/sqlite3-ruby-1.3.1/lib/sqlite3/sqlite3_native.bundle: [BUG] Segmentation fault
ruby 1.9.2dev (2010-07-11 revision 28618) [x86_64-darwin10.4.0]

-- control frame ----------
c:0026 p:-541019732 s:0075 b:0075 l:000074 d:000074 TOP   
c:0025 p:---- s:0073 b:0073 l:000072 d:000072 CFUNC  :require
c:0024 p:0029 s:0069 b:0069 l:000065 d:000068 BLOCK  /Users/PJS/.rvm/gems/ruby-1.9.2-    rc2/gems/sqlite3-ruby-1.3.1/lib/sqlite3.rb:6
c:0023 p:0035 s:0066 b:0066 l:000065 d:000065 TOP    /Users/PJS/.rvm/gems/ruby-1.9.2- rc2/gems/sqlite3-ruby-1.3.1/lib/sqlite3.rb:2
c:0022 p:---- s:0064 b:0064 l:000063 d:000063 FINISH
c:0021 p:---- s:0062 b:0062 l:000061 d:000061 CFUNC  :require
c:0020 p:0026 s:0058 b:0058 l:000039 d:000057 BLOCK  /Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/bundler-1.0.0.rc.2/lib/bundler/runtime.rb:64
c:0019 p:---- s:0055 b:0055 l:000054 d:000054 FINISH
c:0018 p:---- s:0053 b:0053 l:000052 d:000052 CFUNC  :each
c:0017 p:0080 s:0050 b:0050 l:000039 d:000049 BLOCK  /Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/bundler-1.0.0.rc.2/lib/bundler/runtime.rb:62
c:0016 p:---- s:0045 b:0045 l:000044 d:000044 FINISH
c:0015 p:---- s:0043 b:0043 l:000042 d:000042 CFUNC  :each
c:0014 p:0046 s:0040 b:0040 l:000039 d:000039 METHOD /Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/bundler-1.0.0.rc.2/lib/bundler/runtime.rb:51
c:0013 p:0021 s:0036 b:0036 l:000035 d:000035 METHOD /Users/PJS/.rvm/gems/ruby-1.9.2-   rc2/gems/bundler-1.0.0.rc.2/lib/bundler.rb:114
c:0012 p:0079 s:0032 b:0032 l:000031 d:000031 TOP    /Users/PJS/hope_app/config/application.rb:7
c:0011 p:---- s:0030 b:0030 l:000029 d:000029 FINISH
c:0010 p:---- s:0028 b:0028 l:000027 d:000027 CFUNC  :require
c:0009 p:0016 s:0024 b:0024 l:000015 d:000023 BLOCK  /Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/railties-3.0.0.rc/lib/rails/commands.rb:28
c:0008 p:---- s:0021 b:0021 l:000020 d:000020 FINISH
c:0007 p:---- s:0019 b:0019 l:000018 d:000018 CFUNC  :tap
c:0006 p:0468 s:0016 b:0016 l:000015 d:000015 TOP    /Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/railties-3.0.0.rc/lib/rails/commands.rb:27
c:0005 p:---- s:0012 b:0012 l:000011 d:000011 FINISH
c:0004 p:---- s:0010 b:0010 l:000009 d:000009 CFUNC  :require
c:0003 p:0061 s:0006 b:0006 l:001598 d:0013a8 EVAL   script/rails:6
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:001598 d:001598 TOP   
---------------------------
-- Ruby level backtrace information ----------------------------------------
script/rails:6:in `<main>'
script/rails:6:in `require'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/railties-3.0.0.rc/lib/rails/commands.rb:27:in `<top (required)>'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/railties-3.0.0.rc/lib/rails/commands.rb:27:in `tap'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/railties-3.0.0.rc/lib/rails/commands.rb:28:in `block in <top (required)>'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/railties-3.0.0.rc/lib/rails/commands.rb:28:in `require'
/Users/PJS/hope_app/config/application.rb:7:in `<top (required)>'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/bundler-1.0.0.rc.2/lib/bundler.rb:114:in `require'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/bundler-1.0.0.rc.2/lib/bundler/runtime.rb:51:in `require'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/bundler-1.0.0.rc.2/lib/bundler/runtime.rb:51:in `each'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/bundler-1.0.0.rc.2/lib/bundler/runtime.rb:62:in `block in require'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/bundler-1.0.0.rc.2/lib/bundler/runtime.rb:62:in `each'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/bundler-1.0.0.rc.2/lib/bundler/runtime.rb:64:in `block (2 levels) in require'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/bundler-1.0.0.rc.2/lib/bundler/runtime.rb:64:in `require'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/sqlite3-ruby-1.3.1/lib/sqlite3.rb:2:in `<top (required)>'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/sqlite3-ruby-1.3.1/lib/sqlite3.rb:6:in `rescue in <top (required)>'
/Users/PJS/.rvm/gems/ruby-1.9.2-rc2/gems/sqlite3-ruby-1.3.1/lib/sqlite3.rb:6:in `require'

-- C level backtrace information -------------------------------------------

【问题讨论】:

    标签: ruby-on-rails segmentation-fault


    【解决方案1】:

    根据this post,我重新安装了sqlite3 gem,问题就消失了:

    gem uninstall sqlite3
    gem install sqlite3
    

    我的软件版本:

    % ruby -v
    ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin11.2.0]
    % rails -v
    Rails 3.2.1
    

    【讨论】:

      【解决方案2】:

      我发现完全关闭我的 shell(关闭所有窗口,然后右键单击 Dock 中的终端图标并选择关闭)然后重新启动终端解决了这个问题。

      在我发现这个问题之前,我已经创建和销毁、使用和更改 gemset 有一段时间了。我怀疑事情只是变得混乱而已。

      【讨论】:

        【解决方案3】:

        我在 1.9.3 中遇到了类似的问题。我不得不:

        1. 卸载 sqlite3 并重新安装
        2. 为了额外的措施,卸载了 rake 并重新安装了它。

        现在工作。

        【讨论】:

          【解决方案4】:

          我有完全相同的版本,但我没有看到这个。但我不在 Macbook Pro 上。

          很难说这是 Ruby 1.9.2 的问题(因为它仍然不够稳定,无法正式发布)还是实际上是 Sqlite 3 gem 中的错误。完全相同的错误是 reported 针对 Ruby 1.9.2 稍早版本的 gem。

          您可以尝试暂时回退到 Sqlite 版本 1.3.0 或回退到 Ruby 1.9.1,直到问题自行解决。几乎不是一个令人满意的答案,但至少你可以再次富有成效。

          【讨论】:

            【解决方案5】:

            我在 sqlite3-ruby 1.3.2 中也遇到了同样的问题 反复删除安装和卸载相同的 sqlite3-ruby 后

            我终于完全删除了 rvm 目录

            rm -rf /usr/local/lib/rvm /usr/local/bin/{r*,gem-ruby-1.9.2-p136,irb-ruby-1.9.2-p136,testrb-ruby-1.9.2-p136} /usr/local/rvm
            

            然后再次安装,

            我怀疑

            libsqlite3-0 libsqlite3-dev sqlite3
            

            这三个必须在安装rvm之前安装, 因为我在其他机器上执行了相同的步骤,所以它工作正常。

            是的,这不是正确的解决方案。

            【讨论】:

            • 类似问题 - sqlite3 相关的解决方案都没有帮助。我炸毁了我的 .rvm 目录并重新安装了 rvm,但它也没有工作,它一直挂在我的 ruby​​ 安装上。然后在我第二次重新安装 rvm 时,我更新了 rvm 本身,然后继续:'rvm get head' 就是这样,一切都从那里开始。
            • 但是不要假设 Sharad 上面的命令是准确的,我系统上的 rm -rf 会吹走各种非 rvm 的东西。
            【解决方案6】:

            我遇到了类似的问题 - 看起来 Rails 正在尝试使用不同版本的 Ruby(1.9.2dev 而不是 1.9.2-rc2)。您可以使用

            确认这一点
            head -1 `which rails`
            

            更改第一行,或使用 gem uninstall rails &amp;&amp; gem install rails 重新安装 gem。

            (PS 感谢 venj 的解决方案here

            【讨论】:

              【解决方案7】:

              当我在我的 Gemfile 中两次声明“测试”组时出现此错误。一旦我摆脱了第二个声明,就不会再出现分段错误了。

              【讨论】:

                【解决方案8】:

                在卸载并重新安装 sqlite3 gem 和 homebrew sqlite3 软件包后,我仍然遇到 seg 错误。原来,即使 rvm 使用 ruby​​ 1.9.3 rake 仍然指向 Lion 附带的 1.8.7 安装。

                $rake db:create
                /Users/jessesanford/.rvm/gems/ruby-1.9.3-p125/gems/sqlite3-1.3.6/lib/sqlite3/sqlite3_native.bundle: [BUG] Segmentation fault
                ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin11.0]
                

                我不确定 rake 是如何安装在 1.9.3 的 ruby​​ gems 库中的,shebang 脚本标头指向 1.8.7,但无论出于何种原因重新安装 rake 都会纠正它,现在一切运行顺利。

                【讨论】:

                  【解决方案9】:

                  目前我们似乎主要是在尝试随机解决方案。

                  这是我的:

                  由于我在端口 80 上运行我的开发服务器,我需要使用sudo 发出rails server 命令。这有时会导致测试环境中某些文件的所有权问题。

                  似乎每次我在运行我的应用程序的测试套件时遇到问题,我的开发服务器都会崩溃并出现著名的“您可能在 Ruby 解释器或扩展库中遇到错误”-错误。

                  在这两种情况下,清除 Rails 的临时缓存 (sudo bundle exec rails tmp:cache:clear) 可以解决问题。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2019-02-26
                    • 1970-01-01
                    • 1970-01-01
                    • 2016-09-13
                    • 2013-05-05
                    • 2012-04-18
                    • 1970-01-01
                    相关资源
                    最近更新 更多