Issue #3173 has been updated by Markus Roberts.

Status changed from Investigating to Accepted
Assignee deleted (Markus Roberts)
Target version changed from 0.25.6 to queued

There have been a number tickets related to these issues; some are still open 
and this specific issue may have been fixed in 2.6.x (in which case this ticket 
should be closed) but, if it can still be reproduced  the time this ticket gets 
to the head of the queue, it should be fixed in 2.7.
----------------------------------------
Bug #3173: Puppetmasterd cannot find classes after restart
http://projects.puppetlabs.com/issues/3173

Author: W. Andrew Loe III
Status: Accepted
Priority: Normal
Assignee: 
Category: server
Target version: queued
Affected version: 0.25.4
Keywords: module modulepath settings cache
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://projects.puppetlabs.com/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