Open brianbroderick opened 8 years ago
I also get this error from time to time:
ArgumentError: A copy of Transform has been removed from the module tree but is still active!
/Users/brian.broderick/.rvm/gems/jruby-9.0.5.0@pallet-jack/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:479:in `load_missing_constant'
11:49:40 worker.1 | /Users/brian.broderick/.rvm/gems/jruby-9.0.5.0@pallet-jack/gems/activesupport-4.2.6/lib/active_support/dependencies.rb:184:in `const_missing'
11:49:40 worker.1 | /projects/pallet_jack/app/subscribers/powertrack_v2_activity_subscriber.rb:5:in `created'
11:49:40 worker.1 | org/jruby/RubyKernel.java:1823:in `public_send'
11:49:40 worker.1 | /Users/brian.broderick/.rvm/gems/jruby-9.0.5.0@pallet-jack/gems/action_subscriber-2.3.0-java/lib/action_subscriber/dsl.rb:81:in `block in run_action_with_filters'
11:49:40 worker.1 | org/jruby/RubyProc.java:318:in `call'
11:49:40 worker.1 | /Users/brian.broderick/.rvm/gems/jruby-9.0.5.0@pallet-jack/gems/action_subscriber-2.3.0-java/lib/action_subscriber/dsl.rb:86:in `run_action_with_filters'
11:49:40 worker.1 | /Users/brian.broderick/.rvm/gems/jruby-9.0.5.0@pallet-jack/gems/action_subscriber-2.3.0-java/lib/action_subscriber/middleware/router.rb:12:in `call'
11:49:40 worker.1 | /Users/brian.broderick/.rvm/gems/jruby-9.0.5.0@pallet-jack/gems/action_subscriber-2.3.0-java/lib/action_subscriber/middleware/active_record/query_cache.rb:14:in `call'
11:49:40 worker.1 | /Users/brian.broderick/.rvm/gems/jruby-9.0.5.0@pallet-jack/gems/action_subscriber-2.3.0-java/lib/action_subscriber/middleware/active_record/connection_management.rb:10:in `call'
11:49:40 worker.1 | /Users/brian.broderick/.rvm/gems/jruby-9.0.5.0@pallet-jack/gems/action_subscriber-2.3.0-java/lib/action_subscriber/middleware/decoder.rb:15:in `call'
11:49:40 worker.1 | /Users/brian.broderick/.rvm/gems/jruby-9.0.5.0@pallet-jack/gems/action_subscriber-2.3.0-java/lib/action_subscriber/middleware/error_handler.rb:11:in `call'
11:49:40 worker.1 | /Users/brian.broderick/.rvm/gems/jruby-9.0.5.0@pallet-jack/gems/middleware-0.1.0/lib/middleware/runner.rb:31:in `call'
11:49:40 worker.1 | /Users/brian.broderick/.rvm/gems/jruby-9.0.5.0@pallet-jack/gems/middleware-0.1.0/lib/middleware/builder.rb:102:in `call'
11:49:40 worker.1 | /Users/brian.broderick/.rvm/gems/jruby-9.0.5.0@pallet-jack/gems/action_subscriber-2.3.0-java/lib/action_subscriber/march_hare/subscriber.rb:76:in `block in enqueue_env'
11:49:40 worker.1 | /Users/brian.broderick/.rvm/gems/jruby-9.0.5.0@pallet-jack/gems/activesupport-4.2.6/lib/active_support/notifications.rb:166:in `instrument'
11:49:40 worker.1 | /Users/brian.broderick/.rvm/gems/jruby-9.0.5.0@pallet-jack/gems/action_subscriber-2.3.0-java/lib/action_subscriber/march_hare/subscriber.rb:75:in `block in enqueue_env'
11:49:40 worker.1 | org/jruby/RubyProc.java:318:in `call'
11:49:40 worker.1 | /Users/brian.broderick/.rvm/gems/jruby-9.0.5.0@pallet-jack/gems/lifeguard-0.0.9/lib/lifeguard/threadpool.rb:75:in `block in async'
11:49:40 worker.1 | I, [2016-04-25T11:49:40.644000 #16033] INFO -- : FINISHED dd41dd
@brianbroderick we have also seen this error periodically in the past and haven't ever been able to track down why it happens. Our Rails app is configured to preload
in production, so everything should be loaded by the time require "config/environment.rb"
returns, but it seems re-load some of the things in a non threadsafe way.
Do you have any hunches on why that might happen?
One thing to note, I've been doing this in development mode. It's a new project and I don't have a production environment set up for it yet. I'll post here if I still get the error in production.
I've been reading through the ActionSubscriber code, but don't have any hunches yet.
Also, I removed the need (for now) to load the lib directory using:
config.autoload_paths << Rails.root.join("lib")
but that didn't help. (I didn't think it would, but wanted to try anyway)
Interesting. Thanks for looking into this and sharing your findings. I'll see if I can find a chance to read through some of the more recent docs on Rails. Maybe there is a step with loading it that we are missing. I might also try to read sidekiq since we are very similar to that project in terms of having our own process that loads the rails environment.
Error
Specs
action_subscriber (2.3.0-java) Rails (4.2.6) Ruby: jruby 9.0.5.0
Directory Structure
Normal Rails, plus:
Object creation looks like this:
Additional Notes
Only thing loaded extra in application.rb is:
config.autoload_paths << Rails.root.join("lib")
Procfile
Runtime
foreman start
Backtrace
Additional Notes
ActionSubscriber hangs about 25% of the time after getting this error.