Puppet: System Administration Automated

Support

Ticket #1176 (closed defect: fixed)

Opened 8 months ago

Last modified 7 months ago

configtimeout option not being honored

Reported by: micah Assigned to: luke
Priority: normal Milestone:
Component: client Version: 0.24.4
Severity: major Keywords: configtimeout
Cc: Triage Stage: Ready for checkin
Attached Patches: Code Complexity: Trivial

Description

I have one node that continually generates a configuration timeout, I'm not sure why, but because it fails to generate a config in time, it times out and then reverts to the cached config. I thought I'd increase the configtimeout to something larger so that it had enough time to figure itself out, however it doesn't appear as if the option is working:

# time puppetd --configtimeout 999999 --test
info: Loading fact vserver
info: Loading fact interfaces
info: Loading fact in_colo
info: Loading fact acpi_available
info: Loading fact public_ip
info: Loading fact netmask
info: Loading fact ipmess
info: Loading fact virtual
info: Loading fact private_ip
info: Retrieving plugins
notice: Ignoring cache
err: Configuration retrieval timed out
warning: Not using cache on failed catalog

real    2m20.477s

As you can see above, the actual time that puppet sat around waiting for things before it timed out was only 2 minutes, no where close to the large amount I specified on the command-line.

Additionally, I tried setting this in puppet.conf:

[puppetd]
pluginsync=true
factsync=false
report=true
configtimeout=999999

But same behavior, approximately 2 minutes and a handful of seconds later, a configuration timeout.

I see in the master logs that the configuration compilation for this node takes around 168 seconds, which must be too long.

Attachments

puppet-fix-1176.patch (1.6 kB) - added by arogge on 04/10/08 19:20:20.
Change fixed timeout of 120 seconds to Puppet[:configtimeout]
puppet-fix-1176-2.patch (0.7 kB) - added by arogge on 04/10/08 19:56:07.
Fix indentation, use spaces instead of a tab

Change History

04/03/08 12:41:55 changed by jamtur01

  • complexity changed from Unknown to Trivial.
  • stage changed from Unreviewed to Accepted.

Okay looks like the default (120 seconds) is taking precedence.

04/10/08 17:39:08 changed by arogge

Not really. I tracked it down to network/xmlrpc/client.rb where ::XMLRPC::Client is initialized with a constant timeout of 120 seconds. However, I guess the Problem is also in the HTTP object.

I'll send a patch once I get it working.

04/10/08 19:20:20 changed by arogge

  • attachment puppet-fix-1176.patch added.

Change fixed timeout of 120 seconds to Puppet[:configtimeout]

04/10/08 19:24:30 changed by arogge

  • owner changed from community to arogge.
  • status changed from new to assigned.
  • severity changed from normal to major.
  • patch changed from None to Code.

The attached patch fixes the timeout, however there's a problem with Apache/Mongrel - at least on RHEL. The default configuration for Apache sets the Timeout there to 120 seconds which leads to a "502 Proxy Error" upon config retrieval.

I guess that should be documented somewhere.

04/10/08 19:56:07 changed by arogge

  • attachment puppet-fix-1176-2.patch added.

Fix indentation, use spaces instead of a tab

04/11/08 18:23:19 changed by luke

  • stage changed from Accepted to Ready for checkin.

04/19/08 13:52:34 changed by jamtur01

  • owner changed from arogge to luke.
  • status changed from assigned to new.

Pushed in commit [a35450b147c8594d5bcae4facc938fe8143218f7] in branch 0.24.x

04/19/08 14:36:31 changed by jamtur01

Also broken tests are fixed in commit [62ca72608c8fcded624c46c6951b9381a7284a80] in branch 0.24.x

04/20/08 06:31:25 changed by luke

  • status changed from new to closed.
  • resolution set to fixed.

Merged and pushed.