Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

self is a hash in after_initialize active record callback #2244

Closed
ncri opened this issue Mar 19, 2015 · 12 comments
Closed

self is a hash in after_initialize active record callback #2244

ncri opened this issue Mar 19, 2015 · 12 comments

Comments

@ncri
Copy link

ncri commented Mar 19, 2015

Trying to open dead jobs in the sidekiq interface gives me an error:

NoMethodError at /sidekiq/morgue
undefined method `fetch_value' for #<Hash:0x007f92521bff30>

file: read.rb location: _read_attribute line: 93

BACKTRACE
(condense)

/activerecord-4.2.0/lib/active_record/attribute_methods/read.rb in _read_attribute
        @attributes.fetch_value(attr_name.to_s) { |n| yield n if block_given? }
/activerecord-4.2.0/lib/active_record/attribute_methods.rb in __temp__7656e6465627
        end
/app/models/user/user.rb in set_defaults
      self.gender ||= MALE
...

Sidekiq tries to initialize the user object as hash for some reason and not as an actual user object, so attribute assignment in the initalization callback fails...

@mperham
Copy link
Collaborator

mperham commented Mar 19, 2015

Please give the full backtrace.

On Mar 19, 2015, at 02:47, Nico Ritsche notifications@github.com wrote:

Trying to open dead jobs in the sidekiq interface gives me an error:

NoMethodError at /sidekiq/morgue
undefined method `fetch_value' for #Hash:0x007f92521bff30

file: read.rb location: _read_attribute line: 93

BACKTRACE
(condense)

/activerecord-4.2.0/lib/active_record/attribute_methods/read.rb in _read_attribute
@attributes.fetch_value(attr_name.to_s) { |n| yield n if block_given? }
/activerecord-4.2.0/lib/active_record/attribute_methods.rb in __temp__7656e6465627
end
/app/models/user/user.rb in set_defaults
self.gender ||= MALE
...
Sidekiq tries to initialize the user object as hash for some reason and not as an actual user object, so attribute assignment in the initalization callback fails...


Reply to this email directly or view it on GitHub.

@ncri
Copy link
Author

ncri commented Mar 19, 2015

