Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have puppet master running on a Xen dom0, and 3 domUs syncing to it via an hourly crontab puppet agent --test.

About 80% of the time, the puppet agent --test completes successfully:

info: Retrieving plugin
info: Caching catalog for test3
info: Applying configuration version '1333319732'
notice: Finished catalog run in 5.08 seconds

The other 20% of the time, it fails midway, with errors such as the following:

err: Could not retrieve catalog from remote server: Error 400 on SERVER:
     Could not find class iptables for test1 at /etc/puppet/manifests/site.pp:1 on node test1
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run

or

info: Retrieving plugin
info: Caching catalog for test2
info: Applying configuration version '1333319732'
notice: Finished catalog run in 24.73 seconds
err: Could not send report: Error 500 on SERVER: 

Internal Server Error

private method `gsub' called for WEBrick::HTTPStatus::RequestTimeout:Class

 WEBrick/1.3.1 (Ruby/1.8.5/2006-08-25) OpenSSL/0.9.8e-rhel5 at
 puppet:8140

or

info: Retrieving plugin
err: Could not retrieve catalog from remote server: execution expired
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run

or

info: Retrieving plugin
info: Caching catalog for test3
info: Applying configuration version '1333319732'
notice: Finished catalog run in 9.47 seconds
err: Could not send report: Error 408 on SERVER: Request Timeout 

During this time, I've not made any changes to the Puppet configuration — it just sporadically fails.

I'm running puppet-2.7.12 on CentOS, and followed the setup instructions described on http://docs.puppetlabs.com/learning/agent_master_basic.html.

Any ideas about how I can troubleshoot this?

share|improve this question
    
Wow... I know what the timeouts are, and I've seen the sporadic "Could not find class" errors before, but the "private method gsub" one's a new one. You've got a severely boned Puppet installation. –  womble Apr 7 '12 at 2:56
    
I don't know about troubleshooting this but the advice I remember reading was to get away from WEBrick as soon as you have more than one client. Apache and passenger was the route I took but anything that can serve Ruby should do the job. –  Ladadadada Apr 7 '12 at 7:10
add comment

2 Answers

Webrick is monothreaded, and with lousy performance. Beyond 20 servers is relatively low number of configuration items (around 200), you have to change to something else. Use Puppet Rack -- it's much better.

share|improve this answer
add comment
up vote 0 down vote accepted

Several weeks ago, I increased the memory allocation for the virtual machine running puppet master by a couple hundred megabytes, and there haven't been any failures since then.

(That's a strange way of indicating memory is insufficient...)

share|improve this answer
1  
Most likely the server was swapping or getting memory faults. We track our puppet server that way but we have a few more nodes than you. Puppet compiles the manifests for each server before sending them out which eats memory. If you do increase the number of nodes, switch to a different server for running puppet. –  Ryaner Sep 27 '12 at 14:57
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.