If you run image-import api on any image which is in queued state having valid container-format and disk-format set will return 500 error as it raises IOError: [Errno 2] No such file or directory: '/tmp/staging/567bfb61-d9f7-47e5-aa1a-90b7797e70be'. Ideally transition from queued to active should not be allowed and it should return HTTP 409 conflict error to the user.
Steps to reporoduce:
1. Create an image with valid container format and disk-format
$ glance image-create --container-format ami --disk-format ami --name cirros_image
2. Ensure image is in queued state
3. Run image-import call
$ glance image-import <ID of image created in 1st step> --import-method glance-direct
Output:
500 Internal Server Error: The server has either erred or is incapable of performing the requested operation. (HTTP 500)
Glance API Logs:
Nov 22 09:12:57 devstack <email address hidden>[14229]: pdict['tenant'] = self.tenant
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi [None req-52ea6328-83bf-4c25-a137-a51272308be9 admin admin] Caught error: [Errno 2] No such file or directory: '/tmp/staging/567bfb61-d9f7-47e5-aa1a-90b7797e70be': IOError: [Errno 2] No such file or directory: '/tmp/staging/567bfb61-d9f7-47e5-aa1a-90b7797e70be'
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi Traceback (most recent call last):
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/common/wsgi.py", line 1222, in __call__
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi request, **action_args)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/common/wsgi.py", line 1261, in dispatch
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi return method(*args, **kwargs)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/common/utils.py", line 363, in wrapped
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi return func(self, req, *args, **kwargs)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/api/v2/images.py", line 107, in import_image
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi import_task.run(task_executor)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/domain/proxy.py", line 238, in run
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi self.base.run(executor)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/notifier.py", line 581, in run
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi super(TaskProxy, self).run(executor)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/domain/proxy.py", line 238, in run
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi self.base.run(executor)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/domain/proxy.py", line 238, in run
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi self.base.run(executor)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/domain/__init__.py", line 439, in run
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi executor.begin_processing(self.task_id)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/async/taskflow_executor.py", line 143, in begin_processing
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi super(TaskExecutor, self).begin_processing(task_id)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/async/__init__.py", line 63, in begin_processing
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi self._run(task_id, task.type)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/async/taskflow_executor.py", line 181, in _run
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi self.task_repo.save(task)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi self.force_reraise()
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi six.reraise(self.type_, self.value, self.tb)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/async/taskflow_executor.py", line 172, in _run
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi engine.run()
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/usr/lib/python2.7/site-packages/taskflow/engines/action_engine/engine.py", line 247, in run
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi for _state in self.run_iter(timeout=timeout):
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/usr/lib/python2.7/site-packages/taskflow/engines/action_engine/engine.py", line 340, in run_iter
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi failure.Failure.reraise_if_any(er_failures)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/usr/lib/python2.7/site-packages/taskflow/types/failure.py", line 336, in reraise_if_any
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi failures[0].reraise()
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/usr/lib/python2.7/site-packages/taskflow/types/failure.py", line 343, in reraise
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi six.reraise(*self._exc_info)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/usr/lib/python2.7/site-packages/taskflow/engines/action_engine/executor.py", line 53, in _execute_task
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi result = task.execute(**arguments)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/async/flows/api_image_import.py", line 239, in execute
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi image_import.set_image_data(image, file_path or self.uri, self.task_id)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/common/scripts/image_import/main.py", line 154, in set_image_data
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi "task_id": task_id})
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi self.force_reraise()
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi six.reraise(self.type_, self.value, self.tb)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/common/scripts/image_import/main.py", line 145, in set_image_data
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi data_iter = script_utils.get_image_data_iter(uri)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/glance/glance/common/scripts/utils.py", line 139, in get_image_data_iter
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi return open(uri, "r")
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi IOError: [Errno 2] No such file or directory: '/tmp/staging/567bfb61-d9f7-47e5-aa1a-90b7797e70be'
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi
If you run image-import api on any image which is in queued state having valid container-format and disk-format set will return 500 error as it raises IOError: [Errno 2] No such file or directory: '/tmp/staging/ 567bfb61- d9f7-47e5- aa1a-90b7797e70 be'. Ideally transition from queued to active should not be allowed and it should return HTTP 409 conflict error to the user.
Prerequisites: n(import_ task.run, task_executor) task.run( task_executor) /bugs.launchpad .net/glance/ +bug/1712463 /github. com/openstack/ glance/ blob/master/ glance/ api/v2/ images. py#L106
1. Ensure you have latest version of python-glanceclient (version 2.8.0) installed
2. Due to isssue [1] to execute taskflow you need to modify line [2] as shown below and restart glance-api service
- pool.spawn_
+ import_
[1] https:/
[2] https:/
Steps to reporoduce:
1. Create an image with valid container format and disk-format
$ glance image-create --container-format ami --disk-format ami --name cirros_image
2. Ensure image is in queued state
3. Run image-import call
$ glance image-import <ID of image created in 1st step> --import-method glance-direct
Output:
500 Internal Server Error: The server has either erred or is incapable of performing the requested operation. (HTTP 500)
Glance API Logs:
Nov 22 09:12:57 devstack <email address hidden>[14229]: pdict['tenant'] = self.tenant 83bf-4c25- a137-a51272308b e9 admin admin] Caught error: [Errno 2] No such file or directory: '/tmp/staging/ 567bfb61- d9f7-47e5- aa1a-90b7797e70 be': IOError: [Errno 2] No such file or directory: '/tmp/staging/ 567bfb61- d9f7-47e5- aa1a-90b7797e70 be' glance/ glance/ common/ wsgi.py" , line 1222, in __call__ glance/ glance/ common/ wsgi.py" , line 1261, in dispatch glance/ glance/ common/ utils.py" , line 363, in wrapped glance/ glance/ api/v2/ images. py", line 107, in import_image task.run( task_executor) glance/ glance/ domain/ proxy.py" , line 238, in run run(executor) glance/ glance/ notifier. py", line 581, in run glance/ glance/ domain/ proxy.py" , line 238, in run run(executor) glance/ glance/ domain/ proxy.py" , line 238, in run run(executor) glance/ glance/ domain/ __init_ _.py", line 439, in run begin_processin g(self. task_id) glance/ glance/ async/taskflow_ executor. py", line 143, in begin_processing processing( task_id) glance/ glance/ async/_ _init__ .py", line 63, in begin_processing glance/ glance/ async/taskflow_ executor. py", line 181, in _run repo.save( task) python2. 7/site- packages/ oslo_utils/ excutils. py", line 220, in __exit__ reraise( ) python2. 7/site- packages/ oslo_utils/ excutils. py", line 196, in force_reraise self.type_ , self.value, self.tb) glance/ glance/ async/taskflow_ executor. py", line 172, in _run python2. 7/site- packages/ taskflow/ engines/ action_ engine/ engine. py", line 247, in run iter(timeout= timeout) : python2. 7/site- packages/ taskflow/ engines/ action_ engine/ engine. py", line 340, in run_iter Failure. reraise_ if_any( er_failures) python2. 7/site- packages/ taskflow/ types/failure. py", line 336, in reraise_if_any 0].reraise( ) python2. 7/site- packages/ taskflow/ types/failure. py", line 343, in reraise *self._ exc_info) python2. 7/site- packages/ taskflow/ engines/ action_ engine/ executor. py", line 53, in _execute_task **arguments) glance/ glance/ async/flows/ api_image_ import. py", line 239, in execute set_image_ data(image, file_path or self.uri, self.task_id) glance/ glance/ common/ scripts/ image_import/ main.py" , line 154, in set_image_data python2. 7/site- packages/ oslo_utils/ excutils. py", line 220, in __exit__ reraise( ) python2. 7/site- packages/ oslo_utils/ excutils. py", line 196, in force_reraise self.type_ , self.value, self.tb) glance/ glance/ common/ scripts/ image_import/ main.py" , line 145, in set_image_data utils.get_ image_data_ iter(uri) glance/ glance/ common/ scripts/ utils.py" , line 139, in get_image_data_iter 567bfb61- d9f7-47e5- aa1a-90b7797e70 be'
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi [None req-52ea6328-
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi Traceback (most recent call last):
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi request, **action_args)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi return method(*args, **kwargs)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi return func(self, req, *args, **kwargs)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi import_
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi self.base.
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi super(TaskProxy, self).run(executor)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi self.base.
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi self.base.
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi executor.
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi super(TaskExecutor, self).begin_
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi self._run(task_id, task.type)
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi self.task_
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/usr/lib/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi self.force_
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/usr/lib/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi six.reraise(
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi engine.run()
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/usr/lib/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi for _state in self.run_
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/usr/lib/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi failure.
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/usr/lib/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi failures[
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/usr/lib/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi six.reraise(
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/usr/lib/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi result = task.execute(
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi image_import.
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi "task_id": task_id})
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/usr/lib/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi self.force_
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/usr/lib/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi six.reraise(
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi data_iter = script_
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi File "/opt/stack/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi return open(uri, "r")
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi IOError: [Errno 2] No such file or directory: '/tmp/staging/
Nov 22 09:12:57 devstack <email address hidden>[14229]: ERROR glance.common.wsgi