Bug 1456235

Summary: conflict libvirt3.2 with vdsm v4.19.16 and below
Product: Red Hat Enterprise Linux 7 Reporter: Yaniv Bronhaim <ybronhei>
Component: libvirtAssignee: Jiri Denemark <jdenemar>
Status: CLOSED NOTABUG QA Contact: jiyan <jiyan>
Severity: high Docs Contact:
Priority: unspecified    
Version: 7.4CC: areis, berrange, danken, dyuan, jdenemar, jen, jiyan, michal.skrivanek, ovasik, pzhang, rbalakri, xuzhang, zpeng
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-06-20 07:58:09 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:
Bug Depends On:    
Bug Blocks: 1444426, 1458856    

Description Yaniv Bronhaim 2017-05-28 08:00:37 UTC
Description of problem:
in libvirt 3.2 /etc/sasl2/libvirt.conf is changed by default, therefore it requires vdsm changes which available only in vdsm v4.19.17. if libvirt 3.2 won't conflict with vdsm, updating libvirt to 3.2 when vdsm v4.19.16 or below is installed will break vdsm run.

Version-Release number of selected component (if applicable):
libvirt.x86_64 0:3.2.0-5.el7.centos

How reproducible:
100%

Steps to Reproduce:
1. upgrade libvirt
2.
3.

Actual results:


Expected results:
update will fail if vdsm is below 4.19.17

Additional info:

Comment 2 Daniel Berrangé 2017-05-30 09:15:25 UTC
If the VDSM fix is already available, then I don't see a compelling reason todo  this in libvirt - updating RPMs will already pull in the newer VDSM & cherry-picking RPM updates from 7.3 -> 7.4 is not a supported scenario. If users do that they'll quickly see the problem & be able to rectify it by fully updating.

Comment 3 Dan Kenigsberg 2017-05-30 09:35:01 UTC
The Vdsm fix is to be available only in RHV-4.1.z. We cannot release it to 4.0.z as that channel no longer exist, nor to 3.6.z which has seen its final release.

If someone upgrades libvirt and not vdsm (which is highly possible, as they are shipped in separate channels) while VMs are running, Vdsm would fail to restart, and his VMs would get stuck on that host, with no control path.

RHV has plenty of customers which might swam our support apparatus with annoying cases. Handling each case is easy, but the cost to Red Hat and its customers would be much higher than a one-liner addition to the downstream libvirt.spec.

I know that rebasing libvirt to 3.2 in the midlife of rhel7 has plenty of advantages to libvirt and RHV. But it has a few costs - and adding

  Conflicts: vdsm <= 4.19.16

is not the greatest of those.

Comment 4 Daniel Berrangé 2017-05-30 09:43:39 UTC
(In reply to Dan Kenigsberg from comment #3)
> The Vdsm fix is to be available only in RHV-4.1.z. We cannot release it to
> 4.0.z as that channel no longer exist, nor to 3.6.z which has seen its final
> release.

This seems rather surprising/broken to me. If we are genuinely still supporting these VDSM versions, there *must* be a way for us to issue updates, otherwise we'd be unable to push out critical security patches which I can't believe.

> If someone upgrades libvirt and not vdsm (which is highly possible, as they
> are shipped in separate channels) while VMs are running, Vdsm would fail to
> restart, and his VMs would get stuck on that host, with no control path.
> 
> RHV has plenty of customers which might swam our support apparatus with
> annoying cases. Handling each case is easy, but the cost to Red Hat and its
> customers would be much higher than a one-liner addition to the downstream
> libvirt.spec.

The problem with adding such conflicts is that it leads to pretty unpleasant user experience when they try to upgrade. If the conflict triggers, because new VDSM is not available, then yum will obviously be unable to install libvirt from 7.4.  It will thus have to hold back the libvirt from 7.3, this in turn will cause a ripple effect preventing upgrade of many other RPMs. The end result is that yum either holds back loads of packages, or worse gives up throwing out largely unintelligible error messages about resolvable dependencies.

Comment 5 Jiri Denemark 2017-05-30 10:56:29 UTC
This request looks related to bug 1445531. Both are really caused by the use of layered product above RHEL. Since they have different schedules, RHEL updates may become available before a new release of the layered product (which was actually tested to work with the new RHEL) is released. And the goal is to prevent updating RHEL without also updating the layered product.

We should solve this fundamental issue in a different way than adding more and more conflicts into libvirt. IMHO either we need to issue a fix (z-stream) for the existing release of the layered product before new RHEL is shipped or we should somehow disable updating RHEL (not just libvirt) until a new layered product is available.

I'm not completely against the conflicts for 7.4 as we don't have a lot of time to deal with this, but I'd really like to see a better solution for the future.

Comment 6 Dan Kenigsberg 2017-05-31 22:24:33 UTC
(In reply to Daniel Berrange from comment #4)
> The problem with adding such conflicts is that it leads to pretty unpleasant
> user experience when they try to upgrade. If the conflict triggers, because
> new VDSM is not available, then yum will obviously be unable to install
> libvirt from 7.4.  It will thus have to hold back the libvirt from 7.3, this
> in turn will cause a ripple effect preventing upgrade of many other RPMs.
> The end result is that yum either holds back loads of packages, or worse
> gives up throwing out largely unintelligible error messages about resolvable
> dependencies.

It's worse, but in the perspective of RHV users, being unable to upgrade libvirt and its dependencies until a fresh vdsm is available on a host is still much better than loosing the hypervisor and its currently-running VMs until that vdsm is available.

Comment 7 Daniel Berrangé 2017-06-01 08:15:22 UTC
Both scenarios provide an awful experience for users - just awful in different ways. To get a good experience for users we should issue an update for effect VDSM versions that we expect to continue supporting on 7.4, so users don't hit the problem in the first place.

Comment 10 Michal Skrivanek 2017-06-15 11:49:02 UTC
(In reply to Dan Kenigsberg from comment #3)
> The Vdsm fix is to be available only in RHV-4.1.z. We cannot release it to
> 4.0.z as that channel no longer exist, nor to 3.6.z which has seen its final
> release.

it is the same -4- channel, so once 4.1.z/async goes live it's automatically available to all 4.0 installations

Comment 11 Jiri Denemark 2017-06-16 08:54:59 UTC
In other words the Conflicts hack is no longer required, is it?