The Puppet Labs Issue Tracker has Moved: https://tickets.puppetlabs.com

This issue tracker is now in read-only archive mode and automatic ticket export has been disabled. Redmine users will need to create a new JIRA account to file tickets using https://tickets.puppetlabs.com. See the following page for information on filing tickets with JIRA:

Bug #15300

Pluginsync collisions

Added by Ben Ford almost 4 years ago. Updated over 1 year ago.

Status:AcceptedStart date:06/29/2012
Priority:NormalDue date:
Assignee:eric sorenson% Done:

0%

Category:plug-ins
Target version:3.x
Affected Puppet version: Branch:
Keywords:pluginsync

We've Moved!

Ticket tracking is now hosted in JIRA: https://tickets.puppetlabs.com

This ticket is now tracked at: https://tickets.puppetlabs.com/browse/PUP-3922


Description

I had a problem come up in training last week involving synced facts that brought out a larger problem in pluginsync.

So if I create a module ‘one’ and define a fact in it called ‘myfact’, then create a module ‘two’ and also define a fact there called ‘myfact’ they will collide. The fact in ‘two’ will win because it comes later in the directory globbing. But worse is that they will be continuously fighting. On an agent run you can see this fact being overwritten to ‘one/myfact’ and then ‘two/myfact’ every single time.

This is horrible for usability because it’s not clear which fact will be called, and it’s a terrible waste of bandwidth, etc.


Related issues

Related to Puppet - Feature #14149: The Puppet::Modules (or some other namespace) should be r... Closed 04/23/2012
Related to Puppet - Bug #7316: puppet face applications (subcommands) delivered via modu... Closed 05/02/2011

History

#1 Updated by Josh Cooper almost 4 years ago

This is an example of what we said would happen in #14149

#2 Updated by Nigel Kersten almost 4 years ago

Is it really? This isn’t quite the same as I see it.

#3 Updated by eric sorenson almost 4 years ago

  • Category set to plug-ins
  • Status changed from Unreviewed to Accepted
  • Assignee changed from Nigel Kersten to eric sorenson
  • Target version set to 3.x
  • Keywords set to pluginsync

The namespacing/load order is problematic but the files being copied on top of one another would be fixed if we replicated the module path structure from the master onto the client instead of squashing everything into $plugindest regardless of source.

#4 Updated by Anonymous over 3 years ago

eric sorenson wrote:

The namespacing/load order is problematic but the files being copied on top of one another would be fixed if we replicated the module path structure from the master onto the client instead of squashing everything into $plugindest regardless of source.

Yes, this is why we’ve decided to recommend the vendor name in addition to the module as part of the convention described in #14149. With the pluginsync we have today, we need both the vendor name and the module name to disambiguate common file names like lib/puppet/util.rb mapping to “Puppet::Util”.

#5 Updated by eric sorenson over 1 year ago

Redmine Issue #15300 has been migrated to JIRA:

https://tickets.puppetlabs.com/browse/PUP-3922

Also available in: Atom PDF