Bug 855887

Summary: vdsm: reinstall of host when vdsm repo was updated from 4.9-113.3 to vdsm-4.9.6-32.0 fails on Transaction Check Error
Product: Red Hat Enterprise Linux 6 Reporter: Dafna Ron <dron>
Component: vdsmAssignee: Alon Bar-Lev <alonbl>
Status: CLOSED ERRATA QA Contact: Dafna Ron <dron>
Severity: high Docs Contact:
Priority: high    
Version: 6.3CC: abaron, bazulay, dkenigsb, iheim, ilvovsky, lpeer, ykaul, zdover
Target Milestone: rcKeywords: ZStream
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard: infra
Fixed In Version: vdsm-4.9.6-35.0 Doc Type: Bug Fix
Doc Text:
Upgrading the host from vdsm 4.9.113.3 to 4.9.6-32 by reinstalling the host caused installation to fail with a Transaction Check Error. This is because bootstrap ran on "update vdsm" instead of "update vdsm-*". This caused conflicts on vdsm-cli. The bootstrap-related issue has been fixed in vdsm, and "yum update 'vdsm*' now correctly updates vdsm on the host.
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-12-04 19:11:14 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:
Attachments:
Description Flags
log none

Description Dafna Ron 2012-09-10 14:20:21 UTC
Created attachment 611437 [details]
log

Description of problem:

I tried to upgrade my host from vdsm 4.9-113.3 to 4.9.6-32 by reinstalling the host and installation failed with Transaction Check Error. 

bootsrap is running on update vdsm instead of update vdsm-* which causes conflicts on vdsm-cli. 

Version-Release number of selected component (if applicable):

si17

How reproducible:

100%

Steps to Reproduce:
1. create a 3.0 cluster -> host should have vdsm-4.9-113.3 + vdsm-client
2. add repo's for vdsm-4.9.6-32 
3. put host in maintenance are reinstall the host
  
Actual results:

we fail on reinstall with conflict on vdsm-client

Expected results:

we should not fail 

Additional info: install log 


Transaction Check Error:
  file /usr/share/vdsm/dumpStorageTable.py from install of vdsm-4.9.6-32.0.el6_3.x86_64 conflicts with file from package vdsm-cli-4.9-113.3.el6_3.x86_64
  file /usr/share/vdsm/dumpStorageTable.pyc from install of vdsm-4.9.6-32.0.el6_3.x86_64 conflicts with file from package vdsm-cli-4.9-113.3.el6_3.x86_64
  file /usr/share/vdsm/dumpStorageTable.pyo from install of vdsm-4.9.6-32.0.el6_3.x86_64 conflicts with file from package vdsm-cli-4.9-113.3.el6_3.x86_64

after I ran yum update vdsm-* I was able to reinstall the host

Comment 1 Alon Bar-Lev 2012-09-10 17:25:11 UTC
This is expected.

libvirt-1.10.1 is a new dependency of vdsm but missing from fedora repository.

What exactly should I do with this one?

We should have asked fedora to add the new libvirt before merging whatever depend on the new version.

Comment 2 Itamar Heim 2012-09-10 17:26:58 UTC
but this is about rhel 6?
Dafna - does you host have libvirt-1.10.1 in one of its repo's?

Comment 3 Alon Bar-Lev 2012-09-10 17:35:15 UTC
This exact issue happened to be at fedora because of the libvirt dependency.

Sorry for the confusion, vdsm downstream does not required newer libvirt.

I will be happy to reproduce.

Comment 4 Dafna Ron 2012-09-10 17:39:12 UTC
no. I'm working with rhel6

but here are my rpm's just in case you need them

[root@localhost ~]# rpm -qa |grep libvirt
libvirt-python-0.9.10-21.el6_3.4.x86_64
libvirt-0.9.10-21.el6_3.4.x86_64
libvirt-client-0.9.10-21.el6_3.4.x86_64
[root@localhost ~]# rpm -qa |grep vdsm
vdsm-hook-vhostmd-4.9-113.3.el6_3.x86_64
vdsm-reg-4.9-113.3.el6_3.x86_64
vdsm-4.9-113.3.el6_3.x86_64
vdsm-cli-4.9-113.3.el6_3.x86_64

Comment 5 Alon Bar-Lev 2012-09-10 17:49:05 UTC
Root cause:

commit 655fc540c60d1dd9939f274f3bb20db137cba3e0
Author: Federico Simoncelli <fsimonce>
Date:   Tue Feb 14 11:20:51 2012 +0000

    Move dumpStorageTable from vdsm_cli to vdsm
    
    The dumpStorageTable.py script is used by the sos plugin shipped with
    vdsm.
    
    Change-Id: Ic9dfdc283fc13af7841ee31566b1453aa9c2efd2
    Reviewed-on: http://gerrit.ovirt.org/1889
    Reviewed-by: Dan Kenigsberg <danken>
    Tested-by: Dan Kenigsberg <danken>

Comment 6 Alon Bar-Lev 2012-09-12 18:20:17 UTC
This is actually opposite report of bug#633820 for downstream.

commit fba117fbafc3b52ee7f5a350007a48188d669285
Author: Dan Kenigsberg <danken>
Date:   Wed Sep 22 00:57:59 2010 +0200

    BZ#633820 - no need to remove vdsm from RHEL-6
    
    (at least until we have a vdsm24 package...)

