The Puppet Labs Issue Tracker has Moved:

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 See the following page for information on filing tickets with JIRA:

Bug #18154

Master and agent should not share libdir

Added by Josh Cooper over 3 years ago. Updated over 2 years ago.

Status:AcceptedStart date:
Priority:NormalDue date:
Assignee:-% Done:


Target version:3.x
Affected Puppet version: Branch:

We've Moved!

Ticket tracking is now hosted in JIRA:


If the agent and master on the same host, then they share the same libdir by default. This can have bizarre consequences when environments are used — The agent pluginsyncs, the master reads code from an environment-specific modulepath, and the agent writes it into the its libdir. But since the master loads code from there also, the code has leaked across environments.

Having the agent and master share a libdir wasn’t always an issue (#2494). But it doesn’t work when environments are used. Worse, various code loading bugs #4409, #7316, #12173, #13858 have resulted in users copying custom code into the master’s libdir, so that the master can find/load it.

Really, the agent’s libdir is a cache from which it loads code, and should not be visible to the master. Either, the master should completely ignore the libdir setting, or create two properties for agent vs master libdir.

Related issues

Related to Puppet - Bug #2494: default $libdir with Puppetmaster is not included in ruby... Closed 08/04/2009
Related to Puppet - Bug #4409: puppetmasterd does not find custom types for environment Closed 07/30/2010
Related to Puppet - Bug #7316: puppet face applications (subcommands) delivered via modu... Closed 05/02/2011
Related to Puppet - Bug #12173: Masters cannot reliably distinguish between multiple vers... Accepted 01/25/2012
Related to Puppet - Bug #13858: Custom types in environments require loading into master'... Closed 04/08/2012
Related to Puppet - Bug #18459: Changing plugindest causes puppet to not be able to load ... Accepted


#1 Updated by Josh Cooper over 3 years ago

plugindest is an attempt to provide two separate libdirs for the agent and master, but due to #18459, changing plugindest will prevent the agent from loading pluginsynced code.

Also available in: Atom PDF