【问题标题】:Rails: Segmentation fault at Rjb when in background process, works fine when not in background?Rails:在后台进程中 Rjb 出现分段错误,不在后台时工作正常?
【发布时间】:2012-04-17 16:38:17
【问题描述】:

我正在运行 Resque 后台任务,并且在调用使用 Rjb 的 gem 时不断出现分段错误。一切正常,但不在后台运行时。这是 gem 中的一行,导致错误:

def self.rjb_initialize
  return if ::Rjb::loaded?
  ::Rjb::load(nil, self.jvm_args) #THIS IS WHERE THE ERROR TRACES TO
  set_java_logging if self.log_file
end

如您所见,gem 会加载 .jar 文件,但同样,当不在后台时,一切正常。什么可能导致问题,是否可以解决?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 segmentation-fault background-process rjb


    【解决方案1】:

    鉴于错误似乎在作为后台任务运行时失败,这很可能是由于未设置环境变量。根据docs,需要 LD_LIBRARY_PATH 和 JAVA_HOME 设置才能在 Rails 中使用 rjb。我认为您可以将它们添加到您的 environment.rb 并确保 task 'resque:setup' => :environment 用于加载 Rails 环境。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多