Project

General

Profile

Actions

Bug #12086

closed

Dynflow actions fail when Katello is run via Zeus in development

Added by Tomáš Strachota over 9 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Normal
Category:
-
Target version:
Difficulty:
Triaged:
Yes
Fixed in Releases:
Found in Releases:

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

Also available in: Atom PDF