【问题标题】:Unable to start SOLR server (Ruby on Rails)无法启动 SOLR 服务器(Ruby on Rails)
【发布时间】:2011-02-14 01:17:16
【问题描述】:

我在我的 Rails3 应用程序中使用 sunspot_rails 和 sunspot gems,并按照在 https://github.com/outoftime/sunspot 上安装 sunspot 的步骤操作,我无法让我的 sunspot 服务器运行。

当我进入我的目录时,运行 bundler 然后运行 ​​rake sunspot:solr:start 我收到以下错误

Emil@Emil-PC /cygdrive/c/work/pilarhq
$ rake sunspot:solr:start
(in /cygdrive/c/work/pilarhq)
DEPRECATION WARNING: You are using the old router DSL which will be removed in R
ails 3.1. Please check how to update your routes file at: http://www.engineyard.
com/blog/2010/the-lowdown-on-routes-in-rails-3/. (called from /cygdrive/c/work/p
ilarhq/config/routes.rb:1)
      2 [main] ruby 4824 C:\cygwin\bin\ruby.exe: *** fatal error - unable to rem
ap C:\cygwin\bin\cyglber-2-3-0.dll to same address as parent: 0x360000 != 0x3800
00
Stack trace:
Frame     Function  Args
023F9538  6102749B  (023F9538, 00000000, 00000000, 00000000)
023F9828  6102749B  (61177B80, 00008000, 00000000, 61179977)
023FA858  61004AFB  (611A136C, 6123FF54, 00360000, 00380000)
End of stack trace
      2 [main] ruby 4500 C:\cygwin\bin\ruby.exe: *** fatal error - unable to rem
ap C:\cygwin\bin\cyglber-2-3-0.dll to same address as parent: 0x360000 != 0x3E00
00
Stack trace:
Frame     Function  Args
023FB0F8  6102749B  (023FB0F8, 00000000, 00000000, 00000000)
023FB3E8  6102749B  (61177B80, 00008000, 00000000, 61179977)
023FC418  61004AFB  (611A136C, 6123FF54, 00360000, 003E0000)
End of stack trace
      2 [main] ruby 4612 fork: child 4824 - died waiting for dll loading, errno
11
      4 [main] ruby 580 fork: child 4500 - died waiting for dll loading, errno 1
1
/usr/lib/ruby/gems/1.8/gems/sunspot-1.2.0/lib/sunspot/server.rb:42:in `fork': Re
source temporarily unavailable - fork(2) (rake aborted!Errno::EAGAIN)

Resource temporarily unavailable - fork(2)      from /usr/lib/ruby/gems/1.8/gems
/sunspot-1.2.0/lib/sunspot/server.rb:42:in `start'
$
in `fork'
        from /usr/lib/ruby/gems/1.8/gems/sunspot-1.2.0/lib/sunspot/server.rb:41:
in `start'
        from /usr/lib/ruby/gems/1.8/gems/sunspot_rails-1.2.0/lib/sunspot/rails/s
erver.rb:10:in `start'
        from /usr/lib/ruby/gems/1.8/gems/sunspot_rails-1.2.0/lib/sunspot/rails/t
asks.rb:8
        from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call'
        from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute'

        from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each'
        from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute'

        from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_w
ith_call_chain'
        from /usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
        from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_w
ith_call_chain'ygdrive/c/work/pilarhq
$       from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
        from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_
task'
        from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_lev
el'
        from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
        from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_lev
el'
        from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standar
d_exception_handling'
        from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_lev
el'
        from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run'
        from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standar
d_exception_handling'
        from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
        from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31
        from /usr/bin/rake:19:in `load'
        from /usr/bin/rake:19

(我在 Windows 机器上使用 Cygwin...如果有帮助的话)

【问题讨论】:

    标签: ruby-on-rails windows ruby-on-rails-3 solr cygwin


    【解决方案1】:

    我找到了http://www.garethhunt.com/2008/02/11/cygwin-died-waiting-for-dll-loading/ 并且必须执行以下操作:

    1. 关闭所有 cygwin 窗口
    2. 从 Run (Win-R) 调用 c:\cygwin\usr\bin\ash
    3. 从那里拨打rebaseall

    【讨论】:

      【解决方案2】:

      我遇到了类似的问题(Windows 7 企业版,使用 cygwin 和 rails),发现简单的 rebaseall 方法不起作用。简而言之,问题在于 rebaseall 不一定知道它必须修复的所有 .dll 和 .so。解决方案是编写您自己的列表并使用 -T 选项对该列表运行 rebaseall。对我来说,最终奏效的过程是:

      1. 在 cygwin shell 中:find /bin /lib /usr -iname '*.so' > /tmp/to_rebase.lst
      2. 在 cygwin shell 中:find /bin /lib /usr -iname '*.dll' >> /tmp/to_rebase.lst
      3. 退出所有 cygwin shell 并停止所有 cygwin 进程
      4. 以管理员身份运行 C:\cygwin\bin\ash.exe
      5. /bin/rebaseall -T /tmp/to_rebase.lst
      6. 退出灰
      7. 重启机器

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-09
        • 1970-01-01
        • 2017-01-23
        • 2013-04-28
        • 2019-10-23
        • 2017-09-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多