Issue #17613 has been updated by Vaidas Jablonskis.

The reason that many people do not suffer from this issue is that init scripts 
avoid using SIGHUP to reload the service, instead they use 'stop / restart' to 
reload the service.

Puppet package in Fedora comes with systemd unit files, which are broken 
actually, I am fixing them and that's the reason I found this puppet master 
behaviour when I tried to implement reload in systemd puppet service files in a 
way puppet suggests.

Either way I think the way puppet handles SIGHUP is broken and needs fixing or 
SIGHUP handling needs to be removed.
----------------------------------------
Bug #17613: puppet master ignores config and commandline parameters on SIGHUP
https://projects.puppetlabs.com/issues/17613#change-83439

Author: Tom Fenri
Status: Needs More Information
Priority: High
Assignee: Tom Fenri
Category: server
Target version: 3.x
Affected Puppet version: 3.0.1
Keywords: 
Branch: 


We are using puppet version 3.0.1 on FreeBSD 8.1, installed from ports. 
$confdir is /home/share/puppet/, puppet master is running as user 'puppet'. 

rc.conf:
    puppetmaster_enable="YES"
    puppetmaster_flags="--confdir=/home/share/puppet --rundir=/var/run/puppet"

When started via /usr/local/etc/rc.d/puppetmaster everything works fine, 
process looks like:

    puppet  58577  4.7  0.9 121420 71124  ??  Ss    1:05PM   3:18.22 
/usr/local/bin/ruby18 /usr/local/bin/puppet master --confdir=/home/share/puppet 
--rundir=/var/run/puppet

When reloaded with "kill -HUP $pid", which happens sometimes by newsyslog, it 
seems to forget all settings and tries to do things in /root/.puppet:

    Nov 14 13:38:22 isptsfits21 puppet-master[58577]: Caught HUP; calling 
restart
    Nov 14 13:38:22 isptsfits21 puppet-master[58577]: Restarting with 
'/usr/local/bin/puppet master --confdir=/home/share/puppet 
--rundir=/var/run/puppet'
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: Cannot create 
/root/.puppet/var; parent directory /root/.puppet does not exist
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: 
(/File[/root/.puppet/var]/ensure) change from absent to directory failed: 
Cannot create
                                                      /root/.puppet/var; parent 
directory /root/.puppet does not exist
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: 
(/File[/root/.puppet/var/lib]) Dependency File[/root/.puppet/var] has failures: 
true
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: 
(/File[/root/.puppet/var/lib]) Skipping because of failed dependencies
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: 
(/File[/root/.puppet/var/server_data]) Dependency File[/root/.puppet/var] has 
failures: true
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: 
(/File[/root/.puppet/var/server_data]) Skipping because of failed dependencies
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: 
(/File[/root/.puppet/var/bucket]) Dependency File[/root/.puppet/var] has 
failures: true
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: 
(/File[/root/.puppet/var/bucket]) Skipping because of failed dependencies
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: 
(/File[/root/.puppet/var/reports]) Dependency File[/root/.puppet/var] has 
failures: true
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: 
(/File[/root/.puppet/var/reports]) Skipping because of failed dependencies
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: 
(/File[/root/.puppet/var/state]) Dependency File[/root/.puppet/var] has 
failures: true
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: 
(/File[/root/.puppet/var/state]) Skipping because of failed dependencies
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: 
(/File[/root/.puppet/var/yaml]) Dependency File[/root/.puppet/var] has 
failures: true
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: 
(/File[/root/.puppet/var/yaml]) Skipping because of failed dependencies
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: 
(/File[/root/.puppet/var/rrd]) Dependency File[/root/.puppet/var] has failures: 
true
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: 
(/File[/root/.puppet/var/rrd]) Skipping because of failed dependencies
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: 
(/File[/root/.puppet/var/log]) Dependency File[/root/.puppet/var] has failures: 
true
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: 
(/File[/root/.puppet/var/log]) Skipping because of failed dependencies
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: 
(/File[/root/.puppet/var/log/masterhttp.log]) Dependency 
File[/root/.puppet/var] has failures: true
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: 
(/File[/root/.puppet/var/log/masterhttp.log]) Skipping because of failed 
dependencies
    Nov 14 13:38:24 isptsfits21 puppet-master[58577]: Could not prepare for 
execution: Got 2 failure(s) while initializing: Cannot create
                                                      /root/.puppet/var; parent 
directory /root/.puppet does not exist; change from absent to
                                                      directory failed: Cannot 
create /root/.puppet/var; parent directory /root/.puppet does
                                                      not exist

After the last error the process dies and has to be restarted manually.

As already said, it runs as user 'puppet' which doesn't have permissions to 
fiddle around in /root and /root/.puppet doesn't exist either. $HOME of user 
'puppet' is /nonexistent.

The default configfile /usr/local/etc/puppet/puppet.conf is configured to point 
to the right directories as well (see attachment).


-- 
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.


Reply via email to