app-admin/puppet-2.7.21 tries to put PID files into /var/run/puppet (Aka /run/puppet) which is mounted as tmpfs. This caused the puppet directory to be removed on reboot and thus puppet fails to start. Puppet should place it's PID files into /var/run, this can be configured in /etc/conf.d/puppet and /etc/conf.d/puppetmaster Reproducible: Always Steps to Reproduce: 1. rc-update add puppet default 2. reboot 3. /etc/init.d/puppet status Actual Results: /etc/init.d/puppet[2066]: Please make sure PUPPET_PID_DIR is defined and points to a existing directory /etc/init.d/puppet[2058]: ERROR: puppet failed to start Expected Results: Puppet should have started correctly. Currently /etc/conf.d/puppet is pulled from the tarball (conf/gentoo/conf.d/puppet) while /etc/conf.d/puppetmaster is contained in the portage tree (app-admin/puppet/files). I suggest we package /etc/conf.d/puppet the same way as /etc/conf.d/puppetmaster, and amend them both to use /run for PID files. I assume puppet-3.x is also affected however I am not running it so cannot confirm that.
Created attachment 345768 [details, diff] puppet-2.7.21.ebuild.patch
Created attachment 345770 [details] puppetmaster.confd.patch
Created attachment 345772 [details] puppet.confd.new
rundir is also defined in /etc/puppet.conf, which again is currently pulled from the tarball (conf/redhat/puppet.conf). Patches for that as well...
Created attachment 345774 [details, diff] puppet-2.7.21.ebuild.patch
Created attachment 345776 [details] puppet.conf.new
It would probably be easier to fix this using 'checkpath' in the init.d file instead of using keepdir in the ebuild, so that the /var/run/puppet directory is created at runtime instead of install.
Whichever you think is easiest. I was under the impression that subdirectories in /var/run should no longer be used however I may be mistaken about this.
we already have it set to build the directories on startup. start_pre() { checkpath --directory --owner puppet:puppet "${PUPPET_PID_DIR}" checkpath --directory --owner puppet:puppet --mode 750 ${PUPPET_LOG_DIR} } As far as sub-directories in /var/run, since it is a symlink to /run the question becomes should we allow sub-directories in /run. I say we should, so until told otherwise... I think that answers everything in this bug, I miss something?
closing after waiting for an update :|