Bug 1620062

Summary: Red Hat OpenStack update to rhel 7.6 python2-futures conflicts with OSP 13 python2-futures
Product: Red Hat Enterprise Linux 7 Reporter: Carlos Camacho <ccamacho>
Component: python-futuresAssignee: Charalampos Stratakis <cstratak>
Status: CLOSED ERRATA QA Contact: Jan Kepler <jkejda>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 7.6CC: amoralej, bperkins, ccamacho, cstratak, jkejda, jpichon, jschluet, ovasik, tvignaud
Target Milestone: rcKeywords: OtherQA, Regression
Target Release: ---   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: python-futures-3.1.1-5.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-10-30 10:44: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:

Description Carlos Camacho 2018-08-22 11:09:47 UTC
Description of problem:

Upgrading a OSP13 Undercloud to OSP14

How reproducible 100%:


Steps to Reproduce:
Check the subscription manager status
=====================================

    sudo subscription-manager register --username <RHN_USERNAME> --password <RHN_PASSWORD>
    sudo subscription-manager list --available

    #---------------------------------------------------
    #...
    #Subscription Name:   Red Hat Enterprise Linux Developer Suite
    #Pool ID:             1234567890
    #...
    #---------------------------------------------------
    sudo subscription-manager attach --pool 1234567890




Undercloud upgrade procedure:
=============================
Backup current repos
--------------------
    
    # Just in case
    mkdir -p /home/stack/REPOBACKUP
    sudo mv /etc/yum.repos.d/delorean* /home/stack/REPOBACKUP
    sudo rm /etc/yum.repos.d/delorean*

Enable repos 
------------

    # Run a minor upgrade in the Undercloud to install ansible-pacemaker
    openstack undercloud upgrade

    sudo yum localinstall -y http://download.lab.bos.redhat.com/rcm-guest/puddles/OpenStack/rhos-release/rhos-release-latest.noarch.rpm
    # disable OSP repos and enable OSP14 repos
    sudo rhos-release -x        # to remove RHOS repos
    sudo rhos-release -P 14     # to install RHOS-14 repos
    
    # We need to be sure we are using the last repos
    sudo yum clean all
    sudo rm -rf /var/cache/yum

Undercloud Upgrade
------------------

    # Be sure you source stackrc for running the validations
    source stackrc
    sudo yum -y update python-tripleoclient
    sudo yum -y update openstack-tripleo-common-containers

    openstack overcloud container image prepare \
    --namespace rhos-qe-mirror-tlv.usersys.redhat.com:5000/rhosp14 \
    --tag-from-label {version}-{release} \
    -e /usr/share/openstack-tripleo-heat-templates/environments/docker.yaml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/undercloud.yaml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/services/ironic.yaml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/services/ironic-inspector.yaml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/services/mistral.yaml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/services/zaqar.yaml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/services/tripleo-ui.yaml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/services/tempest.yaml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/services/undercloud-haproxy.yaml \
    -e /usr/share/openstack-tripleo-heat-templates/environments/services/undercloud-keepalived.yaml \
    --roles-file=/usr/share/openstack-tripleo-heat-templates/roles_data_undercloud.yaml \
    --output-env-file /home/stack/undercloud-containers.yaml
    
    
    #Add to [DEFAULT] section in undercloud.conf:
    echo "container_images_file = /home/stack/undercloud-containers.yaml" >> undercloud.conf

    #Upgrade the Undercloud to be containerized.
    openstack undercloud upgrade -y --use-heat 2>&1

Actual results:
  Upgrade fails due to:

file /usr/lib/python2.7/site-packages/futures-3.1.1-py2.7.egg-info from install of python2-futures-3.1.1-4.el7.noarch conflicts with file from package python2-futures-3.1.1-2.1.el7ost.noar│··················································
ch  



Expected results:
  Upgrade complete

Comment 2 Charalampos Stratakis 2018-08-22 11:24:50 UTC
There is a conflict here as openstack ships also the python-futures package which was recently added to RHEL7.

Adding the needinfo flag on the last person who did a change to this package.

Comment 3 Jon Schlueter 2018-08-22 11:52:15 UTC
so looks like this is coming from rhel 7.6 content

The difference I see between the two builds looks to be the addition of BuildRequires: python-setuptools in python-futures-3.1.1-2.1.el7ost build.

Adjusting to 7.6 where it was found in.

Comment 4 Jon Schlueter 2018-08-22 12:38:07 UTC
this appears to be issue that python-futures-3.1.1-4.el7 has egg-info as a file but python-futures-3.1.1-2.1.el7ost has egg-info as a folder.

From OSP 12 and before we had python-futures-3.0.3-1.el7ost built for OSP 8 back in 2018-10-23 and that had egg-info as a folder as well.

Can we please rebuild python-futures for rhel 7.6 to have egg-info as a folder instead of a file (which is fixed by BuildRequires: python-setuptools)

