[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