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

Puppet 3.6.x future parser introduces dependency cycles

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: PUP 3.6.0, PUP 3.6.1, PUP 3.6.2
    • Fix Version/s: PUP 3.7.0
    • Component/s: Compiler
    • Template:
    • Sprint:
      2014-07-23

      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

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

                Dates

                Created:
                Updated:
                Resolved:

                  Zendesk Support