Issue #13208 has been reported by Oliver Hookins.

----------------------------------------
Bug #13208: Puppet agent doesn't honour file metadata expiration field when 
processing the catalog.
https://projects.puppetlabs.com/issues/13208

Author: Oliver Hookins
Status: Unreviewed
Priority: Normal
Assignee: 
Category: 
Target version: 
Affected Puppet version: 2.6.7
Keywords: 
Branch: 


Whenever the Puppet agent has to handle a file resource with a source coming 
from the Puppetmaster, it issues a file_metadata request to the Puppetmaster to 
figure out if the file has changed between the local and remote copies. It 
receives something like the following back:

<pre>
--- !ruby/object:Puppet::FileServing::Metadata
  checksum: "{md5}b51047c0fc4944a0e47ce9173a6561e5"
  checksum_type: md5
  destination: 
  expiration: 2012-03-19 15:06:20.989782 +01:00
  ftype: file
  group: 0
  links: !ruby/sym manage
  mode: 420
  owner: 0
  path: /etc/puppet/modules/bar/files/file0972
</pre>

Given that in #13199 we have a situation where MD5 is the only hashing 
mechanism available, this can be very computationally expensive and yet we are 
supplying an expiration timestamp for the metadata that has been served back to 
the agent.

It should be possible for the agent to store and reuse this metadata within the 
expiration time so that load on the master is reduced. Ideally it would be 
supplied as an RFC-compliant HTTP header such as ETag or Last-Modified so that 
it can play nice with standard caching mechanisms. Right now no caching 
mechanism can adequately fit between the master and agent without having to 
make naive and possibly incorrect decisions. Since the client also doesn't make 
any use of expiration data we have a poorly scalable mechanism in place all 
round for file metadata.


-- 
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