Giter Site home page Giter Site logo

Comments (8)

albus522 avatar albus522 commented on July 22, 2024

Please provide a full backtrace. AR handles arrays in a where clause just fine, so something else is going on.

from delayed_job_active_record.

n8gard avatar n8gard commented on July 22, 2024

+1 I have been observing this problem.

from delayed_job_active_record.

edouard avatar edouard commented on July 22, 2024

I encountered the same issue today. I’ve been running my app with delayed_job_active_record v.0.4.4 without any problems for a while, and today I added the gem postgres_ext to my Gemfile and I now get this issue when running bundle exec rake jobs:work QUEUE=urgent.

I downgraded delayed_job_active_record to v.0.4.3 and it now plays nice with postgres_ext.

Therefore I narrowed down the issue to something made in this commit: 3075c59

Here’s a trace:

[Worker(host:new-host-3.home pid:60665)] Starting job worker
rake aborted!
undefined method `abstract_class?' for Object:Class
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-3.2.13/lib/active_record/model_schema.rb:148:in `reset_table_name'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-3.2.13/lib/active_record/model_schema.rb:104:in `table_name'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-3.2.13/lib/active_record/model_schema.rb:228:in `columns'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/postgres_ext-0.3.1/lib/postgres_ext/active_record/relation/predicate_builder.rb:32:in `block in build_from_hash'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/postgres_ext-0.3.1/lib/postgres_ext/active_record/relation/predicate_builder.rb:6:in `each'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/postgres_ext-0.3.1/lib/postgres_ext/active_record/relation/predicate_builder.rb:6:in `map'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/postgres_ext-0.3.1/lib/postgres_ext/active_record/relation/predicate_builder.rb:6:in `build_from_hash'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-3.2.13/lib/active_record/relation/query_methods.rb:327:in `build_where'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-3.2.13/lib/active_record/relation/query_methods.rb:136:in `where'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/postgres_ext-0.3.1/lib/postgres_ext/active_record/relation/query_methods.rb:78:in `where_with_chaining'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job_active_record-0.4.4/lib/delayed/backend/active_record.rb:50:in `reserve'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/worker.rb:258:in `reserve_and_run_one_job'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/worker.rb:187:in `block in work_off'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/worker.rb:186:in `times'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/worker.rb:186:in `work_off'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/worker.rb:151:in `block (4 levels) in start'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/worker.rb:150:in `block (3 levels) in start'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:60:in `call'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:60:in `block in initialize'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:65:in `call'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:65:in `execute'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:38:in `run_callbacks'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/worker.rb:149:in `block (2 levels) in start'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/worker.rb:148:in `loop'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/worker.rb:148:in `block in start'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/plugins/clear_locks.rb:7:in `call'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/plugins/clear_locks.rb:7:in `block (2 levels) in <class:ClearLocks>'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:78:in `call'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:78:in `block (2 levels) in add'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:60:in `call'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:60:in `block in initialize'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:78:in `call'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:78:in `block in add'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:65:in `call'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:65:in `execute'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/lifecycle.rb:38:in `run_callbacks'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/worker.rb:147:in `start'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/gems/delayed_job-3.0.5/lib/delayed/tasks.rb:9:in `block (2 levels) in <top (required)>'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/task.rb:246:in `call'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/task.rb:246:in `block in execute'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/task.rb:241:in `each'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/task.rb:241:in `execute'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/task.rb:184:in `block in invoke_with_call_chain'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/task.rb:177:in `invoke_with_call_chain'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/task.rb:170:in `invoke'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/application.rb:143:in `invoke_task'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/application.rb:101:in `block (2 levels) in top_level'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/application.rb:101:in `each'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/application.rb:101:in `block in top_level'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/application.rb:110:in `run_with_threads'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/application.rb:95:in `top_level'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/application.rb:73:in `block in run'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/application.rb:160:in `standard_exception_handling'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195@global/gems/rake-10.0.4/lib/rake/application.rb:70:in `run'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:in `eval'
/Users/edouard/.rvm/gems/ruby-2.0.0-p195/bin/ruby_noexec_wrapper:14:in `<main>'
Tasks: TOP => jobs:work
(See full trace by running task with --trace)

from delayed_job_active_record.

albus522 avatar albus522 commented on July 22, 2024

This is a bug with postgres_ext not DJ.
postgres_ext is not properly handling where(:column_name => ["item1"])

To reproduce your bug, just run:

Delayed::Job.where(:queue => ['important']).to_sql

from delayed_job_active_record.

n8gard avatar n8gard commented on July 22, 2024

I'm still having problems with this. Has Dockyard been notified? Is this being corrected?

from delayed_job_active_record.

nicooga avatar nicooga commented on July 22, 2024

This issue is not solved in delayed_job-4.0.2. The strange thing is that..

class DJ < ActiveRecord::Base
  self.table_name = 'delayed_jobs'
end

DJ.where(queue: %w|blah blah bleh|)
DJ.where(queue: %w|scores mails|).to_sql
=> "SELECT \"delayed_jobs\".* FROM \"delayed_jobs\"  WHERE \"delayed_jobs\".\"queue\" IN ('scores', 'mails')"

works! So the problem must be somewhere else. The error backtrace I get from running Delayed::Job.where(queue: %w|etc|) is:

=> ["/home/nicolas/.rvm/gems/ruby-2.1.1/gems/activerecord-4.0.5/lib/active_record/model_schema.rb:139:in `reset_table_name'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/activerecord-4.0.5/lib/active_record/model_schema.rb:103:in `table_name'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/activerecord-4.0.5/lib/active_record/model_schema.rb:208:in `columns'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/postgres_ext-2.2.0/lib/postgres_ext/active_record/relation/predicate_builder.rb:11:in `build'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/activerecord-4.0.5/lib/active_record/relation/predicate_builder.rb:51:in `expand'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/activerecord-4.0.5/lib/active_record/relation/predicate_builder.rb:28:in `block in build_from_hash'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/activerecord-4.0.5/lib/active_record/relation/predicate_builder.rb:6:in `each'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/activerecord-4.0.5/lib/active_record/relation/predicate_builder.rb:6:in `build_from_hash'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/activerecord-4.0.5/lib/active_record/relation/query_methods.rb:906:in `build_where'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/activerecord-4.0.5/lib/active_record/relation/query_methods.rb:545:in `where!'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/activerecord-4.0.5/lib/active_record/relation/query_methods.rb:535:in `where'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/activerecord-4.0.5/lib/active_record/querying.rb:9:in `where'",
 "(pry):29:in `block in __pry__'",
 "(pry):17:in `rescue_me'",
 "(pry):29:in `__pry__'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/pry-0.9.12.6/lib/pry/pry_instance.rb:328:in `eval'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/pry-0.9.12.6/lib/pry/pry_instance.rb:328:in `evaluate_ruby'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/pry-0.9.12.6/lib/pry/pry_instance.rb:278:in `re'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/pry-0.9.12.6/lib/pry/pry_instance.rb:254:in `rep'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/pry-0.9.12.6/lib/pry/pry_instance.rb:234:in `block (3 levels) in repl'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/pry-0.9.12.6/lib/pry/pry_instance.rb:232:in `loop'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/pry-0.9.12.6/lib/pry/pry_instance.rb:232:in `block (2 levels) in repl'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/pry-0.9.12.6/lib/pry/pry_instance.rb:231:in `catch'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/pry-0.9.12.6/lib/pry/pry_instance.rb:231:in `block in repl'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/pry-0.9.12.6/lib/pry/pry_instance.rb:230:in `catch'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/pry-0.9.12.6/lib/pry/pry_instance.rb:230:in `repl'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/pry-0.9.12.6/lib/pry/pry_class.rb:169:in `start'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/zeus-0.15.1/lib/zeus/rails.rb:134:in `console'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/zeus-0.15.1/lib/zeus.rb:148:in `block in command'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/zeus-0.15.1/lib/zeus.rb:135:in `fork'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/zeus-0.15.1/lib/zeus.rb:135:in `command'",
 "/home/nicolas/.rvm/gems/ruby-2.1.1/gems/zeus-0.15.1/lib/zeus.rb:50:in `go'",
 "-e:1:in `<main>'"]

I would appreciate someone giving me at least a clue on how to solve this.

from delayed_job_active_record.

albus522 avatar albus522 commented on July 22, 2024

It is still an issue with postgres_ext predicate builder. Please contact them for help.

from delayed_job_active_record.

albus522 avatar albus522 commented on July 22, 2024

Try updating to postgres_ext 2.3.0

from delayed_job_active_record.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.