Problem here is that the qemu-img output shifts to scientific notation:
999 => 999 MiB
1000 => 1e+03 MiB
The regex in python-oslo-utils does not cover this.
This issue is likely regexp parsing "disk size: 1e+03 MiB" value:
$ qemu-img info overcloud-full.qcow2
image: overcloud-full.qcow2
file format: qcow2
virtual size: 3.84 GiB (4118413312 bytes)
disk size: 1e+03 MiB
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
$ ls -lha .
-rw-r--r--. 1 stack stack 1000M Feb 21 23:48 overcloud-full.qcow2
For comparison, different image (OSP16) gives:
$ qemu-img info 16/overcloud-full.qcow2
image: 16/overcloud-full.qcow2
file format: qcow2
virtual size: 3.84 GiB (4127129600 bytes)
disk size: 0.977 GiB
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
refcount bits: 16
corrupt: false
$ ls -lha . 16/
-rw-r--r--. 1 stack stack 1001M Feb 13 17:02 overcloud-full.qcow2
qemu-img-4.1.0-23.module+el8.1.1+5467+ba2d821b.x86_64
python-oslo-utils-lang-3.40.5-0.20200113183052.566e14c.el8ost.noarch
ironic-conductor on UC reports:
DEBUG ironic_lib.utils [req-741339a2-cccd-4ec6-9932-5d9e68af5d6f 6275ae0d0d904e868edeb26d56ae61d1 9c981643ec2f40578708640f060de538 - default default] Command stderr is: "" execute /usr/lib/python3.6/site-packages/
DEBUG oslo_concurrency.lockutils [req-741339a2-cccd-4ec6-9932-5d9e68af5d6f 6275ae0d0d904e868edeb26d56ae61d1 9c981643ec2f40578708640f060de538 - default default] Releasing lock "download-image" lock /usr/lib/python3
urrency/lockutils.py:281
ERROR ironic.conductor.utils [req-741339a2-cccd-4ec6-9932-5d9e68af5d6f 6275ae0d0d904e868edeb26d56ae61d1 9c981643ec2f40578708640f060de538 - default default] Node 95cdf531-ba45-444f-bc32-8d3acc35b624 failed deploy s
iority': 100, 'argsinfo': None, 'interface': 'deploy'} with unexpected error: Invalid string format: 1eB: ValueError: Invalid string format: 1eB
ERROR ironic.conductor.utils Traceback (most recent call last):
ERROR ironic.conductor.utils File "/usr/lib/python3.6/site-packages/ironic/conductor/manager.py", line 3848, in _do_next_deploy_step
ERROR ironic.conductor.utils result = interface.execute_deploy_step(task, step)
ERROR ironic.conductor.utils File "/usr/lib/python3.6/site-packages/ironic/drivers/base.py", line 325, in execute_deploy_step
ERROR ironic.conductor.utils return self._execute_step(task, step)
ERROR ironic.conductor.utils File "/usr/lib/python3.6/site-packages/ironic/drivers/base.py", line 248, in _execute_step
ERROR ironic.conductor.utils return getattr(self, step['step'])(task)
ERROR ironic.conductor.utils File "/usr/lib/python3.6/site-packages/ironic_lib/metrics.py", line 60, in wrapped
ERROR ironic.conductor.utils result = f(*args, **kwargs)
ERROR ironic.conductor.utils File "/usr/lib/python3.6/site-packages/ironic/conductor/task_manager.py", line 148, in wrapper
ERROR ironic.conductor.utils return f(*args, **kwargs)
ERROR ironic.conductor.utils File "/usr/lib/python3.6/site-packages/ironic/drivers/modules/iscsi_deploy.py", line 422, in deploy
ERROR ironic.conductor.utils deploy_utils.cache_instance_image(task.context, node)
ERROR ironic.conductor.utils File "/usr/lib/python3.6/site-packages/ironic_lib/metrics.py", line 60, in wrapped
ERROR ironic.conductor.utils result = f(*args, **kwargs)
ERROR ironic.conductor.utils File "/usr/lib/python3.6/site-packages/ironic/drivers/modules/deploy_utils.py", line 1184, in cache_instance_image
ERROR ironic.conductor.utils force_raw)
ERROR ironic.conductor.utils File "/usr/lib/python3.6/site-packages/ironic/drivers/modules/deploy_utils.py", line 521, in fetch_images
ERROR ironic.conductor.utils cache.fetch_image(href, path, ctx=ctx, force_raw=force_raw)
ERROR ironic.conductor.utils File "/usr/lib/python3.6/site-packages/ironic/drivers/modules/image_cache.py", line 140, in fetch_image
ERROR ironic.conductor.utils href, master_path, dest_path, ctx=ctx, force_raw=force_raw)
ERROR ironic.conductor.utils File "/usr/lib/python3.6/site-packages/ironic/drivers/modules/image_cache.py", line 167, in _download_image
ERROR ironic.conductor.utils _fetch(ctx, href, tmp_path, force_raw)
ERROR ironic.conductor.utils File "/usr/lib/python3.6/site-packages/ironic/drivers/modules/image_cache.py", line 321, in _fetch
ERROR ironic.conductor.utils required_space = images.converted_size(path_tmp)
ERROR ironic.conductor.utils File "/usr/lib/python3.6/site-packages/ironic/common/images.py", line 392, in converted_size
ERROR ironic.conductor.utils data = disk_utils.qemu_img_info(path)
ERROR ironic.conductor.utils File "/usr/lib/python3.6/site-packages/ironic_lib/disk_utils.py", line 337, in qemu_img_info
ERROR ironic.conductor.utils return imageutils.QemuImgInfo(out)
ERROR ironic.conductor.utils File "/usr/lib/python3.6/site-packages/oslo_utils/imageutils.py", line 62, in __init__
ERROR ironic.conductor.utils details = self._parse(cmd_output or '')
ERROR ironic.conductor.utils File "/usr/lib/python3.6/site-packages/oslo_utils/imageutils.py", line 178, in _parse
ERROR ironic.conductor.utils details = self._extract_details(root, root_details, lines)
ERROR ironic.conductor.utils File "/usr/lib/python3.6/site-packages/oslo_utils/imageutils.py", line 127, in _extract_details
ERROR ironic.conductor.utils real_details = self._extract_bytes(root_details)
ERROR ironic.conductor.utils File "/usr/lib/python3.6/site-packages/oslo_utils/imageutils.py", line 113, in _extract_bytes
ERROR ironic.conductor.utils return_int=True)
ERROR ironic.conductor.utils File "/usr/lib/python3.6/site-packages/oslo_utils/strutils.py", line 232, in string_to_bytes
ERROR ironic.conductor.utils raise ValueError(msg)
ERROR ironic.conductor.utils ValueError: Invalid string format: 1eB
Fix proposed to branch: master /review. opendev. org/709588
Review: https:/