Bug 2073168 - Latest 'python-s3transfer' package breaks 'python-boto3' when used with 'python-requests'
Summary: Latest 'python-s3transfer' package breaks 'python-boto3' when used with 'pyth...
Keywords:
Status: ASSIGNED
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: python-s3transfer
Version: 7.9
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: rc
: ---
Assignee: Oyvind Albrigtsen
QA Contact: Brandon Perkins
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-04-07 19:53 UTC by Jon McKenzie
Modified: 2022-04-08 12:40 UTC (History)
1 user (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)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker RHELPLAN-118298 0 None None None 2022-04-07 20:04:44 UTC

Description Jon McKenzie 2022-04-07 19:53:34 UTC
Description of problem:

Tools using the 'python-requests' package and 'python-boto3' package (which has 'python-s3transfer' as a dependency) together break with this latest version with a Python ImportError


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

0.1.13-1.el7_9.2


How reproducible: Always


Steps to Reproduce:
1. Install python-requests and python-boto3 (with python-s3transfer 0.1.13-1.el7_9.2 as dependency)
2. Open a Python REPL and run 'import requests' and then 'import boto3'. Observe the ImportError exception
3. Open a brand new Python REPL and run just 'import boto3'. No import exception occurs.
4. Downgrade python-s3transfer to 0.1.13-1.el7.0.1 and run either the steps from #2 or #3 above. No import error occurs.

Actual results:

```
>>> import requests
>>> import boto3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/boto3/__init__.py", line 16, in <module>
    from boto3.session import Session
  File "/usr/lib/python2.7/site-packages/boto3/session.py", line 19, in <module>
    import botocore.session
  File "/usr/lib/fence-agents/bundled/botocore/session.py", line 29, in <module>
    import botocore.credentials
  File "/usr/lib/fence-agents/bundled/botocore/credentials.py", line 34, in <module>
    from botocore.config import Config
  File "/usr/lib/fence-agents/bundled/botocore/config.py", line 16, in <module>
    from botocore.endpoint import DEFAULT_TIMEOUT, MAX_POOL_CONNECTIONS
  File "/usr/lib/fence-agents/bundled/botocore/endpoint.py", line 22, in <module>
    from botocore.awsrequest import create_request_object
  File "/usr/lib/fence-agents/bundled/botocore/awsrequest.py", line 24, in <module>
    import botocore.utils
  File "/usr/lib/fence-agents/bundled/botocore/utils.py", line 32, in <module>
    import botocore.httpsession
  File "/usr/lib/fence-agents/bundled/botocore/httpsession.py", line 10, in <module>
    from urllib3.util.ssl_ import (
ImportError: cannot import name PROTOCOL_TLS
```

Expected results:

```
>>> import requests
>>> import boto3
>>>
```


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