Bug #2244
pluginsync fails when no source is available
| Status: | Needs design decision | Start: | 05/12/2009 | |
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assigned to: | % Done: | 0% |
||
| Category: | agent | |||
| Target version: | Statler | |||
| Affected version: | 0.25.0 | Branch: | ||
| Keywords: | ||||
| Votes: | 2 |
Description
When pluginsync is used without any plugin directories on the server side, an exception is raised rather than an empty set being returned.
Related issues
| duplicated by Puppet - Bug #2939: If pluginsync is enabled but no plugins present confusing... | Duplicate | 12/16/2009 |
History
Updated by Derek Whayman about 1 year ago
h2. Scenario 1
No [plugins] in /etc/puppet/fileserver.conf
debug: No plugins mount given; autocreating with default permissions
On client, no pluginsource in /etc/puppet/puppet.conf
<0> sa_dewha@engpsr0171.etf.barcapetf.com (0 jobs) /var/lib/puppet/plugins % ls -l total 0 <0> sa_dewha@engpsr0171.etf.barcapetf.com (0 jobs) /var/lib/puppet/plugins % sudo puppetd -t --noop --no-factsync --pluginsync --tags sdkljfh info: Retrieving plugin err: /File[/var/lib/puppet/plugins]: Failed to retrieve current state of resource: Could not retrieve information from source(s) puppet://engpsr0170.etf.barcapetf.com/plugins ...
h2. Scenario 2
[plugins] in /etc/puppet/fileserver.conf, without path
... [plugins] allow * ... info: mount[plugins]: allowing * access <0> sa_dewha@engpsr0171.etf.barcapetf.com (0 jobs) /var/lib/puppet/plugins % ls -l total 0 <0> sa_dewha@engpsr0171.etf.barcapetf.com (0 jobs) /var/lib/puppet/plugins % sudo puppetd -t --noop --no-factsync --pluginsync --tags sdkljfh info: Retrieving plugin err: /File[/var/lib/puppet/plugins]: Failed to retrieve current state of resource: Could not retrieve information from source(s) puppet://engpsr0170.etf.barcapetf.com/plugins
h2. Scenario 3
Fall back to using an old-style mount On Master, in /etc/puppet/fileserver.conf:
... [oldplugins] path /var/lib/puppet/plugins allow * ...
On Client, In /etc/puppet/puppet.conf
...
[puppetd]
...
pluginsource = puppet:///oldplugins/
0> sa_dewha@engpsr0171.etf.barcapetf.com (0 jobs)
/var/lib/puppet/plugins
% sudo puppetd -t --noop --no-factsync --pluginsync --tags sdkljfh
<1> sa_dewha@engpsr0171.etf.barcapetf.com (0 jobs)
/var/lib/puppet/plugins
% ls -l
total 0
<0> sa_dewha@engpsr0171.etf.barcapetf.com (0 jobs)
/var/lib/puppet/plugins
% sudo puppetd -t --noop --no-factsync --pluginsync --tags sdkljfh
info: Retrieving plugin
notice: /File[/var/lib/puppet/plugins/puppet]/ensure: created
notice: /File[/var/lib/puppet/plugins/puppet/parser]/ensure: created
notice: /File[/var/lib/puppet/plugins/puppet/parser/functions]/ensure: created
notice: /File[/var/lib/puppet/plugins/puppet/parser/functions/BCutilities.rb]/ensure: defined 'content' as '{md5}3cdb1b3a2c9377f2b06b8a3d1eb99f7d'
notice: /File[/var/lib/puppet/plugins/puppet/parser/functions/allstringvarsdefined.rb]/ensure: defined 'content' as '{md5}57c37a60a75dfca8918596e07ba200dd'
...
notice: /File[/var/lib/puppet/plugins/puppet/provider/sysctl]/ensure: created
notice: /File[/var/lib/puppet/plugins/puppet/provider/sysctl/parsed.rb]/ensure: defined 'content' as '{md5}d2286da60de06702b4f4088aea013271'
...
notice: /File[/var/lib/puppet/plugins/puppet/type/sysctl.rb]/ensure: defined 'content' as '{md5}2dbd57c096f29efa11a4c041af6e41ef'
...
info: Loading downloaded plugin /var/lib/puppet/plugins/puppet/type/sysctl.rb
info: Redefining sysctl in Puppet::Type
...
It doesn’t seem to be successfully loading my type; that’s another ticket.
Updated by Luke Kanies about 1 year ago
- Status changed from Unreviewed to Accepted
- Target version set to 0.25.0
Updated by Luke Kanies about 1 year ago
- Subject changed from Non-modular pluginsync fails to pluginsync fails when no source is available
- Category set to agent
- Assigned to set to Luke Kanies
Updated by Luke Kanies about 1 year ago
- Assigned to changed from Luke Kanies to Puppet Community
- Target version changed from 0.25.0 to 2.6.0
For now, I’m going to bump this. It’s just a logging issue, it doesn’t actually hurt anything, and what I would basically say is, don’t enable pluginsync if you don’t have any plugins.
It’s actually a pretty hard problem to solve, because we’re using standard fileserving. We almost need to do a pre-query to see if there are plugins, and only then do the full synchronization.
Updated by James Turnbull about 1 year ago
- Assigned to deleted (
Puppet Community)
Updated by James Turnbull 6 months ago
- Target version changed from 2.6.0 to Statler
Updated by Paul Gear 3 months ago
FWIW turning off pluginsync on the server doesn’t fix this (at least on my system using 0.25.1 from Debian backports it doesn’t). I guess each client must be updated as well. I decided to just suppress it in my log monitoring tool instead.
Updated by James Turnbull 3 months ago
- Status changed from Accepted to Needs design decision
- Target version changed from Statler to 0.25.6
Should we perhaps change the severity of the warning in the meantime?
Updated by James Turnbull 3 months ago
- Assigned to set to Luke Kanies
Updated by Luke Kanies 3 months ago
- Assigned to changed from Luke Kanies to James Turnbull
We can’t – it’s the general framework behaving in a general way, and we really can’t suppress it without special-casing a ton of stuff.
I’ve looked into it pretty deeply, and either we use general services or we don’t. I mean, we could spend two days making it so people who have pluginsync enabled but don’t use plugins don’t get any warnings, but… is it so hard to just not use pluginsync until you have plugins?
Updated by James Turnbull 3 months ago
- Target version changed from 0.25.6 to Statler
Updated by Jeff McCune about 1 month ago
For what it’s worth, there is a work around:
In 0.25.4 if any one of your modules simply has an empty “lib” directory, the warning will disappear.
The automatic fileserver “plugins” mount point needs something, even a blank directory, to prevent the warning.
In any of your modules on your modulepath just create a blank lib directory and this will go away.