- rebuild with missed python-setuptools

Comment 6 Jon Schlueter 2018-08-22 12:46:33 UTC

[root@78e852c0f3f9 /]# rpm -qa python2-futures
python2-futures-3.1.1-2.1.el7ost.noarch
[root@78e852c0f3f9 /]# ls /usr/lib/python2.7/site-packages/futures-3.1.1-py2.7.egg-info/ -la
total 24
drwxr-xr-x.  2 root root  110 Aug 22 12:41 .
drwxr-xr-x. 17 root root 4096 Aug 22 12:41 ..
-rw-r--r--.  1 root root  621 May 14 19:54 PKG-INFO
-rw-r--r--.  1 root root  440 May 14 19:54 SOURCES.txt
-rw-r--r--.  1 root root    1 May 14 19:54 dependency_links.txt
-rw-r--r--.  1 root root    1 Apr 14  2017 not-zip-safe
-rw-r--r--.  1 root root   11 May 14 19:54 top_level.txt


[root@78e852c0f3f9 /]# rpm -qa python2-futures
python2-futures-3.1.1-4.el7.noarch
[root@78e852c0f3f9 /]# ls /usr/lib/python2.7/site-packages/futures-3.1.1-py2.7.egg-info -la
-rw-r--r--. 1 root root 621 May 21 16:51 /usr/lib/python2.7/site-packages/futures-3.1.1-py2.7.egg-info

Comment 7 Jon Schlueter 2018-08-22 13:00:37 UTC
simpler Reproducer case

enable OSP 13 channel 

# yum install -y python2-futures-3.1.1-2.1.el7ost

# yum install -y python2-futures-3.1.1-4.el7.noarch.rpm

...

Marking python2-futures-3.1.1-4.el7.noarch.rpm as an update to python2-futures-3.1.1-2.1.el7ost.noarch

....

==============================================================================================================================================================================================================================================
 Package                                                 Arch                                           Version                                             Repository                                                                   Size
==============================================================================================================================================================================================================================================
Updating:
 python2-futures                                         noarch                                         3.1.1-4.el7                                         /python2-futures-3.1.1-4.el7.noarch                                          90 k

Transaction Summary
==============================================================================================================================================================================================================================================
Upgrade  1 Package

Total size: 90 k
Downloading packages:
Running transaction check
Running transaction test


Transaction check error:
  file /usr/lib/python2.7/site-packages/futures-3.1.1-py2.7.egg-info from install of python2-futures-3.1.1-4.el7.noarch conflicts with file from package python2-futures-3.1.1-2.1.el7ost.noarch


....

Expected behaviour upgrade to complete without errors.

Comment 8 Alfredo Moralejo 2018-08-22 13:16:30 UTC
In fedora both -2 and -4 have egg-info as directory.

Comment 9 Alfredo Moralejo 2018-08-22 13:29:44 UTC
I don't see setuptools installed in 3.1.1-2 buildroot http://cbs.centos.org/kojifiles/packages/python-futures/3.1.1/2.el7/data/logs/noarch/root.log

Comment 10 Jon Schlueter 2018-08-22 14:36:33 UTC
 koji download-build python-futures-3.1.1-4.fc29  (fedora build) upgrades cleanly from the version shipped in OSP 13


# yum install -y python2-futures-3.1.1-2.1.el7ost
[root@ff5005fe4cf0 ~]# yum install -y python2-futures-3.1.1-4.fc29.noarch.rpm
...

Running transaction
  Updating   : python2-futures-3.1.1-4.fc29.noarch         1/2
  Cleanup    : python2-futures-3.1.1-2.1.el7ost.noarch     2/2
  Verifying  : python2-futures-3.1.1-4.fc29.noarch         1/2
  Verifying  : python2-futures-3.1.1-2.1.el7ost.noarch     2/2

Updated:
  python2-futures.noarch 0:3.1.1-4.fc29                                                                                                                                                                                                      

Complete!

Comment 12 Carlos Camacho 2018-08-23 09:11:22 UTC
Just a quick workaround to be able to progress with the regression testing from OSP13->OSP14

I excluded python2-futures from rhel-7-server-htb-rpms in redhat.repos

by adding:

exclude=python2-futures

It seemed to work and there are no other conflicts with any other packages.

Comment 13 Charalampos Stratakis 2018-08-29 14:45:20 UTC
In order to fix that we'll require an exception and a blocker at this timeframe.

It's an easy fix from the dev's point of view however approval must be granted.

adding needinfo on jkepler from QE side as well as ovasik to determine if an exception/blocker ack can be justified.

Comment 16 Carlos Camacho 2018-09-11 13:13:55 UTC
Hello,

I'm not able to reproduce this issue anymore with python2-futures-3.1.1-5

Comment 19 errata-xmlrpc 2018-10-30 10:44: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.

https://access.redhat.com/errata/RHEA-2018:3162