Issue #3757 has been updated by Jeff McCune.

Assignee changed from eric sorenson to Jeff McCune

After more investigation, there are now two different ways catalog are 
prevented from happening:

1: A catalog run is already in progress. (The file agent_pidfile exists, 
created by a Puppet agent performing a catalog run)
2: The user has explicitly disabled catalog runs.(The file 
`agent_disabled_lockfile` exists, created by an user running puppet agent 
--enable)

In 2.7.x these two different ways to prevent a catalog run are overloaded into 
the same file, `puppetdlockfile`.  In 3.x `puppet agent --enable` operates 
against `agent_disabled_lockfile` but not `agent_pidfile`.  The reason I saw no 
change while running `puppet agent --enable` in Telly is because the 
`agent_pidfile` exists.

I'm going to leave this open because `agent_pidfile` is still very confusing.  
The term "puppet agent running" is also very confusing because it is ambiguous 
whether the term refers to the running agent daemon process or the catalog 
configuration run.

Before the 3.0.0 release I'm going to rename `agent_pidfile` to 
`agent_catalog_run_lockfile` and improve the description to make it clear the 
setting refers to catalog runs and not running agent processes.

-Jeff
----------------------------------------
Feature #3757: --enable and --disable should be improved
https://projects.puppetlabs.com/issues/3757#change-71294

Author: R.I. Pienaar
Status: Re-opened
Priority: Normal
Assignee: Jeff McCune
Category: executables
Target version: 3.0.0
Affected Puppet version: 0.25.4
Keywords: mcollective enabledisable
Branch: https://github.com/puppetlabs/puppet/pull/680


At present the --enable/--disable and associated checks on the puppetd is all 
done via a lock file /var/lib/puppet/state/puppetdlock.

My investigations reveal the behavior of this file to be:

 * if exist and it's empty, someone ran --disable
 * if exist and it's got a PID in it puppetd is doing a manifest run at present
 * if it's absent its enabled and not running

The problem comes when you want to disable the daemon while it's running a 
manifest.  The lock file with PID in it will remain in place and once puppetd 
is done doing its run it will remove the lock file, leaving your client enabled 
when infact it was asked to disable the client and not run in future.

So I want to be able to disable future runs even while a current run is 
happening.  The easiest might be to have 2 lock files - one to indicate 
enabled/disabled and one to indicate running dont start another concurrent run.



-- 
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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-bugs?hl=en.

Reply via email to