Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SSL recursion error with requests library on infinisdk 185.1.1 #15

Open
derekrobertson opened this issue Sep 14, 2021 · 0 comments
Open

Comments

@derekrobertson
Copy link

derekrobertson commented Sep 14, 2021

Operating System: Ubuntu 20.04.3 LTS
Kernel: Linux 5.4.0-81-generic

python3 -m pip install infinisdk==185.1.1

python3 -m pip show infinisdk | grep Location
Location: /usr/local/lib/python3.8/dist-packages

When connecting to infinibox (using openstack cinder infinibox driver) - we get error below:

2021-09-14 17:30:56.793 2194884 INFO cinder.volume.manager [req-df891849-4101-41b7-a680-908d41f234b5 - - - - -] Starting volume driver InfiniboxVolumeDriver (1.7)
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager [req-df891849-4101-41b7-a680-908d41f234b5 - - - - -] Failed to initialize driver.: RecursionError: maximum recursion depth exceeded while calling a Python object
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager Traceback (most recent call last):
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/lib/python3/dist-packages/cinder/volume/manager.py", line 466, in _init_host
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager self.driver.do_setup(ctxt)
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/lib/python3/dist-packages/cinder/volume/drivers/infinidat.py", line 169, in do_setup
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager self._system = (self._setup_and_get_system_object(
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/lib/python3/dist-packages/cinder/volume/drivers/infinidat.py", line 156, in _setup_and_get_system_object
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager system.login()
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/infinibox/infinibox.py", line 252, in login
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager if self.compat.has_auth_sessions():
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/infinibox/compatibility.py", line 124, in has_auth_sessions
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager return self._has_feature('api_auth_sessions') or self._has_feature('api/auth_sessions')
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/infinibox/compatibility.py", line 91, in _has_feature
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager return self._get_feature_version(feature_key, NOTHING) is not NOTHING
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/infinibox/compatibility.py", line 84, in _get_feature_version
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager self._init_features()
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/infinibox/compatibility.py", line 72, in _init_features
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager resp = self.system.api.get("_features", assert_success=False)
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/core/api/api.py", line 33, in returned
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager return self.request(http_method, path=path, **kwargs)
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/core/api/api.py", line 511, in request
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager returned = self._request(http_method, path, **kwargs)
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/core/api/api.py", line 327, in _request
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager self.system.check_version()
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/infinibox/infinibox.py", line 77, in check_version
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager if not self.compat.can_run_on_system():
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/infinibox/compatibility.py", line 37, in can_run_on_system
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager version_string = self.system.get_version().split('-', 1)[0]
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/infinibox/infinibox.py", line 190, in get_version
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager return self.get_system_info('version')
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/infinibox/infinibox.py", line 155, in get_system_info
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager return self.components.system_component.get_field(field_name, **kwargs)
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/core/system_object.py", line 175, in get_field
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager return self.get_fields([field_name], **kwargs)[field_name]
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/core/system_object.py", line 211, in get_fields
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager response = self.system.api.get(query)
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/core/api/api.py", line 33, in returned
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager return self.request(http_method, path=path, **kwargs)
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/core/api/api.py", line 511, in request
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager returned = self._request(http_method, path, **kwargs)
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/core/api/api.py", line 340, in _request
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager self.system.compat.initialize()
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/infinibox/compatibility.py", line 34, in initialize
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager self._init_features()
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/infinibox/compatibility.py", line 72, in _init_features
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager resp = self.system.api.get("_features", assert_success=False)
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/core/api/api.py", line 33, in returned
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager return self.request(http_method, path=path, **kwargs)
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/core/api/api.py", line 511, in request
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager returned = self._request(http_method, path, **kwargs)
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/infinisdk/core/api/api.py", line 396, in _request
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager response = self._session.send(prepared, **kwargs)
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/requests/sessions.py", line 655, in send
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager r = adapter.send(request, **kwargs)
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/requests/adapters.py", line 439, in send
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager resp = conn.urlopen(
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py", line 699, in urlopen
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager httplib_response = self._make_request(
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py", line 382, in _make_request
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager self._validate_conn(conn)
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py", line 1010, in validate_conn
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager conn.connect()
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/urllib3/connection.py", line 392, in connect
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager self.ssl_context = create_urllib3_context(
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/local/lib/python3.8/dist-packages/urllib3/util/ssl
.py", line 312, in create_urllib3_context
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager context.options |= options
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/lib/python3.8/ssl.py", line 602, in options
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager super(SSLContext, SSLContext).options.set(self, value)
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/lib/python3.8/ssl.py", line 602, in options
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager super(SSLContext, SSLContext).options.set(self, value)
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager File "/usr/lib/python3.8/ssl.py", line 602, in options
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager super(SSLContext, SSLContext).options.set(self, value)
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager [Previous line repeated 468 more times]
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager RecursionError: maximum recursion depth exceeded while calling a Python object
2021-09-14 17:30:56.797 2194884 ERROR cinder.volume.manager

This is being caused by the version of 'requests' library specified in infinisdk requirements.txt
requests-2.4.0 is installed

It appears to be related to this bug:
eventlet/eventlet#371

Upgrading to requests-2.22.0 fixes this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant