Bug 1578071

Summary: awscli dies with python stacktrace after yum update to 7.5 if EPEL was previously used to install awscli
Product: Red Hat Enterprise Linux 7 Reporter: Trevor Hemsley <trevor.hemsley>
Component: awscliAssignee: Oyvind Albrigtsen <oalbrigt>
Status: CLOSED WONTFIX QA Contact: Brandon Perkins <bperkins>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.5CC: lmiksik, matt, rhbugs, thomas.oulevey
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: 2021-02-15 07:38:51 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 Trevor Hemsley 2018-05-14 18:24:08 UTC
Description of problem:
AWS users who had the Fedora EPEL copy of awscli installed prior to the update to RHEL 7.5 are left with a non-functional aws command when yum update'd to 7.5.

Version-Release number of selected component (if applicable):
awscli-1.14.28-5.el7

How reproducible:
Always

Steps to Reproduce:
1. Install EPEL copy of awscli-1.11.133-1.el7 package to reproduce what an existing user will already have. This pulls in python-colorama python-docutils python-pillow python2-botocore python2-futures python2-jmespath python2-rsa python2-s3transfer
2. `yum update awscli` to pull in base copy of awscli at 1.14.28-5.el7
3. Run `aws` 

Actual results:
aws produces stacktrace and dies:

# aws
Traceback (most recent call last):
  File "/bin/aws", line 19, in <module>
    import awscli.clidriver
  File "/usr/lib/python2.7/site-packages/awscli/clidriver.py", line 25, in <module>
    from botocore.history import get_global_history_recorder
ImportError: No module named history

After `yum swap python2-s3transfer python-s3transfer` the aws command functions as expected.


Expected results:
aws command works

Additional info:
The problem is due to incompatible python2-s3transfer vs python-s3transfer packages. All existing awscli users will be left with a non-functional command after the yum update to the RHEL base copy. Running `yum swap python2-s3transfer python-s3transfer` will fix this but ideally it would be better not to break things in the first place. I suspect the best solution to this would be for awscli to Require: python-s3transfer directly or for python-s3transfer to Obsolete: python2-s3transfer.

Comment 2 Trevor Hemsley 2018-05-14 19:59:18 UTC
For those EPEL users that are already affected, the way to fix this is

yum update awscli
yum swap python2-s3transfer python-s3transfer

At this point you may well have unnecessary packages installed as the depchain is different between the two versions and you can probably uninstall python-colorama python2-rsa python2-boto3 python2-botocore python2-futures python2-jmespath python2-rsa python2-s3transfer which were all installed by the EPEL awscli.

Comment 3 Anssi Johansson 2018-05-15 10:02:51 UTC
Bug 1578061 comment 2 is related. Bug 1578083 would need to be fixed first, though.

Comment 5 Matt Dainty 2018-06-18 08:53:59 UTC
This is sadly another example of when a package is moved from EPEL to the main OS and the upgrade isn't transparent, see https://bugzilla.redhat.com/show_bug.cgi?id=1492884 for another example.

I thought the whole point of using RHEL was stability, I'd expect this sort of thing in Fedora.

Comment 9 RHEL Program Management 2021-02-15 07:38:51 UTC
After evaluating this issue, there are no plans to address it further or fix it in an upcoming release.  Therefore, it is being closed.  If plans change such that this issue will be fixed in an upcoming release, then the bug can be reopened.