Bug 1011087 - [RHEVM] cannot upgrade RHEVM 3.2 to RHEVM 3.3 because of rhevm-tools-3.3.0-0.22.master.el6ev.noarch Requires: rhevm-notification-service = 3.2.3-0.43.el6ev
[RHEVM] cannot upgrade RHEVM 3.2 to RHEVM 3.3 because of rhevm-tools-3.3.0-0....
Status: CLOSED ERRATA
Product: Red Hat Enterprise Virtualization Manager
Classification: Red Hat
Component: ovirt-engine-setup (Show other bugs)
3.3.0
x86_64 Linux
medium Severity medium
: ---
: 3.3.0
Assigned To: Sandro Bonazzola
Jiri Belka
integration
: Triaged, ZStream
Depends On:
Blocks: 1033003 3.3snap4
  Show dependency treegraph
 
Reported: 2013-09-23 11:17 EDT by Martin Pavlik
Modified: 2015-04-06 23:10 EDT (History)
10 users (show)

See Also:
Fixed In Version: is26
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1033003 (view as bug list)
Environment:
Last Closed: 2014-01-21 11:59:05 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
oVirt gerrit 21779 None None None Never
oVirt gerrit 21831 None None None Never

  None (edit)
Description Martin Pavlik 2013-09-23 11:17:54 EDT
Description of problem:
[RHEVM] cannot upgrade RHEVM 3.2 to RHEVM 3.3 because of rhevm-tools-3.3.0-0.22.master.el6ev.noarch Requires: rhevm-notification-service = 3.2.3-0.43.el6ev

Version-Release number of selected component (if applicable):
upgrading from sf20.3 to is15

How reproducible:
100%

Steps to Reproduce:
1. have sf20.3 installed
2. add repository for sf15
3. run yum update -y

Actual results:
upgrade not performed

Expected results:
successfull upgrade

Additional info:

--> Finished Dependency Resolution
Error: Package: rhevm-3.2.3-0.43.el6ev.noarch (@rhevm32)
           Requires: rhevm-notification-service = 3.2.3-0.43.el6ev
           Removing: rhevm-notification-service-3.2.3-0.43.el6ev.noarch (@rhevm32)
               rhevm-notification-service = 3.2.3-0.43.el6ev
           Obsoleted By: rhevm-tools-3.3.0-0.22.master.el6ev.noarch (rhevm33)
               rhevm-notification-service = 3.3.0-0.22.master.el6ev
Error: Package: rhevm-3.2.3-0.43.el6ev.noarch (@rhevm32)
           Requires: rhevm-config = 3.2.3-0.43.el6ev
           Removing: rhevm-config-3.2.3-0.43.el6ev.noarch (@rhevm32)
               rhevm-config = 3.2.3-0.43.el6ev
           Obsoleted By: rhevm-tools-3.3.0-0.22.master.el6ev.noarch (rhevm33)
               rhevm-config = 3.3.0-0.22.master.el6ev
Error: Package: rhevm-3.2.3-0.43.el6ev.noarch (@rhevm32)
           Requires: rhevm-genericapi = 3.2.3-0.43.el6ev
           Removing: rhevm-genericapi-3.2.3-0.43.el6ev.noarch (@rhevm32)
               rhevm-genericapi = 3.2.3-0.43.el6ev
           Obsoleted By: rhevm-tools-3.3.0-0.22.master.el6ev.noarch (rhevm33)
               rhevm-genericapi = 3.3.0-0.22.master.el6ev
Error: Package: rhevm-tools-3.3.0-0.22.master.el6ev.noarch (rhevm33)
           Requires: rhevm = 3.3.0-0.22.master.el6ev
           Installed: rhevm-3.2.3-0.43.el6ev.noarch (@rhevm32)
               rhevm = 3.2.3-0.43.el6ev
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest



Used repo file

[root@mp-rhevm32 ~]# cat /etc/yum.repos.d/rhevm.repo 
[rhevm33]
name=RHEVM 3.3
baseurl=http://10.34.63.204/repo-tlv-builds/is15/
enabled=1
gpgcheck=0

