Open kenkeiter opened 11 years ago
It appears that there's an unintentional dependency upon ActiveSupport's Array#sum method in delayed_job. See the following backtrace:
Array#sum
[Worker(host:Kenneths-MacBook-Pro.local pid:59891)] Starting job worker rake aborted! undefined method `sum' for [0, 0]:Array /Users/kenkeiter/.rvm/gems/ruby-1.9.3-p392/gems/delayed_job-2.1.4/lib/delayed/worker.rb:81:in `block in start' /Users/kenkeiter/.rvm/gems/ruby-1.9.3-p392/gems/delayed_job-2.1.4/lib/delayed/worker.rb:74:in `loop' /Users/kenkeiter/.rvm/gems/ruby-1.9.3-p392/gems/delayed_job-2.1.4/lib/delayed/worker.rb:74:in `start' /Users/kenkeiter/.rvm/gems/ruby-1.9.3-p392/gems/delayed_job-2.1.4/lib/delayed/tasks.rb:9:in `block (2 levels) in <top (required)>' /Users/kenkeiter/.rvm/gems/ruby-1.9.3-p392/bin/ruby_noexec_wrapper:14:in `eval' /Users/kenkeiter/.rvm/gems/ruby-1.9.3-p392/bin/ruby_noexec_wrapper:14:in `<main>'
This can easily be patched for Ruby >= 1.9 using:
[].inject(0, :+) # will account for zero-length arrays, too
or, 1.8.x inclusive:
[].inject{|sum,x| sum + x }
not only that, but this doesn't protect against @result being nil which can happen if an exception is raised(but handled by a lifecycle callback)
It appears that there's an unintentional dependency upon ActiveSupport's
Array#sum
method in delayed_job. See the following backtrace:This can easily be patched for Ruby >= 1.9 using:
or, 1.8.x inclusive: