carrierwaveuploader / carrierwave

Classier solution for file uploads for Rails, Sinatra and other Ruby web frameworks
https://github.com/carrierwaveuploader/carrierwave
8.78k stars 1.66k forks source link

ArgumentError: wrong number of arguments (0 for 1) in versions.rb #1685

Closed BenSwennen closed 8 years ago

BenSwennen commented 9 years ago

When running a worker for processing versions in background, I am getting following error:

[Worker(host:Bens-MacBook-Pro-2.local pid:46799)] Starting job worker
[Worker(host:Bens-MacBook-Pro-2.local pid:46799)] Job Worker (id=558813ba42656eadb4000000) RUNNING
/Users/bensw/Projects/realto/app/uploaders/photo_uploader.rb:35:in `cache!'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/carrierwave-0.10.0/lib/carrierwave/uploader/versions.rb:226:in `recreate_versions!'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/carrierwave_backgrounder-0.4.1/lib/backgrounder/workers/process_asset.rb:12:in `perform'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/backend/base.rb:94:in `block in invoke_job'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/backend/base.rb:91:in `invoke_job'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:204:in `block (2 levels) in run'
/Users/bensw/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/timeout.rb:91:in `block in timeout'
/Users/bensw/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/timeout.rb:101:in `call'
/Users/bensw/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/timeout.rb:101:in `timeout'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:204:in `block in run'
/Users/bensw/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/benchmark.rb:294:in `realtime'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:203:in `run'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:280:in `block in reserve_and_run_one_job'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:280:in `reserve_and_run_one_job'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:187:in `block in work_off'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:186:in `times'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:186:in `work_off'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:150:in `block (4 levels) in start'
/Users/bensw/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/benchmark.rb:294:in `realtime'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:149:in `block (3 levels) in start'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:148:in `block (2 levels) in start'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:147:in `loop'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:147:in `block in start'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/plugins/clear_locks.rb:7:in `call'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/plugins/clear_locks.rb:7:in `block (2 levels) in <class:ClearLocks>'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `call'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `block (2 levels) in add'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `call'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `block in add'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:146:in `start'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/tasks.rb:9:in `block (2 levels) in <top (required)>'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/rake-10.4.2/lib/rake/task.rb:240:in `call'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/rake-10.4.2/lib/rake/task.rb:240:in `block in execute'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/rake-10.4.2/lib/rake/task.rb:235:in `each'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/rake-10.4.2/lib/rake/task.rb:235:in `execute'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/rake-10.4.2/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
/Users/bensw/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/rake-10.4.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/rake-10.4.2/lib/rake/task.rb:165:in `invoke'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/rake-10.4.2/lib/rake/application.rb:150:in `invoke_task'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/rake-10.4.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/rake-10.4.2/lib/rake/application.rb:106:in `each'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/rake-10.4.2/lib/rake/application.rb:106:in `block in top_level'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/rake-10.4.2/lib/rake/application.rb:115:in `run_with_threads'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/rake-10.4.2/lib/rake/application.rb:100:in `top_level'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/rake-10.4.2/lib/rake/application.rb:78:in `block in run'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/rake-10.4.2/lib/rake/application.rb:176:in `standard_exception_handling'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/rake-10.4.2/lib/rake/application.rb:75:in `run'
/Users/bensw/.rvm/gems/ruby-2.1.5/gems/rake-10.4.2/bin/rake:33:in `<top (required)>'
/Users/bensw/.rvm/gems/ruby-2.1.5/bin/rake:23:in `load'
/Users/bensw/.rvm/gems/ruby-2.1.5/bin/rake:23:in `<main>'
/Users/bensw/.rvm/gems/ruby-2.1.5/bin/ruby_executable_hooks:15:in `eval'
/Users/bensw/.rvm/gems/ruby-2.1.5/bin/ruby_executable_hooks:15:in `<main>'

I was able to solve this by changing line 226 in versions.rb:

      def recreate_versions!(*versions)
        # Some files could possibly not be stored on the local disk. This
        # doesn't play nicely with processing. Make sure that we're only
        # processing a cached file
        #
        # The call to store! will trigger the necessary callbacks to both
        # process this version and all sub-versions
        if versions.any?
          file = sanitized_file if !cached?
          store_versions!(file, versions)
        else
          cache!(sanitized_file) if !cached?
          store!
        end
      end

Not sure if I need to do a pull request, have no experience with contributing.

thomasfedb commented 8 years ago

@BenSwennen Please submit a pull request, including a failing testcase as well as your fix.