[Pkg-puppet-devel] Bug#859454: Bug#859454: Bug#859454: puppet: package upgrade fails due to preinst not stopping puppet daemon

Apollon Oikonomopoulos apoikos at debian.org
Fri Apr 28 14:25:49 UTC 2017


Control: tags -1 - moreinfo

Hi again,

On 23:28 Wed 26 Apr     , Apollon Oikonomopoulos wrote:
> Control: tags -1 moreinfo
> 
> Hi Dan,
> 
> On 12:11 Mon 03 Apr     , Dan Urist wrote:
> > Package: puppet
> > Version: 4.8.2-3~bpo8+1
> > Severity: important
> > 
> > It appears that there is no check for a running puppet daemon in the 
> > preinst phase of the package installation. The preinst phase should 
> > check whether the puppet daemon is running and stop it, but apparently 
> > it doesn't do that, so the upgrade fails at the end when it attempts 
> > to start the puppet daemon since the old daemon is still running. If I 
> > manually stop the daemon before upgrade, the upgrade proceeds without 
> > error, and the puppet agent is started at the end of the process.
> 
> I have an idea about what might be wrong, but just to make sure, which 
> version are you upgrading from?  I guess you're upgrading from Jessie's 
> 3.7.2, correct?

Indeed, I was able to reproduce this using sysvinit in a Jessie chroot.  
The problem is due to the fact that during the upgrade path, Puppet 4's 
puppet-common is unpacked before puppet 3.7's prerm is run: as the new 
puppet-common package does not ship /usr/bin/puppet, when puppet 3.7.2's 
prerm is called, the `test -x $DAEMON' test in /etc/init.d/puppet fails 
and stopping the service is silently skipped.

The solution here is to use the new puppet-common's preinst to stop the 
puppet service during upgrades from versions of puppet-common that 
shipped /usr/bin/puppet.

Apollon



More information about the Pkg-puppet-devel mailing list