Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-2839

Puppet 3.6.x future parser introduces dependency cycles

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • PUP 3.6.0, PUP 3.6.1, PUP 3.6.2
    • PUP 3.7.0
    • Compiler

    Description

      In Puppet 3.6.0 the future parsers behavior changed resulting in dependency cycles with the 3.6.x version.

      I put some code illustrating the changed behavior into a repository:
      https://github.com/fadenb/puppet_futureparser_depency_cycle_bug

      Puppet 3.5.1 (everything working as expected):

      puppet apply --graph --modulepath /vagrant/modules/ --parser future futureparser_dependency_cycle.pp
      Warning: Setting templatedir is deprecated. See http://links.puppetlabs.com/env-settings-deprecations
         (at /root//puppet/lib/puppet/settings.rb:1069:in `each')
      Notice: Compiled catalog for precise64.muc.fraktalgemuese.de in environment production in 0.52 seconds
      Notice: example module loaded
      Notice: /Stage[main]/Example/Notify[example module loaded]/message: defined 'message' as 'example module loaded'
      Notice: example::test: Two
      Notice: /Stage[main]/Component::Example/Example::Test[Two]/Notify[example::test: Two]/message: defined 'message' as 'example::test: Two'
      Notice: example::test: One
      Notice: /Stage[main]/Component::Example/Example::Test[One]/Notify[example::test: One]/message: defined 'message' as 'example::test: One'
      Notice: Finished catalog run in 0.10 seconds
      

      Puppet 3.6.0:

      puppet apply --graph --modulepath /vagrant/modules/ --parser future futureparser_dependency_cycle.pp
      Warning: Setting templatedir is deprecated. See http://links.puppetlabs.com/env-settings-deprecations
         (at /root//puppet/lib/puppet/settings.rb:1069:in `each')
      Notice: Compiled catalog for precise64.muc.fraktalgemuese.de in environment production in 0.54 seconds
      Error: Could not apply complete catalog: Found 1 dependency cycle:
      (Anchor[component::example::end] => Class[Component::Example] => Example::Test[Two] => File[/tmp/foobar-Two] => Example::Test[Two] => Anchor[component::example::end])
      Cycle graph written to /var/lib/puppet/state/graphs/cycles.dot.
      Notice: Finished catalog run in 0.02 seconds
      

      Commit that introduced the problem: https://github.com/puppetlabs/puppet/commit/7fb506f79dc4505d528a61db9579bb5de182661b

      Attachments

        Issue Links

          Activity

            People

              henrik.lindberg Henrik Lindberg
              fadenb Tristan Helmich
              Kurt Wall Kurt Wall
              Votes:
              2 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Zendesk Support