Project

General

Profile

Bug #12086

Dynflow actions fail when Katello is run via Zeus in development

Added by Tomáš Strachota over 3 years ago. Updated 7 months ago.

Status:
Closed
Priority:
Normal
Category:
-
Target version:
Difficulty:
Triaged:
Yes
Bugzilla link:
Team Backlog:
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.

Associated revisions

Revision 97d1a0e9 (diff)
Added by Tomáš Strachota over 3 years ago

Fixes #12086 - dynflow actions fail when Katello is run via Zeus

Revision 660fad29
Added by Justin Sherrill over 3 years ago

Merge pull request #5517 from tstrachota/zeus_12086

Fixes #12086 - dynflow actions fail when Katello is run via Zeus

History

#1 Updated by The Foreman Bot over 3 years ago

  • Status changed from New to Ready For Testing
  • Pull request https://github.com/Katello/katello/pull/5517 added
  • Pull request deleted ()

#2 Updated by Tomáš Strachota over 3 years ago

  • Status changed from Ready For Testing to Closed
  • % Done changed from 0 to 100

#3 Updated by Eric Helms over 3 years ago

  • Legacy Backlogs Release (now unused) set to 70
  • Triaged changed from No to Yes

Also available in: Atom PDF