Issue #3173 has been updated by W. Andrew Loe III.

#2583 also possibly related.
----------------------------------------
Bug #3173: Puppetmasterd cannot find classes after restart
http://projects.reductivelabs.com/issues/3173

Author: W. Andrew Loe III
Status: Unreviewed
Priority: Normal
Assigned to: 
Category: 
Target version: 
Affected version: 0.25.3
Keywords: 
Branch: 


Running puppetmasterd 0.25.3 as a Rack application behind nginx+Passenger 
2.2.8. If I touch tmp/restart.txt which causes the master to be restarted and 
then immediately initiate a run by a client, the classes are not found. 
Restarting the client again works. This hurts because I typically only have 1 
or 2 puppetmasterd processes running, but sometimes I force a restart 20+ 
machines which causes Passenger to spawn 4-5 additional puppetmasterd processes 
which promptly fail. This may or may not be the same as #2294 which was punted 
after no repro case could be created.

puppet.conf (the same on both client and server machines):
<pre>
[main]
  #  Include some of our local stuff
  path = /usr/local/bin:/usr/bin:/sbin:/bin:/usr/sbin

  # The puppet configuration directory.
  confdir = /etc/puppet

  # Where Puppet stores dynamic and growing data.
  # The default value is '/var/puppet'.
  vardir = /var/lib/puppet

  # The Puppet log directory.
  # The default value is '$vardir/log'.
  logdir = /var/log/puppet

  # Use the logdir not syslog
  logdest = /var/log/puppet/puppet.log

  # 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

  # Potential Environments.
  environments = skunkworks,master,staging,production

  # Use iClassify to describe nodes
  node_terminus = exec
  external_nodes = "/private/path"

[puppetd]
  # Default environment for the node.
  environment = master

  # The file in which puppetd stores a list of the classes
  # associated with the retrieved configuratiion.  Can be loaded in
  # the separate ``puppet`` executable using the ``--loadclasses``
  # option.
  # The default value is '$confdir/classes.txt'.
  classfile = $vardir/classes.txt

  # Where puppetd caches the local configuration.  An
  # extension indicating the cache format is added automatically.
  # The default value is '$confdir/localconfig'.
  localconfig = $vardir/localconfig

  report = true
  runinterval = 3600
  server = ops.onehub.com

  preferred_serialization_format = yaml

[puppetmasterd]
  reports = tagmail
  reportfrom = [email protected]
  smtpserver = localhost

  storeconfigs = false

  ssl_client_verify_header = HTTP_X_CLIENT_VERIFY
  ssl_client_header = HTTP_X_SSL_SUBJECT

# Environments pull in different modules.
[skunkworks]
  manifest    =   $vardir/modules/skunkworks/current/manifests/site.pp
  modulepath  =   $vardir/modules/skunkworks/current/modules

[master]
  manifest    =   $vardir/modules/master/current/manifests/site.pp
  modulepath  =   $vardir/modules/master/current/modules

[staging]
  manifest    =   $vardir/modules/staging/current/manifests/site.pp
  modulepath  =   $vardir/modules/staging/current/modules

[production]
  manifest    =   $vardir/modules/production/current/manifests/site.pp
  modulepath  =   $vardir/modules/production/current/modules
</pre>

Log output from puppetmasterd:
<pre>
Feb 10 21:07:46 ops puppetmasterd[8471]: Starting Puppet server version 0.25.3
Feb 10 21:07:47 ops puppetmasterd[8471]: Could not find classes monit, cron, 
common, yum, root, onehub, sshd, hosts, motd, puppet, ntpd, snmpd, git-core, 
sudo, splunk::forwarder, postfix, perl, ruby-enterprise, icagent in namespaces 
base at /var/lib/puppet/modules/production/current/manifests/templates.pp:2 on 
node domu-12-31-39-01-8d-62.compute-1.internal
</pre>

Log output from puppetd:
<pre>
Feb 10 21:07:44 domU-12-31-39-01-8D-62 puppetd[22375]: Starting Puppet client 
version 0.25.3
Feb 10 21:07:47 domU-12-31-39-01-8D-62 puppetd[22375]: Could not retrieve 
catalog from remote server: Error 400 on SERVER: Could not find classes monit, 
cron, common, yum, root, onehub, sshd, hosts, motd, puppet, ntpd, snmpd, 
git-core, sudo, splunk::forwarder, postfix, perl, ruby-enterprise, icagent in 
namespaces base at 
/var/lib/puppet/modules/production/current/manifests/templates.pp:2 on node 
domu-12-31-39-01-8d-62.compute-1.internal
Feb 10 21:07:47 domU-12-31-39-01-8D-62 puppetd[22375]: Using cached catalog
</pre>


-- 
You have received this notification because you have either subscribed to it, 
or are involved in it.
To change your notification preferences, please click here: 
http://reductivelabs.com/redmine/my/account

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

Reply via email to