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

manifest changes are ignored when using hiera_include

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Done
    • PUP 3.8.0, PUP 4.0.0
    • PUP 3.8.1, PUP 4.1.0
    • None
    • None
    • 2
    • Language 2015-04-29, Language 2015-05-13
    • Bug Fix

    Description

      I'm experimenting with puppetserver 2 / puppet-agent 1 and I'm running into an issue where changes to manifests don't get picked up by the server.
      When I'm making changes to a manifest after starting puppetserver it is working for the first 2 or 3 changes I make.
      After that new changes don't get picked up anymore until I restart puppetserver.
      I can reproduce that behavior.

      For an example session see: https://gist.github.com/roman-mueller/cf776fd180a085a551c2

      I'm running:
      CentOS 7.0.1406 (but also reproduced it on CentOS 7.1.1503)
      puppetserver-2.0.0-1.el7.noarch
      puppet-agent-1.0.0-1.el7.x86_64

      I've set "environment_timeout = 0" in the "production/environment.conf" - which also should be the default.
      Everything else is kept on default settings too.
      I've committed my experimental Vagrant environment here:
      https://github.com/roman-mueller/puppet4-sandbox
      Note that this is using vboxsf but I get the same behavior with local files.

      When I'm running strace on the puppetserver PID I can see for the first 2 puppet agent runs that global/manifests/init.pp gets accessed.
      After that it is not getting read anymore.
      I've also waited 45 minutes, but still the change was not picked up.
      Only a restart of the puppetserver fixes it at that point.

      WORK AROUND

      There is no simple work around, but there is a simple patch that can be applied.

      The problem is on line 17 of lib/puppet/pops/loaders.rb which says:

      @@puppet_system_loader ||= create_puppet_system_loader()
      

      This can be patched to read:

      @@puppet_system_loader = create_puppet_system_loader()
      

      QA


      risk: medium (manual validate only for now)
      probability: medium (hiera_include picking up manifest changes downstream only)
      severity: medium (changes not picked up, confusing but possibly not blocking)
      test level: acceptance (we should update existing acceptance to ensure an altered manifest is picked up)

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              faker Roman Mueller
              Eric Thompson Eric Thompson
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Zendesk Support