NoMethodError - undefined method `fetch_value' for #<Hash:0x007f92508488b8>:
  /.rvm/gems/ruby-2.2.0@rails42/gems/activerecord-4.2.0/lib/active_record/attribute_methods/read.rb:93:in `_read_attribute'
  /.rvm/gems/ruby-2.2.0@rails42/gems/activerecord-4.2.0/lib/active_record/attribute_methods.rb:50:in `__temp__7656e6465627'
  /app/models/user/user.rb:406:in `set_defaults'
  /.rvm/gems/ruby-2.2.0@rails42/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:427:in `block in make_lambda'
  /.rvm/gems/ruby-2.2.0@rails42/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:225:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:225:in `block in halting_and_conditional'
  /.rvm/gems/ruby-2.2.0@rails42/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:92:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:92:in `_run_callbacks'
  /.rvm/gems/ruby-2.2.0@rails42/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:734:in `_run_initialize_callbacks'
  /.rvm/gems/ruby-2.2.0@rails42/gems/activerecord-4.2.0/lib/active_record/core.rb:306:in `init_with'
  /.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/psych/visitors/to_ruby.rb:365:in `init_with'
  /.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/psych/visitors/to_ruby.rb:357:in `revive'
  /.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/psych/visitors/to_ruby.rb:207:in `visit_Psych_Nodes_Mapping'
  /.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/psych/visitors/visitor.rb:15:in `visit'
  /.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/psych/visitors/visitor.rb:5:in `accept'
  /.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/psych/visitors/to_ruby.rb:31:in `accept'
  /.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/psych/visitors/to_ruby.rb:314:in `block in register_empty'
  /.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/psych/visitors/to_ruby.rb:314:in `each'
  /.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/psych/visitors/to_ruby.rb:314:in `register_empty'
  /.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/psych/visitors/to_ruby.rb:140:in `visit_Psych_Nodes_Sequence'
  /.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/psych/visitors/visitor.rb:15:in `visit'
  /.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/psych/visitors/visitor.rb:5:in `accept'
  /.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/psych/visitors/to_ruby.rb:31:in `accept'
  /.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/psych/visitors/to_ruby.rb:295:in `visit_Psych_Nodes_Document'
  /.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/psych/visitors/visitor.rb:15:in `visit'
  /.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/psych/visitors/visitor.rb:5:in `accept'
  /.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/psych/visitors/to_ruby.rb:31:in `accept'
  /.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/psych/nodes/node.rb:37:in `to_ruby'
  /.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/psych.rb:246:in `load'
  /.rvm/gems/ruby-2.2.0@rails42/gems/sidekiq-3.3.2/lib/sidekiq/api.rb:343:in `safe_load'
  /.rvm/gems/ruby-2.2.0@rails42/gems/sidekiq-3.3.2/lib/sidekiq/api.rb:282:in `display_class'
  /.rvm/gems/ruby-2.2.0@rails42/gems/sidekiq-3.3.2/web/views/morgue.erb:43:in `block (2 levels) in singleton class'
  /.rvm/gems/ruby-2.2.0@rails42/gems/sidekiq-3.3.2/web/views/morgue.erb:30:in `each'
  /.rvm/gems/ruby-2.2.0@rails42/gems/sidekiq-3.3.2/web/views/morgue.erb:30:in `block in singleton class'
  /.rvm/gems/ruby-2.2.0@rails42/gems/sidekiq-3.3.2/web/views/morgue.erb:-5:in `instance_eval'
  /.rvm/gems/ruby-2.2.0@rails42/gems/sidekiq-3.3.2/web/views/morgue.erb:-5:in `singleton class'
  /.rvm/gems/ruby-2.2.0@rails42/gems/sidekiq-3.3.2/web/views/morgue.erb:-7:in `__tilt_70133288927740'
  /.rvm/gems/ruby-2.2.0@rails42/gems/tilt-1.4.1/lib/tilt/template.rb:170:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/tilt-1.4.1/lib/tilt/template.rb:170:in `evaluate'
  /.rvm/gems/ruby-2.2.0@rails42/gems/tilt-1.4.1/lib/tilt/template.rb:103:in `render'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:822:in `render'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:666:in `erb'
  /.rvm/gems/ruby-2.2.0@rails42/gems/sidekiq-3.3.2/lib/sidekiq/web.rb:90:in `block in <class:Web>'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:1610:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:1610:in `block in compile!'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:974:in `[]'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:974:in `block (3 levels) in route!'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:993:in `route_eval'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/sinatra.rb:135:in `route_eval_with_newrelic'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:974:in `block (2 levels) in route!'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:1014:in `block in process_route'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:1012:in `catch'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:1012:in `process_route'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/sinatra.rb:115:in `process_route_with_newrelic'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:972:in `block in route!'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:971:in `each'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:971:in `route!'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:1084:in `block in dispatch!'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:1066:in `block in invoke'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:1066:in `catch'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:1066:in `invoke'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:1081:in `dispatch!'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/sinatra.rb:166:in `dispatch_and_notice_errors_with_newrelic'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/sinatra.rb:152:in `block in dispatch_with_newrelic'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/controller_instrumentation.rb:366:in `perform_action_with_newrelic_trace'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/sinatra.rb:149:in `dispatch_with_newrelic'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:906:in `block in call!'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:1066:in `block in invoke'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:1066:in `catch'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:1066:in `invoke'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:906:in `call!'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:894:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/rack/browser_monitoring.rb:23:in `traced_call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:55:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/rack/agent_hooks.rb:25:in `traced_call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:55:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-1.6.0/lib/rack/auth/basic.rb:25:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-1.6.0/lib/rack/nulllogger.rb:9:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-1.6.0/lib/rack/head.rb:13:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/show_exceptions.rb:21:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:181:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:2021:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:1486:in `block in call'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:1795:in `synchronize'
  /.rvm/gems/ruby-2.2.0@rails42/bundler/gems/sinatra-911d95a6b0e4/lib/sinatra/base.rb:1486:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/actionpack-4.2.0/lib/action_dispatch/routing/mapper.rb:51:in `serve'
  /.rvm/gems/ruby-2.2.0@rails42/gems/actionpack-4.2.0/lib/action_dispatch/journey/router.rb:43:in `block in serve'
  /.rvm/gems/ruby-2.2.0@rails42/gems/actionpack-4.2.0/lib/action_dispatch/journey/router.rb:30:in `each'
  /.rvm/gems/ruby-2.2.0@rails42/gems/actionpack-4.2.0/lib/action_dispatch/journey/router.rb:30:in `serve'
  /.rvm/gems/ruby-2.2.0@rails42/gems/actionpack-4.2.0/lib/action_dispatch/routing/route_set.rb:802:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/omniauth-1.2.1/lib/omniauth/strategy.rb:186:in `call!'
  /.rvm/gems/ruby-2.2.0@rails42/gems/omniauth-1.2.1/lib/omniauth/strategy.rb:164:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/rack/agent_hooks.rb:30:in `traced_call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:55:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/rack/browser_monitoring.rb:23:in `traced_call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:55:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/rack/developer_mode.rb:56:in `traced_call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:55:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/jquery-fileupload-rails-0.4.1/lib/jquery/fileupload/rails/middleware.rb:14:in `_call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/jquery-fileupload-rails-0.4.1/lib/jquery/fileupload/rails/middleware.rb:10:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-mobile-detect-0.4.0/lib/rack/mobile-detect.rb:164:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-attack-4.2.0/lib/rack/attack.rb:104:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/warden-1.2.3/lib/warden/manager.rb:35:in `block in call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/warden-1.2.3/lib/warden/manager.rb:34:in `catch'
  /.rvm/gems/ruby-2.2.0@rails42/gems/warden-1.2.3/lib/warden/manager.rb:34:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-1.6.0/lib/rack/etag.rb:24:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-1.6.0/lib/rack/conditionalget.rb:25:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-1.6.0/lib/rack/head.rb:13:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/actionpack-4.2.0/lib/action_dispatch/middleware/params_parser.rb:27:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/actionpack-4.2.0/lib/action_dispatch/middleware/flash.rb:260:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-1.6.0/lib/rack/session/abstract/id.rb:225:in `context'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-1.6.0/lib/rack/session/abstract/id.rb:220:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/actionpack-4.2.0/lib/action_dispatch/middleware/cookies.rb:560:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/activerecord-4.2.0/lib/active_record/query_cache.rb:36:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/activerecord-4.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:647:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/activerecord-4.2.0/lib/active_record/migration.rb:378:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/actionpack-4.2.0/lib/action_dispatch/middleware/callbacks.rb:29:in `block in call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:88:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:88:in `_run_callbacks'
  /.rvm/gems/ruby-2.2.0@rails42/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:734:in `_run_call_callbacks'
  /.rvm/gems/ruby-2.2.0@rails42/gems/activesupport-4.2.0/lib/active_support/callbacks.rb:81:in `run_callbacks'
  /.rvm/gems/ruby-2.2.0@rails42/gems/actionpack-4.2.0/lib/action_dispatch/middleware/callbacks.rb:27:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/actionpack-4.2.0/lib/action_dispatch/middleware/reloader.rb:73:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/actionpack-4.2.0/lib/action_dispatch/middleware/remote_ip.rb:78:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rollbar-1.2.13/lib/rollbar/middleware/rails/rollbar.rb:22:in `block in call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rollbar-1.2.13/lib/rollbar.rb:734:in `scoped'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rollbar-1.2.13/lib/rollbar/middleware/rails/rollbar.rb:20:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/actionpack-4.2.0/lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rollbar-1.2.13/lib/rollbar/middleware/rails/show_exceptions.rb:22:in `call_with_rollbar'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/actionpack-4.2.0/lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/railties-4.2.0/lib/rails/rack/logger.rb:38:in `call_app'
  /.rvm/gems/ruby-2.2.0@rails42/gems/railties-4.2.0/lib/rails/rack/logger.rb:20:in `block in call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/activesupport-4.2.0/lib/active_support/tagged_logging.rb:68:in `block in tagged'
  /.rvm/gems/ruby-2.2.0@rails42/gems/activesupport-4.2.0/lib/active_support/tagged_logging.rb:26:in `tagged'
  /.rvm/gems/ruby-2.2.0@rails42/gems/activesupport-4.2.0/lib/active_support/tagged_logging.rb:68:in `tagged'
  /.rvm/gems/ruby-2.2.0@rails42/gems/railties-4.2.0/lib/rails/rack/logger.rb:20:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/actionpack-4.2.0/lib/action_dispatch/middleware/request_id.rb:21:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-1.6.0/lib/rack/methodoverride.rb:22:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-1.6.0/lib/rack/runtime.rb:18:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/activesupport-4.2.0/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-1.6.0/lib/rack/lock.rb:17:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-1.6.0/lib/rack/deflater.rb:35:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-zippy-1.2.1/lib/rack-zippy.rb:39:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-1.6.0/lib/rack/sendfile.rb:113:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/utf8-cleaner-0.0.9/lib/utf8-cleaner/middleware.rb:18:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/railties-4.2.0/lib/rails/engine.rb:518:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/railties-4.2.0/lib/rails/application.rb:164:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/railties-4.2.0/lib/rails/railtie.rb:194:in `public_send'
  /.rvm/gems/ruby-2.2.0@rails42/gems/railties-4.2.0/lib/rails/railtie.rb:194:in `method_missing'
  /.rvm/gems/ruby-2.2.0@rails42/gems/newrelic_rpm-3.9.9.275/lib/new_relic/agent/instrumentation/middleware_tracing.rb:57:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-1.6.0/lib/rack/content_length.rb:15:in `call'
  /.rvm/gems/ruby-2.2.0@rails42/gems/thin-1.6.1/lib/thin/connection.rb:82:in `block in pre_process'
  /.rvm/gems/ruby-2.2.0@rails42/gems/thin-1.6.1/lib/thin/connection.rb:80:in `catch'
  /.rvm/gems/ruby-2.2.0@rails42/gems/thin-1.6.1/lib/thin/connection.rb:80:in `pre_process'
  /.rvm/gems/ruby-2.2.0@rails42/gems/thin-1.6.1/lib/thin/connection.rb:55:in `process'
  /.rvm/gems/ruby-2.2.0@rails42/gems/thin-1.6.1/lib/thin/connection.rb:41:in `receive_data'
  /.rvm/gems/ruby-2.2.0@rails42/gems/eventmachine-1.0.4/lib/eventmachine.rb:187:in `run_machine'
  /.rvm/gems/ruby-2.2.0@rails42/gems/eventmachine-1.0.4/lib/eventmachine.rb:187:in `run'
  /.rvm/gems/ruby-2.2.0@rails42/gems/thin-1.6.1/lib/thin/backends/base.rb:73:in `start'
  /.rvm/gems/ruby-2.2.0@rails42/gems/thin-1.6.1/lib/thin/server.rb:162:in `start'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-1.6.0/lib/rack/handler/thin.rb:19:in `run'
  /.rvm/gems/ruby-2.2.0@rails42/gems/rack-1.6.0/lib/rack/server.rb:286:in `start'
  /.rvm/gems/ruby-2.2.0@rails42/gems/railties-4.2.0/lib/rails/commands/server.rb:80:in `start'
  /.rvm/gems/ruby-2.2.0@rails42/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:80:in `block in server'
  /.rvm/gems/ruby-2.2.0@rails42/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:75:in `tap'
  /.rvm/gems/ruby-2.2.0@rails42/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:75:in `server'
  /.rvm/gems/ruby-2.2.0@rails42/gems/railties-4.2.0/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
  /.rvm/gems/ruby-2.2.0@rails42/gems/railties-4.2.0/lib/rails/commands.rb:17:in `<top (required)>'
  bin/rails:4:in `require'
  bin/rails:4:in `<main>'