[rhevm32]
name=RHEVM 3.2
baseurl=http://download.englab.brq.redhat.com/pub/rhel/system/builds/sf20.3/
enabled=1
gpgcheck=0
Comment 1 Alon Bar-Lev 2013-09-23 11:24:31 EDT
The actual problem is not the upgrade, but executing "yum update".

The sequence of:

# yum update rhevm-setup
# engine-setup

Will upgrade system correctly.

But we do not want to block plain "yum update".
Comment 2 Sandro Bonazzola 2013-09-24 04:42:20 EDT
Upstream (working):
Obsoletes:	%{name}-config < 3.3.0
Obsoletes:	%{name}-genericapi < 3.3.0
Obsoletes:	%{name}-notification-service < 3.3.0
Obsoletes:	%{name}-tools-common < 3.3.0
Provides:	%{name}-config = %{version}-%{release}
Provides:	%{name}-genericapi = %{version}-%{release}
Provides:	%{name}-notification-service = %{version}-%{release}
Provides:	%{name}-tools-common = %{version}-%{release}

Downstream:
Obsoletes: %{name}-genericapi
Obsoletes: %{name}-notification-service
Obsoletes: %{name}-tools-common
Obsoletes: %{name}-config

For some reason http://gerrit.ovirt.org/#/c/16753/2 is not in downstream package.
Alon do you know why it has not been included?
Comment 3 Alon Bar-Lev 2013-09-24 05:53:25 EDT
(In reply to Sandro Bonazzola from comment #2)
> Upstream (working):
> Obsoletes:	%{name}-config < 3.3.0
> Obsoletes:	%{name}-genericapi < 3.3.0
> Obsoletes:	%{name}-notification-service < 3.3.0
> Obsoletes:	%{name}-tools-common < 3.3.0
> Provides:	%{name}-config = %{version}-%{release}
> Provides:	%{name}-genericapi = %{version}-%{release}
> Provides:	%{name}-notification-service = %{version}-%{release}
> Provides:	%{name}-tools-common = %{version}-%{release}
> 
> Downstream:
> Obsoletes: %{name}-genericapi
> Obsoletes: %{name}-notification-service
> Obsoletes: %{name}-tools-common
> Obsoletes: %{name}-config
> 
> For some reason http://gerrit.ovirt.org/#/c/16753/2 is not in downstream
> package.
> Alon do you know why it has not been included?

I do not follow... where do you look when you refer to downstream?

What is missing from[1]?

[1] http://git.engineering.redhat.com/?p=users/mgoldboi/ovirt-engine-3.3;a=blob;f=ovirt-engine.spec.in;h=26f6ec1bba5ca7f8037d168679a492f5fdda4797;hb=build#l401
Comment 4 Sandro Bonazzola 2013-09-24 06:33:04 EDT
Oh, sorry, I was looking at master, not at build branch.
Comment 5 Sandro Bonazzola 2013-09-24 10:43:16 EDT
Reducing the severity to medium: 

(In reply to Alon Bar-Lev from comment #1)

> The sequence of:
> 
> # yum update rhevm-setup
> # engine-setup
> 
> Will upgrade system correctly.
Comment 6 Sandro Bonazzola 2013-09-26 08:06:03 EDT
looking at: /etc/yum/pluginconf.d/versionlock.conf

 [main]
 enabled = 1
 locklist = /etc/yum/pluginconf.d/versionlock.list
 #  Uncomment this to lock out "upgrade via. obsoletes" etc. (slower)
 # follow_obsoletes = 1

Proposed solution:
add a note in the upgrade guide to uncomment "follow_obsoletes = 1" in /etc/yum/pluginconf.d/versionlock.conf

May this be acceptable?
Comment 7 Sandro Bonazzola 2013-09-26 08:16:15 EDT
We can also enable it through rhevm-setup in next 3.2.z release.
Comment 8 Alon Bar-Lev 2013-09-26 09:07:23 EDT
(In reply to Sandro Bonazzola from comment #7)
> We can also enable it through rhevm-setup in next 3.2.z release.

I would like to avoid as much as possible modifying configuration of yum... adding the versionlock is one thing, adding/removing lines from the versionlock.list is minor, but modifying configuration can effect other packages.
Comment 9 Sandro Bonazzola 2013-09-26 09:42:53 EDT
Without changing that configuration file it seems impossible to resolve the dependency tree.

versionlock.list contains:

 rhevm-webadmin-portal-3.2.3-0.43.el6ev.noarch
 rhevm-notification-service-3.2.3-0.43.el6ev.noarch
 rhevm-backend-3.2.3-0.43.el6ev.noarch
 rhevm-restapi-3.2.3-0.43.el6ev.noarch
 rhevm-userportal-3.2.3-0.43.el6ev.noarch
 rhevm-genericapi-3.2.3-0.43.el6ev.noarch
 rhevm-tools-common-3.2.3-0.43.el6ev.noarch
 rhevm-config-3.2.3-0.43.el6ev.noarch
 rhevm-3.2.3-0.43.el6ev.noarch
 rhevm-dbscripts-3.2.3-0.43.el6ev.noarch

rhevm-tools obsoletes:
 Obsoletes:	%{name}-config < 3.3.0
 Obsoletes:	%{name}-genericapi < 3.3.0
 Obsoletes:	%{name}-notification-service < 3.3.0
 Obsoletes:	%{name}-tools-common < 3.3.0


 rhevm-tools is not in versionlock.list and provides an update for packages which are locked.
 rhevm-tools requires the same version of rhevm, which is locked.
 rhevm-tools is pulled in as update because it's not locked but fails requiring rhevm.

I've first tried with the following solution:
 - In rhevm package, removed dep on rhevm-tools and added:
   %{name}-config = 3.3.0
   %{name}-genericapi = 3.3.0
   %{name}-notification-service = 3.3.0
   %{name}-tools-common = 3.3.0
 - in rhevm-tools removed the dependency on rhevm

However, yum update shows:

--> Running transaction check
---> Package rhevm-config.noarch 0:3.2.3-0.43.el6ev will be obsoleted
--> Processing Dependency: rhevm-config = 3.2.3-0.43.el6ev for package: rhevm-3.2.3-0.43.el6ev.noarch
---> Package rhevm-genericapi.noarch 0:3.2.3-0.43.el6ev will be obsoleted
--> Processing Dependency: rhevm-genericapi = 3.2.3-0.43.el6ev for package: rhevm-3.2.3-0.43.el6ev.noarch
---> Package rhevm-notification-service.noarch 0:3.2.3-0.43.el6ev will be obsoleted
--> Processing Dependency: rhevm-notification-service = 3.2.3-0.43.el6ev for package: rhevm-3.2.3-0.43.el6ev.noarch
---> Package rhevm-tools.noarch 0:3.3.0-0.0.50.master.master.el6ev will be obsoleting
---> Package rhevm-tools-common.noarch 0:3.2.3-0.43.el6ev will be obsoleted
--> Finished Dependency Resolution
Error: Package: rhevm-3.2.3-0.43.el6ev.noarch (@qa-latest-sf)
           Requires: rhevm-genericapi = 3.2.3-0.43.el6ev
           Removing: rhevm-genericapi-3.2.3-0.43.el6ev.noarch (@qa-latest-sf)
               rhevm-genericapi = 3.2.3-0.43.el6ev
           Obsoleted By: rhevm-tools-3.3.0-0.0.50.master.master.el6ev.noarch (local)
               rhevm-genericapi = 3.3.0-0.0.50.master.master.el6ev
Error: Package: rhevm-3.2.3-0.43.el6ev.noarch (@qa-latest-sf)
           Requires: rhevm-notification-service = 3.2.3-0.43.el6ev
           Removing: rhevm-notification-service-3.2.3-0.43.el6ev.noarch (@qa-latest-sf)
               rhevm-notification-service = 3.2.3-0.43.el6ev
           Obsoleted By: rhevm-tools-3.3.0-0.0.50.master.master.el6ev.noarch (local)
               rhevm-notification-service = 3.3.0-0.0.50.master.master.el6ev
Error: Package: rhevm-3.2.3-0.43.el6ev.noarch (@qa-latest-sf)
           Requires: rhevm-config = 3.2.3-0.43.el6ev
           Removing: rhevm-config-3.2.3-0.43.el6ev.noarch (@qa-latest-sf)
               rhevm-config = 3.2.3-0.43.el6ev
           Obsoleted By: rhevm-tools-3.3.0-0.0.50.master.master.el6ev.noarch (local)
               rhevm-config = 3.3.0-0.0.50.master.master.el6ev

I don't understand why only rhevm-config, rhevm-notification-service and rhevm-genericapi are affected and not also rhevm-tools-common.noarch.
It seems like a yum bug, working correctly only on one of the Provides packages.

Upstream is not affected by this because the package renaming has been done in 3.2.z so installing latest 3.2.2 and upgrading to 3.3.0 doesn't show this kind of errors.
Comment 10 Alon Bar-Lev 2013-09-27 03:37:22 EDT
Can we release a downstream 3.2.z and put something in versionlock to solve this?
Comment 11 Sandro Bonazzola 2013-09-27 04:31:49 EDT
Well, it seems that adding rhevm-tools-3.2.3-0.43.el6ev.noarch to /etc/yum/pluginconf.d/versionlock.list solve the dependency solving issue.

Need to check if upgrade still works with that workaround.
Comment 12 Sandro Bonazzola 2013-10-02 10:40:12 EDT
(In reply to Sandro Bonazzola from comment #11)
> Well, it seems that adding rhevm-tools-3.2.3-0.43.el6ev.noarch to
> /etc/yum/pluginconf.d/versionlock.list solve the dependency solving issue.
> 
> Need to check if upgrade still works with that workaround.

It seems that also rhevm-setup works fine with that workaround.
Comment 13 Sandro Bonazzola 2013-11-21 03:56:22 EST
Marking this as test only, need to be tested after we change 3.2.z for including tools in versionlock.list.
Comment 15 Sandro Bonazzola 2013-11-22 06:53:39 EST
It seems that dependencies have been changed between 3.2.3 and 3.2.4.
Now, after having fixed the rhevm-tools dependency I've the following error:

Error: Package: redhat-support-plugin-rhev-3.3.0-11.el6ev.noarch (qa-latest)
           Requires: rhevm >= 3.3.0
           Installed: rhevm-3.2.4-0.44.el6ev.noarch (@qa-latestsf)
               rhevm = 3.2.4-0.44.el6ev
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

# rpm -qv redhat-support-plugin-rhev rhevm
redhat-support-plugin-rhev-3.2.1-2.el6ev.noarch
rhevm-3.2.4-0.44.el6ev.noarch

I'll try to fix also this dependency resolution using the locklist.
However, redhat-support-plugin-rhev doesn't follow other packages naming convention (doesn't contain rhevm) so the change is a bit bigger.

This will also require a fix in 3.3.0 setup (downstream only I think) so I've to move this back to assigned.
Comment 16 Sandro Bonazzola 2013-11-22 06:55:20 EST
Removing TestOnly. Martin, can you confirm that if you repeat it with 3.2.4 you have the same dependency issue on redhat-support-plugin-rhev?
Comment 17 Sandro Bonazzola 2013-11-22 08:40:31 EST
patch pushed downstream only patch Change-Id: Id9f2d43f6cc83de885c9bff9b12a606d57b10069
Comment 18 Alon Bar-Lev 2013-11-22 10:15:59 EST
support plugin should not depend on explicit engine version it should work with both 3.2 and 3.3 as we discussed in the past. adding more components to use the versionlock abnormality is something that we should avoid almost at any cost.
Comment 22 Jiri Belka 2013-12-10 08:51:09 EST
ok, rhevm-3.2.4-0.44.el6ev -> rhevm-3.3.0-0.38.rc.el6ev (yum update rhevm-setup ; engine-setup ; yum update)
Comment 23 errata-xmlrpc 2014-01-21 11:59:05 EST
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.

http://rhn.redhat.com/errata/RHEA-2014-0081.html

Note You need to log in before you can comment on or make changes to this bug.