Bug #1708
closedPeriodicaly errors "Error 400 on SERVER: Cannot find definition Class on node"
Description
I periodically get following error:
Could not retrieve catalog from remote server: Error 400 on SERVER: Cannot find definition Class on node node002.local
Environment:
Centos 5.8 in xen vm:
Listen 3000
<VirtualHost *:3000>
RackAutoDetect Off
ServerName foreman.lan
DocumentRoot /usr/share/foreman/public
<Directory /usr/share/foreman/public>
Options None
AllowOverride AuthConfig
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/httpd/foreman_error.log
LogLevel warn
CustomLog /var/log/httpd/foreman_access.log combined
ServerSignature On
</VirtualHost>
Puppet on the other VM on nginx nginx-1.0.11 with p rubygem-passenger-3.0.11
server {
listen 8140;
passenger_enabled on;
passenger_min_instances 5;
ssl on;
ssl_session_timeout 5m;
ssl_certificate /var/lib/puppet/ssl/certs/puppet001.lan.pem;
ssl_certificate_key /var/lib/puppet/ssl/private_keys/puppet001.lan.pem;
ssl_client_certificate /var/lib/puppet/ssl/ca/ca_crt.pem;
- choose any ciphers
ssl_ciphers SSLv2:-LOW:-EXPORT:RC4+RSA;
- allow authenticated and client without certs
ssl_verify_client optional;
- obey to the Puppet CRL
ssl_crl /var/lib/puppet/ssl/ca/ca_crl.pem;
client_max_body_size 5M;
client_header_buffer_size 8k;
large_client_header_buffers 8 32k;
types {}
default_type application/x-raw;
passenger_set_cgi_param HTTP_X_CLIENT_DN $ssl_client_s_dn;
passenger_set_cgi_param HTTP_X_CLIENT_VERIFY $ssl_client_verify;
root /etc/puppet/rack/public;
passenger_base_uri /;
error_log /var/log/nginx/puppet-error_log info;
access_log /var/log/nginx/puppet-access_log main;
}
puppet master conf:
[main]
# The Puppet log directory.
# The default value is '$vardir/log'.
logdir = /var/log/puppet
- Where Puppet PID files are kept.
- The default value is '$vardir/run'.
rundir = /var/run/puppet
- Where SSL certificates are kept.
- The default value is '$confdir/ssl'.
ssldir = $vardir/ssl
listen = true
[master] [15/1050]
ssl_client_header = HTTP_X_CLIENT_DN
ssl_client_verify_header = HTTP_X_CLIENT_VERIFY
keylength = 32768
certname = puppet001.qs.mc
reporturl = http://foreman.lan:3000/reports
storeconfigs = true
dbadapter = mysql
dbuser = puppet
dbpassword = l9erj4bdf_qIo
dbserver = mgmt001.qs.mc
pluginsync = true
factpath = /var/lib/puppet/facts
- templatedir = /etc/puppet/manifests/templates
syslogfacility = local6external_nodes = /etc/puppet/node.rb
node_terminus = execrrddir=/var/lib/puppet/rrd
rrdinterval=$runinterval
rrdgraph=true
reports=log, foreman
[agent]
environment = staging
report = true
classfile = $vardir/classes.txt
localconfig = $vardir/localconfig
pluginsync = true
server = puppet001.qs.mc
runinterval = 600
pluginsignore = .svn
[test]
modulepath = /etc/puppet/modules/current/1.0.6
manifest = /etc/puppet/environments/test/site.pp
[dev]
modulepath = /etc/puppet/environments/dev/modules
manifest = /etc/puppet/environments/dev/site.pp
[staging]
modulepath = /etc/puppet/modules/current/1.0.6
manifest = /etc/puppet/environments/statging/site.pp
[production]
modulepath = /etc/puppet/modules/current/1.0.6
manifest = /etc/puppet/environments/production/site.pp
Updated by Ohad Levy about 12 years ago
- Status changed from New to Need more information
can you find the request in foreman logs? can you provide the logs from both puppet and foreman of when it happens?
Updated by Siert Z. almost 12 years ago
This is a puppet bug: http://projects.puppetlabs.com/issues/15106
Make sure you create a site.pp on your puppet master, even if it is empty.
Another workaround is to set the 'filetimeout = 60' in your puppet master's puppet.conf.
Updated by Siert Z. almost 12 years ago
Fix is in pull request '6a34f1bc3e58d33408b1729913c4cf2e28b2d014' (module: foreman-installer / puppet-puppet)
Updated by Tomer Brisker over 8 years ago
- Status changed from Need more information to Resolved
Seems this was resolved 3 years ago. Closing.