Issue #4656 has been updated by Paul Berry. Status changed from Accepted to Ready for Testing % Done changed from 0 to 100 Branch set to http://github.com/stereotype441/puppet/tree/ticket/next/4656
Submitted a patch that causes file AST's to be cached. This fixes the nondeterminism and permits finer-grained locking. It also makes the master able to respond to changes to .pp files faster, since it now only re-parses the files that changed, rather than re-parsing all files when one changes. A side effect of this change is that import statements are now only allowed at toplevel (outside of any class, definition, node, or conditional statements). This shouldn't be a burden to users, since import statements have the same effect regardless of where they appear in a .pp file. ---------------------------------------- Bug #4656: Autoloading can lead to nondeterministic catalogs http://projects.puppetlabs.com/issues/4656 Author: Paul Berry Status: Ready for Testing Priority: Normal Assignee: Paul Berry Category: compiler Target version: Statler Affected version: 2.6.1rc3 Keywords: Branch: http://github.com/stereotype441/puppet/tree/ticket/next/4656 To save time when servicing multiple nodes, each environment caches the current set of hostclasses, definitions, and node declarations in known_resource_types. It's possible that while servicing node A, file 1 will be autoloaded causing additional resources to be merged into existing class definitions. Those additional resources will still be present when later servicing node B, even if node B would not cause an autoload of file 1. So the catalog sent to node B will differ depending on whether node A has previously been serviced by the same environment. Rather than cache hostclasses, definitions, and node declarations, we should cache the AST's produced by parsing individual files. In addition to fixing this bug, this should improve performance when there are multiple environments, because the cache of parsed AST's can be shared among all environments. -- 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.