Comment 7 Alon Bar-Lev 2012-09-19 01:54:28 UTC
commit 0ee3c7d81ba06171aa42c3c5257c73cfdcb3ee08
Author: Alon Bar-Lev <alonbl>
Date:   Tue Sep 18 22:46:17 2012 +0300

    bootstrap: use yum API
    
    PREVIOUS IMPLEMENTATION
    
    Use of yum command-line to automate package installation.
    
    Install package almost one by once, so valid status can be reported to
    master.
    
    PROBLEMS IN PREVIOUS IMPLEMENTATION
    
     - As each package was installed separately, conflicts could not be
       resolved.
    
     - Dependency list should have been maintained, to match dependencies'
       changes over time.
    
     - Alternate packages, or any alternate dependency trees should have
       been maintained separately.
    
     - Each execution of yum recalculate the cache, mirrors and
       dependencies, this took time.
    
     - If another instance is running, yum waits for ever.
    
    NEW IMPLEMENTATION
    
    Use the yum python API, use single transaction, only top-level
    components, proper logging.
    
    This implementation resolves all the issue of previous implementation.
    
    Also removing the architecture specific package naming.
    
    PROBLEMS IN NEW IMPLEMENTATION
    
    As it turns out, the yum API is not exactly pure API, it needs a lot
    more work especially at log interface, as its lazy use of logs and
    direct print of messages to stdout/stderr is not something that is
    expected from an API.
    
    The new implementation applies workarounds to these issues, for now we
    are good.
    
    CLEANUP
    
    As the vdsm-bootstrap package is to be installed on older engines,
    legacy code could not have been removed. The usage of yum from
    deployUtils, and the installation functions from the vds_bootstrap.py
    could have been removed, ~340 lines of code.
    
    Change-Id: I65796801bc2db7c5abf71c1e9e4ad8ca308138b9
    Signed-off-by: Alon Bar-Lev <alonbl>

http://gerrit.ovirt.org/#/c/8039/

Comment 11 Alon Bar-Lev 2012-10-04 11:16:27 UTC
Proper (future) fix is tracked at bug#861575.

Comment 13 Dafna Ron 2012-10-25 12:52:57 UTC
I'm getting the same conflict on yum update vdsm 
we cannot update vdsm without removing vdsm-cli first. 

tested with vdsm-4.9-113.4.el6_3.x86_64 ->> vdsm-4.9.6-39.0.el6_3.x86_64

Dependencies Resolved

================================================================================================================================================================================
 Package                                          Arch                               Version                                        Repository                             Size
================================================================================================================================================================================
Updating:
 vdsm                                             x86_64                             4.9.6-39.0.el6_3                               qa-latest                             675 k
Installing for dependencies:
 libvirt-lock-sanlock                             x86_64                             0.9.10-21.el6_3.5                              qa-latest                             125 k
 vdsm-python                                      x86_64                             4.9.6-39.0.el6_3                               qa-latest                              84 k

Transaction Summary
================================================================================================================================================================================
Install       2 Package(s)
Upgrade       1 Package(s)

Total download size: 884 k
Is this ok [y/N]: y
Downloading Packages:
(1/3): libvirt-lock-sanlock-0.9.10-21.el6_3.5.x86_64.rpm                                                                                                 | 125 kB     00:00     
(2/3): vdsm-4.9.6-39.0.el6_3.x86_64.rpm                                                                                                                  | 675 kB     00:00     
(3/3): vdsm-python-4.9.6-39.0.el6_3.x86_64.rpm                                                                                                           |  84 kB     00:00     
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                            25 MB/s | 884 kB     00:00     
Running rpm_check_debug
Running Transaction Test


Transaction Check Error:
  file /usr/share/vdsm/dumpStorageTable.py from install of vdsm-4.9.6-39.0.el6_3.x86_64 conflicts with file from package vdsm-cli-4.9-113.4.el6_3.x86_64
  file /usr/share/vdsm/dumpStorageTable.pyc from install of vdsm-4.9.6-39.0.el6_3.x86_64 conflicts with file from package vdsm-cli-4.9-113.4.el6_3.x86_64
  file /usr/share/vdsm/dumpStorageTable.pyo from install of vdsm-4.9.6-39.0.el6_3.x86_64 conflicts with file from package vdsm-cli-4.9-113.4.el6_3.x86_64

Comment 14 Alon Bar-Lev 2012-10-25 12:55:05 UTC
Full log please.

Comment 15 Alon Bar-Lev 2012-10-25 12:56:09 UTC
BTW: Did you update the vdsm-bootstrap at the engine side? This is what actually runs.

Comment 16 Alon Bar-Lev 2012-10-25 13:00:26 UTC
comment#13 is per MANUAL yum invocation.

To upgrade vdsm packages properly use:

# yum update 'vdsm*'

Comment 17 Alon Bar-Lev 2012-10-25 13:12:28 UTC
Dafna,

Bootstrap issue was resolved, please verify that one, and close this bug.

Manual yum execution is a totally different discussion.

Please close this one and open a new one for this discussion.

Using yum update manually should assume the user knows what he is doing, or at least read the output and proceed accordingly.

There is no bug in manual yum execution in my opinion, but should be discussed outside of the bootstrap scope.

Thanks,
Alon

Comment 18 Dafna Ron 2012-10-25 14:21:11 UTC
as you wish. 
verified on si22.1
new bug opened as regression for yum update vdsm

Comment 20 errata-xmlrpc 2012-12-04 19:11:14 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.

http://rhn.redhat.com/errata/RHSA-2012-1508.html