[Bug 2146432] Re: glance download fails after BackendGroupConfiguration patch
Launchpad Bug Tracker
2146432 at bugs.launchpad.net
Sun Mar 29 22:43:14 UTC 2026
Status changed to 'Confirmed' because the bug affects multiple users.
** Changed in: glance (Ubuntu)
Status: New => Confirmed
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to glance in Ubuntu.
https://bugs.launchpad.net/bugs/2146432
Title:
glance download fails after BackendGroupConfiguration patch
Status in Glance:
New
Status in glance package in Ubuntu:
Confirmed
Bug description:
After this patch:
https://review.opendev.org/c/openstack/glance_store/+/973589
doing "openstack image save" or "glance image-download" fails on my
setup:
# glance image-download 4da44979-b838-4e31-9f71-06577fa33155 >debian-13-generic-amd64-daily.qcow2
Unable to download image '4da44979-b838-4e31-9f71-06577fa33155'. (HTTP HTTPInternalServerError)
The glance-api.log is then:
File "/usr/lib/python3/dist-packages/eventlet/wsgi.py", line 620, in handle_one_response
result = self.application(self.environ, start_response)
File "/usr/lib/python3/dist-packages/paste/urlmap.py", line 211, in __call__
return app(environ, start_response)
File "/usr/lib/python3/dist-packages/webob/dec.py", line 129, in __call__
resp = self.call_func(req, *args, **kw)
File "/usr/lib/python3/dist-packages/webob/dec.py", line 193, in call_func
return self.func(req, *args, **kwargs)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/oslo_middleware/base.py", line 152, in __call__
response = req.get_response(self.application)
File "/usr/lib/python3/dist-packages/webob/request.py", line 1313, in send
status, headers, app_iter = self.call_application(
~~~~~~~~~~~~~~~~~~~~~^
application, catch_exc_info=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/webob/request.py", line 1278, in call_application
app_iter = application(self.environ, start_response)
File "/usr/lib/python3/dist-packages/webob/dec.py", line 129, in __call__
resp = self.call_func(req, *args, **kw)
File "/usr/lib/python3/dist-packages/webob/dec.py", line 193, in call_func
return self.func(req, *args, **kwargs)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/oslo_middleware/base.py", line 152, in __call__
response = req.get_response(self.application)
File "/usr/lib/python3/dist-packages/webob/request.py", line 1313, in send
status, headers, app_iter = self.call_application(
~~~~~~~~~~~~~~~~~~~~~^
application, catch_exc_info=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/webob/request.py", line 1278, in call_application
app_iter = application(self.environ, start_response)
File "/usr/lib/python3/dist-packages/webob/dec.py", line 129, in __call__
resp = self.call_func(req, *args, **kw)
File "/usr/lib/python3/dist-packages/webob/dec.py", line 193, in call_func
return self.func(req, *args, **kwargs)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/glance/common/wsgi.py", line 780, in __call__
response = req.get_response(self.application)
File "/usr/lib/python3/dist-packages/webob/request.py", line 1313, in send
status, headers, app_iter = self.call_application(
~~~~~~~~~~~~~~~~~~~~~^
application, catch_exc_info=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/webob/request.py", line 1278, in call_application
app_iter = application(self.environ, start_response)
File "/usr/lib/python3/dist-packages/webob/dec.py", line 129, in __call__
resp = self.call_func(req, *args, **kw)
File "/usr/lib/python3/dist-packages/webob/dec.py", line 193, in call_func
return self.func(req, *args, **kwargs)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/osprofiler/web.py", line 111, in __call__
return request.get_response(self.application)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/webob/request.py", line 1313, in send
status, headers, app_iter = self.call_application(
~~~~~~~~~~~~~~~~~~~~~^
application, catch_exc_info=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/webob/request.py", line 1278, in call_application
app_iter = application(self.environ, start_response)
File "/usr/lib/python3/dist-packages/webob/dec.py", line 129, in __call__
resp = self.call_func(req, *args, **kw)
File "/usr/lib/python3/dist-packages/webob/dec.py", line 193, in call_func
return self.func(req, *args, **kwargs)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/keystonemiddleware/auth_token/__init__.py", line 341, in __call__
response = req.get_response(self._app)
File "/usr/lib/python3/dist-packages/webob/request.py", line 1313, in send
status, headers, app_iter = self.call_application(
~~~~~~~~~~~~~~~~~~~~~^
application, catch_exc_info=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/webob/request.py", line 1278, in call_application
app_iter = application(self.environ, start_response)
File "/usr/lib/python3/dist-packages/webob/dec.py", line 129, in __call__
resp = self.call_func(req, *args, **kw)
File "/usr/lib/python3/dist-packages/webob/dec.py", line 193, in call_func
return self.func(req, *args, **kwargs)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/glance/common/wsgi.py", line 780, in __call__
response = req.get_response(self.application)
File "/usr/lib/python3/dist-packages/webob/request.py", line 1313, in send
status, headers, app_iter = self.call_application(
~~~~~~~~~~~~~~~~~~~~~^
application, catch_exc_info=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/webob/request.py", line 1278, in call_application
app_iter = application(self.environ, start_response)
File "/usr/lib/python3/dist-packages/paste/urlmap.py", line 211, in __call__
return app(environ, start_response)
File "/usr/lib/python3/dist-packages/webob/dec.py", line 143, in __call__
return resp(environ, start_response)
File "/usr/lib/python3/dist-packages/routes/middleware.py", line 153, in __call__
response = self.app(environ, start_response)
File "/usr/lib/python3/dist-packages/webob/dec.py", line 143, in __call__
return resp(environ, start_response)
File "/usr/lib/python3/dist-packages/webob/dec.py", line 143, in __call__
return resp(environ, start_response)
TypeError: 'ImageProxy' object is not callable
Reverting https://review.opendev.org/c/openstack/glance_store/+/973589
fixes the issue. Also this patch from abhishekk restors a working
Glance:
--- a/glance_store/_drivers/swift/store.py
+++ b/glance_store/_drivers/swift/store.py
@@ -488,6 +488,7 @@ def swift_retry_iter(resp_iter, length, store, location, manager):
store.backend_group).swift_store_retry_get_count
else:
rcount = store.conf.glance_store.swift_store_retry_get_count
+ rcount = int(rcount or 0)
while retries <= rcount:
try:
@@ -892,7 +893,8 @@ class BaseStore(driver.Store):
location = location.store_location
# initialize manager to receive valid connections
- allow_retry = glance_conf.swift_store_retry_get_count > 0
+ retry_get_count = int(glance_conf.swift_store_retry_get_count or 0)
+ allow_retry = retry_get_count > 0
with self.get_manager(location, context,
allow_reauth=allow_retry) as manager:
(resp_headers, resp_body) = self._get_object(location,
I believe it's going to be sent for review.
To manage notifications about this bug go to:
https://bugs.launchpad.net/glance/+bug/2146432/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list