[libvirt PATCH 5/8] rpm: Remove custom libvirtd restart logic

Daniel P. Berrangé berrange at redhat.com
Fri Jul 14 16:17:48 UTC 2023


On Fri, Jul 14, 2023 at 08:44:04AM -0700, Andrea Bolognani wrote:
> On Fri, Jul 14, 2023 at 04:25:48PM +0100, Daniel P. Berrangé wrote:
> > On Fri, Jul 14, 2023 at 08:13:11AM -0700, Andrea Bolognani wrote:
> > > RHEL 8 got libvirt 6.0.0, which comes with socket activation support,
> > > back in 2020 with RHEL 8.3. Based on our support policy we only
> > > consider the latest point release a valid target anyway, but in this
> > > case we should absolutely be in the clear.
> >
> > I'm still not convinced that makes this obsolete though.
> >
> > We introduced it but that's not ensuring every deployment is actually
> > using it. We spent some time explaining to people how to stick with
> > non-activation scenarios if they weren't ready to change things like
> > ansible admin scripts from earlier RHEL-8.x
> >
> > Of course with any distro version at all, people could have turned
> > off activation, but with RHEL-9 I'd be more comfortable saying it
> > is unlikely because activation was the default from day 1, unlike
> > 8.
> 
> Just to make sure we're on the same page. The code I'm deleting looks
> like this:
> 
>   # See if user has previously modified their install to
>   # tell libvirtd to use --listen
>   grep -E '^LIBVIRTD_ARGS=.*--listen' /etc/sysconfig/libvirtd 1>/dev/null 2>&1
>   if test $? = 0
>   then
>       # Then lets keep honouring --listen and *not* use
>       # systemd socket activation, because switching things
>       # might confuse mgmt tool like puppet/ansible that
>       # expect the old style libvirtd
>       /bin/systemctl mask \
>               libvirtd.socket \
>               libvirtd-ro.socket \
>               libvirtd-admin.socket \
>               libvirtd-tls.socket \
>               libvirtd-tcp.socket >/dev/null 2>&1 || :
>       /bin/systemctl try-restart libvirtd.service >/dev/null 2>&1 || :
>   else
>       # Old libvirtd owns the sockets and will delete them on
>       # shutdown. Can't use a try-restart as libvirtd will simply
>       # own the sockets again when it comes back up. Thus we must
>       # do this particular ordering, so that we get libvirtd
>       # running with socket activation in use
>       /bin/systemctl stop libvirtd.service >/dev/null 2>&1 || :
>       /bin/systemctl try-restart \
>               libvirtd.socket \
>               libvirtd-ro.socket \
>               libvirtd-admin.socket >/dev/null 2>&1 || :
>       /bin/systemctl start libvirtd.service >/dev/null 2>&1 || :
>   fi
> 
> The 'else' branch deals with switching libvirtd < 5.6.0 to use proper
> socket activation. All of our targets come with much newer versions
> of libvirt at this point, so either they already had socket
> activation enabled out of the box or they must have been switched
> over by now. Which makes at least this branch obsolete, agreed?
> 
> The 'if' branch deals with the scenario in which --listen has been
> configured, which is a non-default configuration that we don't want
> to mess with. Fair enough. But, for that configuration to work at
> all, the various sockets must have already been masked, either by
> some deploy-time automation or by this scriptlet running at some
> point between when libvirt < 5.6.0 was installed and now. And since
> we're not touching socket during upgrades from the regular
> %libvirt_daemon_perform_restart macro anyway, we can't really mess
> this stuff up.

Ok, so its only a problem if they are still running < 5.6.0 when
they upgrade, which is probably an unreasonably upgrade gap to be
credibly concerned about.

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|


More information about the libvir-list mailing list