0

我正在尝试使用“redmine_git_hosting”git://github.com/ericpaulbishop/redmine_git_hosting.git

当我尝试访问它时,出现以下错误/var/log/apache2/error.log

/lib/redmine/scm/adapters/git_adapter.rb:26: warning: already initialized constant GIT_BIN

我可以访问 Redmine 网站,但如果我刷新我会得到:

/usr/share/redmine_dev/lib/redmine/scm/adapters/git_adapter.rb:26: warning: already initialized constant GIT_BIN
[ pid=31351 thr=3075225872 file=ext/apache2/Hooks.cpp:817 time=2012-02-15 15:41:08.102 ]: The backend application (process 3677) did not send a valid HTTP response; instead, it sent nothing at all. It is possible that it has crashed; please check whether there are crashing bugs in this application.
[ pid=3677 thr=-609445668 file=utils.rb:176 time=2012-02-15 15:41:08.103 ]: *** Exception NameError in application (uninitialized constant Redmine::Scm::Adapters::CommandFailed) (process 3677, thread #<Thread:0xb75931b8>):

我收到 500 内部错误。

top我可以看到一个 Ruby 进程被杀死了。

我的环境是:

  • Ubuntu 11.10
  • PostgreSQL 8.4
  • Apache2.20
  • 红宝石 1.8.7
  • 红米 1.3.0
  • Phusion 版本 3.0.11
  • 导轨 (2.3.14)
  • 红宝石 1.6.2
4

1 回答 1

0

这似乎与针对 Chiliproject fork 报告的错误相同:https ://www.chiliproject.org/issues/828

似乎这只发生在开发模式下,在第一个请求之后(从第二个请求开始),因为 rails 会卸载您的模块,因此您不必在每次进行更改时重新启动应用程序。在 application_controller 中,所有 scm 存储库类都会在每次请求时使用 require_dependency 再次加载。但是这些 scm 依赖的模块,例如 git_adapter 和 abstract_adapter 会被标准 ruby​​ 要求加载,因此它们不会再次加载。因此,开发中的未初始化常量错误。

那里建议的解决方案是

...从模块中删除需求并将它们集成到 application_controller :

  require_dependency 'redmine/scm/adapters/abstract_adapter'
  Redmine::Scm::Base.all.each do |scm|
      require_dependency "repository/#{scm.underscore}" 
      require_dependency "redmine/scm/adapters/#{scm.underscore}_adapter" 
  end
于 2012-02-29T16:32:12.143 回答