Bug 1822891

Summary: split daemons not restart after upgrading libvirt pkgs
Product: Red Hat Enterprise Linux 9 Reporter: yafu <yafu>
Component: libvirtAssignee: Daniel Berrangé <berrange>
libvirt sub component: General QA Contact: yafu <yafu>
Status: CLOSED ERRATA Docs Contact:
Severity: medium    
Priority: medium CC: berrange, chhu, jdenemar, jsuchane, lizhu, lmen, virt-maint, xuzhang, yalzhang
Version: unspecifiedKeywords: AutomationTriaged, Triaged
Target Milestone: rcFlags: pm-rhel: mirror+
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libvirt-7.8.0-1.el9 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-05-17 12:45:05 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version: 7.7.0
Embargoed:
Bug Depends On:    
Bug Blocks: 1897025    

Description yafu 2020-04-10 10:55:00 UTC
Description of problem:
split daemons not restart after upgrading libvirt pkgs

Version-Release number of selected component (if applicable):
libvirt-6.0.0-17.module+el8.2.0+6257+0d066c28.x86_64

How reproducible:
100%

Steps to Reproduce:
1.Disable libvirtd and enable virtqemud service:
#systemctl stop libvirtd.service
#systemctl stop libvirtd{,-ro,-admin,-tcp,-tls}.socket
#systemctl start virtqemud
#systemctl start virtproxyd

2.rpm -q libvirt
libvirt-6.0.0-15.el8.x86_64

3.# ll /run/libvirt/
total 0
...
srw-------. 1 root root   0 Apr 10 05:45 libvirt-admin-sock
srw-rw-rw-. 1 root root   0 Apr 10 05:45 libvirt-sock
srw-rw-rw-. 1 root root   0 Apr 10 05:45 libvirt-sock-ro
srw-------. 1 root root   0 Apr 10 05:45 virtqemud-admin-sock
srw-rw-rw-. 1 root root   0 Apr 10 05:45 virtqemud-sock
srw-rw-rw-. 1 root root   0 Apr 10 05:45 virtqemud-sock-ro
...

4.Check virtqemud and virtproxyd process id:
#pgrep virtqemud
97820
#pgrep virtproxyd
100628

5.Upgrade libvirt pkgs:
#yum -y upgrade libvirt*
libvirt-6.0.0-17.el8.x86_64

6.Check virtqemud and virtproxyd process id:
#pgrep virtqemud
97820
# pgrep virtproxyd
100628


Actual results:
split daemons not restart after upgrading libvirt pkgs

Expected results:
split daemons should restart after upgrading libvirt pkgs

Additional info:

Comment 1 Jaroslav Suchanek 2020-04-13 14:59:51 UTC
The upgrade path might not be yet supported for particular drivers, only when you run it through libvirtd. Daniel might (not) confirm it.

Comment 2 Daniel Berrangé 2020-04-17 13:20:15 UTC
Yeah, this looks like something we need to address - currently libvirtd is restarted by a %post script, and we'll need todo the same for other daemons.

Comment 4 John Ferlan 2021-09-09 16:07:06 UTC
Bulk update: Move RHEL-AV bugs to RHEL9. If necessary to resolve in RHEL8, then clone to the current RHEL8 release.

Comment 6 Daniel Berrangé 2021-09-13 09:50:43 UTC
This was addressed in spec file updates in the 7.7.0 release upstream.

3315bc3ba8a9022c97b866a768914fb30592496a rpm: fix typo in post transaction scriptlet name
821414f0cdec77e6d8d11a189e02197238df918d rpm: add conditionals around post scripts
50eae3f8859c746aa474401b38902fa500f23fad rpm: handle enabling/disabling modular daemons post/postun-install
a97c2b14b22f6e7ea177f43ff9e6f7a7f071a53c rpm: macroize logic for enabling/disabling daemons post/postun-install
b8ef62554449ba8f38f3b265fd4751fa8d7bfc88 rpm: restart modular daemons on upgrade
c2eafaf7a30248d5ac9bc0557e727353bf8669e1 rpm: restart virtnwfilter/virnetworkd if configs change
b5e8db8f14ddc0bae0194c21fa9f1a748fb630b7 rpm: macroize logic for restarting daemons post-transaction

This will be addressed in the 7.7.0 rebase, assuming the RPM specfile contents are synced too.

Comment 9 yafu 2021-10-27 06:28:46 UTC
Verified with 

Test steps:
1.Active all the sub-daemons:
#for i in {1..100}; do for drv in qemu interface network nodedev nwfilter secret storage; do virsh connect ${drv}:///system; done; done

2.Open another terminal and get the pid of sub-daemons:
#for drv in qemu interface network nodedev nwfilter secret storage; do pidof virt${drv}d ; done
1557
2387
2408
2340
2536
2558
2618

3.Upgrade libvirt pkgs:
# yum -y upgrade libvirt*

4.Check the pid of sub-daemons and can see all the sub-daemons are restarted after upgrade:
# for drv in qemu interface network nodedev nwfilter secret storage; do pidof virt${drv}d ; done
9050
8974
8897
9008
8932
9084
9126

Comment 10 yafu 2021-10-27 06:30:16 UTC
(In reply to yafu from comment #9)
> Verified with 
> 
> Test steps:
> 1.Active all the sub-daemons:
> #for i in {1..100}; do for drv in qemu interface network nodedev nwfilter
> secret storage; do virsh connect ${drv}:///system; done; done
> 
> 2.Open another terminal and get the pid of sub-daemons:
> #for drv in qemu interface network nodedev nwfilter secret storage; do pidof
> virt${drv}d ; done
> 1557
> 2387
> 2408
> 2340
> 2536
> 2558
> 2618
> 
> 3.Upgrade libvirt pkgs:
> # yum -y upgrade libvirt*
> 
> 4.Check the pid of sub-daemons and can see all the sub-daemons are restarted
> after upgrade:
> # for drv in qemu interface network nodedev nwfilter secret storage; do
> pidof virt${drv}d ; done
> 9050
> 8974
> 8897
> 9008
> 8932
> 9084
> 9126

Verified with libvirt-7.8.0-1.el9.x86_64.

Comment 12 errata-xmlrpc 2022-05-17 12:45:05 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (new packages: libvirt), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2022:2390