nova boot fails while using bootable cinder volume which was created from an image created from a volume

Bug #2060934 reported by LiJun Zhu
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
New
Undecided
Unassigned

Bug Description

Description
===========
nova boot fails while using bootable cinder volume as a backend when that cinder volume is created from a volume-based image.

A similar issue is https://bugzilla.redhat.com/show_bug.cgi?id=1414226.

Steps to reproduce
==================
1. Create a bootable volume.
[root@zhuljbj-mgt ~]# cinder list
+--------------------------------------+-----------+------------------+------+--------------------------------------------------------------------------------------+----------+--------------------------------------+
| ID | Status | Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+------------------+------+--------------------------------------------------------------------------------------+----------+--------------------------------------+
| 5228a250-e541-434f-af7d-e583aed58c4c | available | zlj-vol | 10 | fl63 base template | true | |
+--------------------------------------+-----------+------------------+------+--------------------------------------------------------------------------------------+----------+--------------------------------------+

2. Create a glance image with the volume 'zlj-vol'
[root@zhuljbj-mgt ~]# glance image-list
+--------------------------------------+-----------------+
| ID | Name |
+--------------------------------------+-----------------+
| 3f3eff5f-33b6-490f-ae08-f4dbc048b178 | zlj-vol-img |
+--------------------------------------+-----------------+

[root@zhuljbj-mgt ~]# glance image-show 3f3eff5f-33b6-490f-ae08-f4dbc048b178
+----------------------+----------------------------------------------------------------------------------+
| Property | Value |
+----------------------+----------------------------------------------------------------------------------+
| architecture | s390x |
| base_image_ref | |
| bdm_v2 | True |
| block_device_mapping | [{"guest_format":null,"boot_index":0,"no_device":null,"image_id":null,"volume_id |
| | ":"5228a250-e541-434f-af7d-e583aed58c4c","volume_type":"fl63 base template","dis |
| | k_bus":null,"device_name":"/dev/vda","volume_size":10,"source_type":"volume","sn |
| | apshot_id":null,"destination_type":"volume","delete_on_termination":false}] |
| checksum | d41d8cd98f00b204e9800998ecf8427e |
| container_format | bare |
| created_at | 2024-04-11T09:06:27Z |
| disk_format | raw |
| disk_type | SCSI |
| hypervisor_type | zvm |
| id | 3f3eff5f-33b6-490f-ae08-f4dbc048b178 |
| min_disk | 0 |
| min_ram | 0 |
| name | zlj-vol-img |
| os_distro | Rhel9 |
| os_hash_algo | sha512 |
| os_hash_value | cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0 |
| | ff8318d2877eec2f63b931bd47417a81a538327af927da3e |
| os_hidden | False |
| owner | 6f9ee43b492f40efa3506a9f45a59665 |
| protected | False |
| secure_execution | False |
| size | 0 |
| status | active |
| tags | [] |
| updated_at | 2024-04-11T09:06:28Z |
| virtual_size | Not available |
| visibility | private |
+----------------------+----------------------------------------------------------------------------------+

3. Create a bootable cinder volume using the image
[root@zhuljbj-mgt ~]# cinder create --image zlj-vol-img --display-name zlj-vt-from-img 20
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
| Property | Value |
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+
| attachments | [] |
| availability_zone | Default_Group |
| bootable | false |
| consistencygroup_id | None |
| created_at | 2024-04-11T09:07:02.000000 |
| description | None |
| encrypted | False |
| group_id | None |
| health_status | {'id': '72aa9955-a0db-4352-b702-9a93e120de5f', 'health_value': 'PENDING', 'updated_at': '2024-04-11T09:07:02.842989', 'value_reason': 'PENDING'} |
| host | None |
| id | 72aa9955-a0db-4352-b702-9a93e120de5f |
| metadata | {} |
| migration_status | None |
| multiattach | False |
| name | zlj-vt-from-img |
| os-vol-host-attr:host | None |
| os-vol-tenant-attr:tenant_id | 6f9ee43b492f40efa3506a9f45a59665 |
| provider_id | None |
| replication_status | None |
| service_uuid | None |
| shared_targets | True |
| size | 20 |
| snapshot_id | None |
| source_volid | None |
| status | creating |
| updated_at | None |
| user_id | 0688b01e6439ca32d698d20789d52169126fb41fb1a4ddafcebb97d854e836c9 |
| volume_type | None |
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+

4. Boot a vm instance using the bootable cinder volume
[root@zhuljbj-mgt ~]# nova boot --poll --flavor tiny --nic net-name=zvmnet --block-device-mapping vda=72aa9955-a0db-4352-b702-9a93e120de5f:::0 inst4
nova CLI is deprecated and will be a removed in a future release
ERROR (BadRequest): Invalid image metadata. Error: A list is required in field img_block_device_mapping, not a str (HTTP 400) (Request-ID: req-0b66590b-e421-4b58-b1cf-62c6199470ba)

Expected result
===============
nova boot command should complete successfully without any errors.

Actual result
=============
Below error is reported.
ERROR (BadRequest): Invalid image metadata. Error: A list is required in field img_block_device_mapping, not a str (HTTP 400) (Request-ID: req-0b66590b-e421-4b58-b1cf-62c6199470ba)

Environment
===========
1. Exact version of OpenStack you are running. See the following
  list for all releases: http://docs.openstack.org/releases/

[root@zhuljbj-mgt ~]# rpm -qa | grep nova
openstack-nova-api-27.0.0-122.0.202404060250.ibm.el8.noarch
openstack-nova-common-27.0.0-122.0.202404060250.ibm.el8.noarch
openstack-nova-27.0.0-122.0.202404060250.ibm.el8.noarch
python3-nova-27.0.0-122.0.202404060250.ibm.el8.noarch
openstack-nova-conductor-27.0.0-122.0.202404060250.ibm.el8.noarch
openstack-nova-scheduler-27.0.0-122.0.202404060250.ibm.el8.noarch
openstack-nova-compute-27.0.0-122.0.202404060250.ibm.el8.noarch
openstack-nova-novncproxy-27.0.0-122.0.202404060250.ibm.el8.noarch
openstack-nova-compute-prereqs-2013.1-122.0.202401180005.ibm.el8.s390x
python3-novaclient-18.3.0-122.0.202401181402.ibm.el8.noarch
openstack-nova-network-27.0.0-122.0.202404060250.ibm.el8.noarch
openstack-nova-console-27.0.0-122.0.202404060250.ibm.el8.noarch

2. Which hypervisor did you use?
   z/VM

2. Which storage type did you use?
   IBM Flashsystem

3. Which networking type did you use?
   nova-network

Logs & Configs
==============

LiJun Zhu (zhuljbj)
description: updated
description: updated
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.