Bug 1578071 - awscli dies with python stacktrace after yum update to 7.5 if EPEL was previously used to install awscli
Summary: awscli dies with python stacktrace after yum update to 7.5 if EPEL was previo...
Keywords:
Status: POST
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: awscli
Version: 7.5
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Oyvind Albrigtsen
QA Contact: Brandon Perkins
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-05-14 18:24 UTC by Trevor Hemsley
Modified: 2020-11-04 23:38 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Target Upstream Version:


Attachments (Terms of Use)

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.


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