Issue #11387 has been updated by Trevor Vaughan.
The only issue that I can see with this is when you pull in a manifest from somewhere else with incorrect permissions, try to run puppet, realize that it can't get to that file, and then change the permissions. In that case, you'd have to restart the puppetmaster by hand each time something like this happens potentially breaking any current puppet runs. This wouldn't be an issue if the PM blocked all new accesses and then restarted gracefully, but current restart methods that I've seen just turn it off. ---------------------------------------- Bug #11387: Puppet master recompiles too aggressively https://projects.puppetlabs.com/issues/11387 Author: Josh Cooper Status: Accepted Priority: Normal Assignee: Daniel Pittman Category: compiler Target version: Affected Puppet version: 0.22.2 Keywords: Branch: This issue came up while researching support ticket [https://support.puppetlabs.com/tickets/351](https://support.puppetlabs.com/tickets/351). Basically, the customer was updating their master's manifests using svn update. If any manifest "changes", then the master will discard all cached compiled catalogs for all nodes and recompile. While this is "correct" behavior, I found that puppet looks at ctime when determining if a cached file is stale or not. ctime is the time "when file status was last changed (inode data modification). Changed by the chmod(2), chown(2), link(2), mknod(2), rename(2), unlink(2), utimes(2) and write(2) system calls." As a result, just changing the file permissions will cause the ctime to be updated, thereby causing the master to recompile. Worst case would be if svn update changed the file permissions every time it ran, but puppet itself changed them back to something else. Fortunately, puppet doesn't manage file permissions on its manifest directory by default, so this shouldn't ever really happen: <pre> :manifestdir => ["$confdir/manifests", "Where puppet master looks for its manifests."], </pre> It seems like Puppet::Util::LoadedFile should be looking at mtime, which is the time "when file data last modified. Changed by the mknod(2), utimes(2) and write(2) system calls." This would ensure puppet master only recompiled when the manifest file content changes. -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://projects.puppetlabs.com/my/account -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
