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

manifest changes are ignored when using hiera_include

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Done
    • Affects Version/s: PUP 3.8.0, PUP 4.0.0
    • Fix Version/s: PUP 3.8.1, PUP 4.1.0
    • Component/s: None
    • Labels:
      None
    • Template:
    • Epic Link:
    • Story Points:
      2
    • Sprint:
      Language 2015-04-29, Language 2015-05-13
    • Release Notes:
      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

              jsd-sla-details-panel

                People

                • Assignee:
                  Unassigned
                  Reporter:
                  faker Roman Mueller
                  QA Contact:
                  Eric Thompson
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  8 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: