Excerpts from Paul Nasrat's message of Tue Aug 17 06:40:42 -0700 2010:
> The EC2 fact is completely broken at the moment:
> 
> * Timeout::Error isn't caught by rescue (due to how it inherits)
> * The issue of wrong open semantics outlined here, this is causing hidden 
> immediate failure
> * The fact is going to cause a 2 second wait to every facter run
> 
> Whilst the following patch fixes the first two, I'm not sure we want to take
> the timeout hit, we also want to add tests as even simple ruby code can get
> logic errors such as the open().

Paul,

The third issue ( the timeout hit ) is currently somewhat systematic in
Facter. That is, a number of fact files do computationally expensive
things at load time to then generate facts. The EC2 fact is just the
most flagrant of these.

While it's obviously important that we fix the EC2 fact's behavior,
I think we should also consider ways to mitigate this load-time cost.

It seems that most of these files are generating facts in a way that
mimics structured data: ec2_foo, ipaddress_eth0, sp_boot_mode, etc. This
indicates that structured data might allow us to move the computations
inside the fact so that they are executed lazily.

Of course, structured data is a ways down the time line, and a 2 second
delay in all Facter runs -- even if the EC2 fact is never called --
adversely affects Facter's apparent performance. Would it make sense to
package the EC2 facts separately somehow? How else can we get rid of
this performance hit?
-- 

Rein Henrichs
http://puppetlabs.com

In most countries selling harmful things like drugs is punishable.
Then howcome people can sell Microsoft software and go unpunished?
(By [email protected], Hasse Skrifvars)

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" 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-dev?hl=en.

Reply via email to