Issue #19642 has been updated by Charlie Sharpsteen. Category set to autoloader Keywords set to type_collection
---------------------------------------- Bug #19642: "Could not find class" hiccups *often* once after manifest/module changes https://projects.puppetlabs.com/issues/19642#change-89984 * Author: Christian Flamm * Status: Duplicate * Priority: High * Assignee: Charlie Sharpsteen * Category: autoloader * Target version: * Affected Puppet version: 3.1.0 * Keywords: type_collection * Branch: ---------------------------------------- Hi, if I change a file in a module or manifest directory this *often* results in errors, mostly of the following kinds * Could not find class <class> for <node> on node <node> * Cannot find definition Class on node <node> These errors occur when puppet modules/manifests are changed - but it happens only once. If it happens affected puppet agents will use their cached catalog once. **The next time these agents request a catalog it is compiled flawlessly and everything will work like a charm** - all errors are gone. Problem is we have agents with complex catalogs. Their catalog runs can take up to over a minute and so the time it takes for a change to be applied will then be doubled to take up to 2 or even 3 minutes. Usually changes of modules/manifests are performed by "git pull". But it's easy to reproduce these error messages by simple "touch" operations. Here are some interesting log observations and their [commonness]. Yes AFAICS they always appear in triplets. It rarely happens that there are no problems at all after a modification. \> touch /opt/xxx/dev/puppet/manifests/site.pp [often] puppet-master[12498]: Could not find class <class> for <node> on <node> [often] puppet-master[12498]: Could not find class <class> for <node> on <node> [often] puppet-master[12498]: Could not find class <class> for <node> on <node> \> touch /opt/xxx/dev/puppet/puppet.conf [often] puppet-master[12498]: Could not find class <class> for <nodeY> on <node> [often] puppet-master[12498]: Could not find class <class> for <nodeY> on <node> [often] puppet-master[12498]: Could not find class <class> for <nodeY> on <node> [sometimes] puppet-master[12498]: Cannot find definition Class on node <node> [sometimes] puppet-master[12498]: Cannot find definition Class on node <node> [sometimes] puppet-master[12498]: Cannot find definition Class on node <node> [rare] puppet-master[12498]: Puppet::Parser::AST::Resource failed with error ArgumentError: Invalid resource type <own custom type> at <class file> on node <node> [rare] puppet-master[12498]: Puppet::Parser::AST::Resource failed with error ArgumentError: Invalid resource type <own custom type> at <class file> on node <node> [rare] puppet-master[12498]: Puppet::Parser::AST::Resource failed with error ArgumentError: Invalid resource type <own custom type> at <class file> on node <node> \> touch /opt/xxx/dev/puppet/modules/dispatcher/manifests/init.pp [often] puppet-master[12498]: Could not find class <class not even part of module dispatcher> for <node not even affected by module dispatcher> on <node not even...> [often] puppet-master[12498]: Could not find class <class not even part of module dispatcher> for <node not even affected by module dispatcher> on <node not even...> [often] puppet-master[12498]: Could not find class <class not even part of module dispatcher> for <node not even affected by module dispatcher> on <node not even...> Affected classes and nodes seem to be randomly chosen. I've got no idea if this is a bug or some kind of misuse/misconfiguration. Hope somebody can help. Thanks! Environment this runs in: > ll /etc/puppet lrwxrwxrwx 1 root root 34 Mar 7 10:01 auth.conf -> /opt/xxx/dev/puppet/auth.conf lrwxrwxrwx 1 root root 38 Mar 7 10:01 autosign.conf -> /opt/xxx/dev/puppet/autosign.conf lrwxrwxrwx 1 root root 40 Mar 7 10:01 fileserver.conf -> /opt/xxx/dev/puppet/fileserver.conf lrwxrwxrwx 1 root root 36 Mar 7 10:01 puppet.conf -> /opt/xxx/dev/puppet/puppet.conf > ls -A /opt/xxx/dev/puppet/ auth.conf autosign.conf fileserver.conf .git .gitignore manifests modules .project puppet.conf scripts > cat /etc/puppet/puppet.conf # on puppetmaster [main] logdir = /var/log/puppet rundir = /var/run/puppet ssldir = $vardir/ssl modulepath = /opt/xxx/dev/puppet/modules manifestdir = /opt/xxx/dev/puppet/manifests manifest = /opt/xxx/dev/puppet/manifests/site.pp [agent] classfile = $vardir/classes.txt localconfig = $vardir/localconfig server = <puppetmaster host> report = true splaylimit = 0 runinterval = 30 [master] certname=<puppetmaster host> reports = http,log reportdir = /var/lib/puppet/reports/upload reporturl = http://<puppetmaster host>:3000/reports > cat /opt/xxx/dev/puppet/manifests/site.pp import 'nodes.pp' $puppetserver = <puppetmaster host> > rpm -qa | egrep "puppet|ruby" rubygem-rake-0.8.7-2.1.el6.noarch ruby-mysql-2.8.2-1.el6.x86_64 libselinux-ruby-2.0.94-5.3.el6.x86_64 puppet-3.1.0-1.el6.noarch rubygem-fastthread-1.0.7-2.el6.x86_64 rubygem-mongrel-1.1.5-3.el6.x86_64 ruby-1.8.7.352-7.el6_2.x86_64 ruby-irb-1.8.7.352-7.el6_2.x86_64 ruby-augeas-0.4.1-1.el6.x86_64 ruby-shadow-1.4.1-13.el6.x86_64 puppetlabs-release-6-6.noarch rubygems-1.3.7-1.el6.noarch puppet-server-3.1.0-1.el6.noarch rubygem-gem_plugin-0.2.3-3.el6.noarch rubygem-daemons-1.0.10-2.el6.noarch puppet-dashboard-1.2.22-1.el6.noarch ruby-libs-1.8.7.352-7.el6_2.x86_64 ruby-rdoc-1.8.7.352-7.el6_2.x86_64 rubygem-json-1.4.6-1.el6.x86_64 -- 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 unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/puppet-bugs?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
