If setup code for a process depends on network connectivity
it needs do be protected with a rescue clause as much as the
main body of the process.  There are many places where this
_might_ be an issue, but in most cases it isn't in practice;
this preliminary patch addesses the two cases where I have
been able to confirm that it actually can cause the client
daemon to exit.

Signed-off-by: Markus Roberts <[email protected]>
---
 lib/puppet/configurer.rb |    7 ++++++-
 lib/puppet/ssl/host.rb   |    3 +--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/lib/puppet/configurer.rb b/lib/puppet/configurer.rb
index efda545..9059ce2 100644
--- a/lib/puppet/configurer.rb
+++ b/lib/puppet/configurer.rb
@@ -133,7 +133,12 @@ class Puppet::Configurer
     # This just passes any options on to the catalog,
     # which accepts :tags and :ignoreschedules.
     def run(options = {})
-        prepare()
+        begin
+            prepare()
+        rescue => detail
+            puts detail.backtrace if Puppet[:trace]
+            Puppet.err "Failed to prepare catalog: %s" % detail
+        end
 
         if catalog = options[:catalog]
             options.delete(:catalog)
diff --git a/lib/puppet/ssl/host.rb b/lib/puppet/ssl/host.rb
index 29b947e..debdeba 100644
--- a/lib/puppet/ssl/host.rb
+++ b/lib/puppet/ssl/host.rb
@@ -235,10 +235,9 @@ class Puppet::SSL::Host
 
     # Attempt to retrieve a cert, if we don't already have one.
     def wait_for_cert(time)
-        return if certificate
         begin
+            return if certificate
             generate
-
             return if certificate
         rescue StandardError => detail
             Puppet.err "Could not request certificate: %s" % detail.to_s
-- 
1.6.4


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