PUP 3.8.0, PUP 4.0.0
Language 2015-04-29, Language 2015-05-13
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
CentOS 7.0.1406 (but also reproduced it on CentOS 7.1.1503)
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:
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.
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()
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)
- relates to
PUP-4789 hiera_include does not have access to variables from node scope when future parser is enabled
- links to