Actions
Bug #12086
closedDynflow actions fail when Katello is run via Zeus in development
Description
Katello fails to initialize dynflow in development setup with Zeus. Problem is probably forking in Zeus which causes ::Actions::Candlepin::ListenOnCandlepinEvents.ensure_running to be executed in wrong dynflow world. Dynflow actions then fail with "No live threads left. Deadlock?" exception.
Relevant part of logs from the "check world" action in dynflow console:
2015-10-07T13:24:10 [app] [I] Started POST "/foreman_tasks/dynflow/worlds/20347054-a335-42f0-90cb-5b0925ad4845/check" for 192.168.122.1 at 2015-10-07 13:24:10 +0000 2015-10-07 13:24:10 - fatal - No live threads left. Deadlock?: /usr/local/rvm/rubies/ruby-2.0.0-p643/lib/ruby/2.0.0/thread.rb:72:in `sleep' /usr/local/rvm/rubies/ruby-2.0.0-p643/lib/ruby/2.0.0/thread.rb:72:in `block (2 levels) in wait' /usr/local/rvm/rubies/ruby-2.0.0-p643/lib/ruby/2.0.0/thread.rb:68:in `handle_interrupt' /usr/local/rvm/rubies/ruby-2.0.0-p643/lib/ruby/2.0.0/thread.rb:68:in `block in wait' /usr/local/rvm/rubies/ruby-2.0.0-p643/lib/ruby/2.0.0/thread.rb:66:in `handle_interrupt' /usr/local/rvm/rubies/ruby-2.0.0-p643/lib/ruby/2.0.0/thread.rb:66:in `wait' /usr/local/rvm/gems/ruby-2.0.0-p643/gems/concurrent-ruby-0.9.1/lib/concurrent/synchronization/mutex_object.rb:33:in `ns_wait' /usr/local/rvm/gems/ruby-2.0.0-p643/gems/concurrent-ruby-0.9.1/lib/concurrent/synchronization/abstract_object.rb:72:in `ns_wait_until' /usr/local/rvm/gems/ruby-2.0.0-p643/gems/concurrent-ruby-edge-0.1.1/lib/concurrent/edge/future.rb:382:in `block in wait_until_complete' /usr/local/rvm/gems/ruby-2.0.0-p643/gems/concurrent-ruby-0.9.1/lib/concurrent/synchronization/mutex_object.rb:18:in `block in synchronize' /usr/local/rvm/gems/ruby-2.0.0-p643/gems/concurrent-ruby-0.9.1/lib/concurrent/synchronization/mutex_object.rb:18:in `synchronize' /usr/local/rvm/gems/ruby-2.0.0-p643/gems/concurrent-ruby-0.9.1/lib/concurrent/synchronization/mutex_object.rb:18:in `synchronize' /usr/local/rvm/gems/ruby-2.0.0-p643/gems/concurrent-ruby-edge-0.1.1/lib/concurrent/edge/future.rb:379:in `wait_until_complete' /usr/local/rvm/gems/ruby-2.0.0-p643/gems/concurrent-ruby-edge-0.1.1/lib/concurrent/edge/future.rb:212:in `wait' /usr/local/rvm/gems/ruby-2.0.0-p643/gems/dynflow-0.8.6/lib/dynflow/world.rb:302:in `each' /usr/local/rvm/gems/ruby-2.0.0-p643/gems/dynflow-0.8.6/lib/dynflow/world.rb:302:in `worlds_validity_check' /usr/local/rvm/gems/ruby-2.0.0-p643/gems/dynflow-0.8.6/lib/dynflow/web/console.rb:48:in `block in <class:Console>' ...
Even though this doesn't touch production and is specific for the Zeus devel setup, it would be nice to fix.
Actions