Bug 1384181

Summary: fence_virtd stops working if libvirtd is restarted
Product: Red Hat Enterprise Linux 7 Reporter: Martin Stefany <martin>
Component: fence-virtAssignee: Ryan McCabe <rmccabe>
Status: CLOSED ERRATA QA Contact: cluster-qe <cluster-qe>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.2CC: cluster-maint, martin, mjuricek
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: fence-virt-0.3.2-13.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-04-10 09:47:01 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:
Embargoed:

Description Martin Stefany 2016-10-12 18:23:11 UTC
Description of problem:
If fence_virtd.service is used for fencing, and libvirtd.service gets restarted (due to what-ever reason), fence_virtd.service stops providing valid data.


Version-Release number of selected component (if applicable):
fence-virt-0.3.2-2.el7.x86_64
fence-virtd-0.3.2-2.el7.x86_64
fence-virtd-libvirt-0.3.2-2.el7.x86_64
fence-virtd-multicast-0.3.2-2.el7.x86_64
libvirt-1.2.17-13.el7_2.5.x86_64
libvirt-client-1.2.17-13.el7_2.5.x86_64
libvirt-daemon-1.2.17-13.el7_2.5.x86_64
libvirt-daemon-config-network-1.2.17-13.el7_2.5.x86_64
libvirt-daemon-config-nwfilter-1.2.17-13.el7_2.5.x86_64
libvirt-daemon-driver-interface-1.2.17-13.el7_2.5.x86_64
libvirt-daemon-driver-lxc-1.2.17-13.el7_2.5.x86_64
libvirt-daemon-driver-network-1.2.17-13.el7_2.5.x86_64
libvirt-daemon-driver-nodedev-1.2.17-13.el7_2.5.x86_64
libvirt-daemon-driver-nwfilter-1.2.17-13.el7_2.5.x86_64
libvirt-daemon-driver-qemu-1.2.17-13.el7_2.5.x86_64
libvirt-daemon-driver-secret-1.2.17-13.el7_2.5.x86_64
libvirt-daemon-driver-storage-1.2.17-13.el7_2.5.x86_64
libvirt-daemon-kvm-1.2.17-13.el7_2.5.x86_64
libvirt-python-1.2.17-2.el7.x86_64

How reproducible:
Always.


Steps to Reproduce:
1. Start libvirtd.service
2. Configure (e.g. http://clusterlabs.org/wiki/Guest_Fencing) and start fence_virtd.service
3. Test that `fence_xvm -o list` provides valid list of VMs
4. Restart libvirtd.service
5. Test that `fence_xvm -o list` now provides empty list

Actual results:
$ fence_xvm -o list
provides no output, thus no list of VMs


Expected results:
$ fence_xvm -o list
should provide list of VMs as before libvirtd.service restart


Additional info:
Quick workaround (and possible fix) is:
$ sudo systemctl edit fence_virtd.service
[Unit]
PartOf=libvirtd.service


Resulting in:
$ systemctl cat fence_virtd.service 
# /usr/lib/systemd/system/fence_virtd.service
[Unit]
Description=Fence-Virt system host daemon

After=basic.target
After=network.target
After=syslog.target
After=libvirt-qmf.service
After=libvirtd.service
After=corosync.service

Requires=basic.target
Requires=network.target

[Install]
WantedBy=multi-user.target

[Service]
Type=forking
Restart=on-failure
SysVStartPriority=99
Environment="FENCE_VIRTD_ARGS=-w"

# Autogenerated below here
EnvironmentFile=-/etc/sysconfig/fence_virtd
ExecStart=/usr/sbin/fence_virtd $FENCE_VIRTD_ARGS

# /etc/systemd/system/fence_virtd.service.d/override.conf
[Unit]
PartOf=libvirtd.service

And invoking fence_virtd.service restart once libvirtd.service is restarted.

Comment 2 Ryan McCabe 2017-07-24 19:36:08 UTC
This is a result of a bug in the fence-virtd plugins that has since been fixed upstream. I think the better route is to apply that patch instead of relying on systemd to automatically restart.

Comment 8 errata-xmlrpc 2018-04-10 09:47:01 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, 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-2018:0680