Issue #16568 has been updated by Charlie Sharpsteen.
Status changed from Re-opened to Investigating
Steps for re-production:
1: Set up a puppet master with the following `site.pp`:
<pre>
node default {
include apache
}
</pre>
Do not install the apache module just yet.
2: Kick off a puppet agent run. It will fail as follows:
<pre>
Error: Could not retrieve catalog from remote server: Error 400 on SERVER:
Could not find class apache for puppetagent.boxnet on node puppetagent.boxnet
Error: Could not retrieve catalog; skipping run
</pre>
3: Install the missing apache module on the master:
<pre>
puppet module install puppetlabs/apache
</pre>
4: Kick off another agent run. Pluginsync will occur, but compilation will
still fail with the same error message:
<pre>
Info: Retrieving plugin
Notice: /File[/var/lib/puppet/lib/puppet]/ensure: created
Notice: /File[/var/lib/puppet/lib/puppet/provider]/ensure: created
...
...
Error: Could not retrieve catalog from remote server: Error 400 on SERVER:
Could not find class apache for puppetagent.boxnet on node puppetagent.boxnet
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
</pre>
Subsequent agent runs will continue to fail until the master is started, or the
environment manifest containing the agent's node description is edited.
As noted by Roman, this does not affect the 2.7 series as 2.7.21 handles the
above scenario perfectly. After doing some research, I suspect there may be a
3.x regression in how the per-environment TypeCollection is watching for
changes in module files. Will investigate further.
----------------------------------------
Bug #16568: Modules added to modulepath aren't recognized until service restart
https://projects.puppetlabs.com/issues/16568#change-89134
* Author: Ryan Coleman
* Status: Investigating
* Priority: Normal
* Assignee:
* Category: modules
* Target version: 3.x
* Affected Puppet version:
* Keywords:
* Branch:
----------------------------------------
Recreating my working environment (in this specific order):
* Use CentOS 6.0
* Install puppet-server 3.0.0-rc7 from puppetlabs-devel yum repository on
master, puppet 3.0.0-rc7 on agent
* Install puppetdb module -- `puppet module install puppetlabs-puppetdb`
* Start the puppetmaster service
* Declare puppetdb & puppetdb::master::config class on master and run puppet)
* Install mediawiki module -- `puppet module install martasd-mediawiki`
Declare the mediawiki class for your agent node,
<pre>
class { 'mediawiki':
server_name => 'wiki.puppetlabs.vm',
admin_email => '[email protected]',
db_root_password => 'really_long_password',
doc_root => '/var/www',
max_memory => '1024'
}
</pre>
* Run Puppet on your agent
I expect you'll run into the error I received.
<pre>
Error: Could not retrieve catalog from remote server: Error 400 on SERVER:
Puppet::Parser::AST::Resource failed with error ArgumentError: Could not find
declared class mediawiki at /etc/puppet/manifests/site.pp:9 on node
wiki1.puppetlabs.vm
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
</pre>
Additional info:
<pre>
[root@master modules]# puppet module list
/etc/puppet/modules
├── cprice404-inifile (v0.0.3)
├── inkling-postgresql (v0.3.0)
├── mediawiki (???)
├── puppet-haproxy (v0.0.2)
├── puppetlabs-apache (v0.4.0)
├── puppetlabs-firewall (v0.0.4)
├── puppetlabs-mysql (v0.5.0)
├── puppetlabs-puppetdb (v1.0.3)
├── puppetlabs-stdlib (v3.0.1)
├── ripienaar-concat (v0.2.0)
├── saz-memcached (v2.0.2)
└── stahnma-epel (v0.0.2)
/usr/share/puppet/modules (no modules installed)
[root@master modules]# puppet config print modulepath
/etc/puppet/modules:/usr/share/puppet/modules
</pre>
Problem is resolved by restarting the puppetmaster service. No amount of
waiting seems to resolve the issue.
--
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.