@mperham
Copy link
Collaborator

mperham commented Mar 19, 2015

This appears to be a bug but I can also tell the code is breaking Rule #1 by serializing the entire User object, triggering this behavior: https://github.com/mperham/sidekiq/wiki/Best-Practices#1-make-your-job-parameters-small-and-simple

@ncri
Copy link
Author

ncri commented Mar 19, 2015

Hm, that is strange, i don't think we serialize the entire user object. We normally do stuff like user.delay.xyz. I would assume that this only stores the user id and gets the user object freshly from the db once the job runs?

@ncri
Copy link
Author

ncri commented Mar 19, 2015

Thanks!

@mperham
Copy link
Collaborator

mperham commented Mar 19, 2015

Nope, it serializes the instance too. I don't recommend using delay on instances, it's only supported for backwards compatibility.

@ncri
Copy link
Author

ncri commented Mar 19, 2015

Ah, okay, thanks for the hint!

@ncri
Copy link
Author

ncri commented Mar 19, 2015

Wondering if it could not be changed to only serialize id and type and reload freshly from the db when running the job?

@mperham
Copy link
Collaborator

mperham commented Mar 19, 2015

My policy (contrary to ActiveJob) is that Sidekiq code does not touch the database, since you might want to control transaction boundaries, use special connection handling, rescue errors, etc.

@seuros
Copy link
Collaborator

seuros commented Mar 19, 2015

@ncri, you could use globalid gem. But as @mperham said it better to have full control.

@ncri
Copy link
Author

ncri commented Mar 19, 2015

Ah, okay, makes sense, we could write our own wrapper for this.

@ncri
Copy link
Author

ncri commented Mar 19, 2015

@seuros globalid looks useful, yes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants