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.

Reply via email to