swift/proxy_storage: dependency cycles found

Bug #1583600 reported by Ivan Berezovskiy
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fuel for OpenStack
Fix Committed
High
Denis Egorenko

Bug Description

Upstream patch https://review.openstack.org/#/c/317700/ adds anchors for different stages of swift configuration. It breaks swift deployment in Fuel with following errors:

noop tests:
https://ci.fuel-infra.org/job/master.puppet-openstack.fuel.noop/1266/

FAILED swift/proxy_storage ubuntu neut_tun.murano.sahara.ceil.public_ssl-primary-controller
  failed should compile into a catalogue without dependency cycles (dependency cycles found: (Anchor[swift::config::begin] => Concat[/etc/swift/proxy-server.conf] => File[/tmp//_etc_swift_proxy-server.conf/fragments] => File[/tmp//_etc_swift_proxy-server.conf/fragments/00_swift_proxy] => Concat::Fragment[swift_proxy] => Class[Swift::Proxy::Ceilometer] => Package[python-ceilometermiddleware] => Anchor[swift::install::end] => Anchor[swift::config::begin])
; (Anchor[swift::config::end] => Anchor[swift::service::begin] => Service[swift-proxy-server] => Class[Swift::Dispersion] => File[/etc/swift/dispersion.conf] => Anchor[swift::config::end])
)

deployment tests:
https://ci.fuel-infra.org/job/master.puppet-openstack.fuel-library.pkgs.ubuntu.smoke_neutron/1228/

2016-05-18 23:18:37 +0000 Puppet (err): Failed to apply catalog: Found 2 dependency cycles:
(Anchor[swift::config::begin] => Concat[/etc/swift/proxy-server.conf] => File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments] => File[/var/lib/puppet/concat/_etc_swift_proxy-server.conf/fragments/00_swift_proxy] => Concat::Fragment[swift_proxy] => Class[Swift::Proxy::Swift3] => Package[swift-plugin-s3] => Anchor[swift::install::end] => Anchor[swift::config::begin])
(Anchor[swift::config::end] => Anchor[swift::service::begin] => Service[swift-proxy-server] => Class[Swift::Dispersion] => File[/etc/swift/dispersion.conf] => Anchor[swift::config::end])
Try the '--graph' option and opening the resulting '.dot' file in OmniGraffle or GraphViz
/usr/lib/ruby/vendor_ruby/puppet/graph/simple_graph.rb:242:in `report_cycles_in_graph'
/usr/lib/ruby/vendor_ruby/puppet/graph/relationship_graph.rb:106:in `traverse'
/usr/lib/ruby/vendor_ruby/puppet/transaction.rb:138:in `evaluate'
/usr/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:169:in `block in apply'
/usr/lib/ruby/vendor_ruby/puppet/util/log.rb:149:in `with_destination'
/usr/lib/ruby/vendor_ruby/puppet/transaction/report.rb:112:in `as_logging_destination'
/usr/lib/ruby/vendor_ruby/puppet/resource/catalog.rb:168:in `apply'
/usr/lib/ruby/vendor_ruby/puppet/configurer.rb:120:in `block in apply_catalog'
/usr/lib/ruby/vendor_ruby/puppet/util.rb:161:in `block in benchmark'
/usr/lib/ruby/1.9.1/benchmark.rb:295:in `realtime'
/usr/lib/ruby/vendor_ruby/puppet/util.rb:160:in `benchmark'
/usr/lib/ruby/vendor_ruby/puppet/configurer.rb:119:in `apply_catalog'
/usr/lib/ruby/vendor_ruby/puppet/configurer.rb:227:in `run_internal'
/usr/lib/ruby/vendor_ruby/puppet/configurer.rb:134:in `block in run'
/usr/lib/ruby/vendor_ruby/puppet/context.rb:64:in `override'
/usr/lib/ruby/vendor_ruby/puppet.rb:246:in `override'
/usr/lib/ruby/vendor_ruby/puppet/configurer.rb:133:in `run'
/usr/lib/ruby/vendor_ruby/puppet/application/apply.rb:302:in `apply_catalog'
/usr/lib/ruby/vendor_ruby/puppet/application/apply.rb:236:in `block in main'
/usr/lib/ruby/vendor_ruby/puppet/context.rb:64:in `override'
/usr/lib/ruby/vendor_ruby/puppet.rb:246:in `override'
/usr/lib/ruby/vendor_ruby/puppet/application/apply.rb:198:in `main'
/usr/lib/ruby/vendor_ruby/puppet/application/apply.rb:159:in `run_command'
/usr/lib/ruby/vendor_ruby/puppet/application.rb:381:in `block (2 levels) in run'
/usr/lib/ruby/vendor_ruby/puppet/application.rb:507:in `plugin_hook'
/usr/lib/ruby/vendor_ruby/puppet/application.rb:381:in `block in run'
/usr/lib/ruby/vendor_ruby/puppet/util.rb:496:in `exit_on_fail'
/usr/lib/ruby/vendor_ruby/puppet/application.rb:381:in `run'
/usr/lib/ruby/vendor_ruby/puppet/util/command_line.rb:146:in `run'
/usr/lib/ruby/vendor_ruby/puppet/util/command_line.rb:92:in `execute'
/usr/bin/puppet:8:in `<main>'

Changed in fuel:
status: New → Confirmed
Revision history for this message
Denis Egorenko (degorenko) wrote :

The problem mostly in cycles in upstream patch. Already replied.

Although we have cycles too, but i want to have working upstream patch first.

(Anchor[swift::config::end]
=> Anchor[swift::service::begin]
 => Service[swift-proxy-server]
  => Class[Swift::Dispersion]
   => File[/etc/swift/dispersion.conf]
    => Anchor[swift::config::end])

I'll upload library fix, when we will have upstream patch without conflicts at all.

Changed in fuel:
status: Confirmed → In Progress
Revision history for this message
Ivan Berezovskiy (iberezovskiy) wrote :

lowering to hight because upstream patch is not ready yet, but anyway Fuel adapt is required

Changed in fuel:
importance: Critical → High
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to fuel-library (master)

Fix proposed to branch: master
Review: https://review.openstack.org/318807

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to fuel-library (master)

Reviewed: https://review.openstack.org/318807
Committed: https://git.openstack.org/cgit/openstack/fuel-library/commit/?id=a3c9b83ed4f1c2e0c743aaa03d48ba702b543c72
Submitter: Jenkins
Branch: master

commit a3c9b83ed4f1c2e0c743aaa03d48ba702b543c72
Author: Denis Egorenko <email address hidden>
Date: Thu May 19 20:12:06 2016 +0300

    Adapt swift proxy task for master

    Upstream puppet-swift patch broke our CI I00cf4846bb933291469be94c9debed425eddf798

    This patch adapts fuel-library for using new hooks and anchor points
    in puppet-swift.

    Change-Id: Ie32ebb732dea6ce1d8c5e1a88e8932873a33c914
    Closes-bug: #1583600

Changed in fuel:
status: In Progress → Fix Committed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.