
A RecursionError exception can occur in the SolidFire driver when accessing a Driver class attribute that does not exist in both SolidFireDriver and SolidFireISCSI classes. The SolidFireDriver class (the driver's entry point) implements __getattr__ so that a call to a missing attribute is redirected to its complementary class SolidFireISCSI. The problem is that SolidFireISCSI class was also implemented in the same way, looking for attributes in SolidFireDriver in case it doesn't provide a definition. So a call to an attribute that does not exist in both classes leads to a class trying to find the attribute in the other, in an endless loop situation. Applications such as OSProfiler may hit this scenario by inspecting the SolidFire driver class instance at driver's initialization and causing its failure. This patch fixes the issue by removing __getattr__ implementation from SolidFireISCSI, allowing the driver to return NotImplementedError exception correctly. Change-Id: Ic611b2abf11b94f9a21353df426cda19c09bf085 Closes-Bug: 1934459
OpenStack Cinder
OpenStack Cinder is a storage service for an open cloud computing service.
You can learn more about Cinder at:
Getting Started
If you'd like to run from the master branch, you can clone the git repo:
git clone https://opendev.org/openstack/cinder
If you'd like to contribute, please see the information in CONTRIBUTING.rst
You can raise bugs on Launchpad
Python client
Description
Languages
Python
99.7%
Smarty
0.3%