yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #87592
[Bug 1943431] Re: swap ro multiattach volume, report an error VolumeNotFound
Reviewed: https://review.opendev.org/c/openstack/nova/+/807025
Committed: https://opendev.org/openstack/nova/commit/6fd071b904282e106de7488a076d4f703636af21
Submitter: "Zuul (22348)"
Branch: master
commit 6fd071b904282e106de7488a076d4f703636af21
Author: maaoyu <maaoyu@xxxxxxxxxx>
Date: Thu Sep 2 14:11:14 2021 +0800
compute: Update volume_id within connection_info during swap_volume
When Cinder orchestrates a volume migration between backends it
initially creates a temporary volume on the destination before calling
Nova to swap to that volume. When this is complete Nova calls back to
Cinder and the temporary volume on the destination is renamed to the
original volume UUID making the migration transparent to end users.
Previously Nova would not account for this within the connection_info
stahed when connecting the new volume and would continue to point to the
original UUID of the temporary volume. For most codepaths in Nova this
isn't an issue but when dealing with multiattach volumes the libvirt
driver has a specific path that uses this stored volume_id within the
connection_info when an attempt is made to detach the volume,
nova.virt.libvirt.LibvirtDriver._should_disconnect_target. In this case
this would lead to a failed lookup of the volume in Cinder and an
eventual 500 returned by Nova.
This change corrects this by ensuring any volume_id stashed in the
new connection_info we gather during a swap_volume is overwritten with
the correct id returned by the eventual call to Cinder's
os-migrate_volume_completion API [1].
[1] https://docs.openstack.org/api-ref/block-storage/v3/index.html?expanded=complete-migration-of-a-volume-detail#volumes-volumes
Co-Authored-By: Lee Yarwood <lyarwood@xxxxxxxxxx>
Closes-Bug: #1943431
Change-Id: I43612714b343d98320b19b5b38264afc700790e3
** Changed in: nova
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1943431
Title:
swap ro multiattach volume, report an error VolumeNotFound
Status in OpenStack Compute (nova):
Fix Released
Bug description:
Description
===========
If a ro multiattach volume has been swaped, nova will report an error VolumeNotFound during the next swap_volume.The reason is that table bdm.connection_info records the _name_id of the volume(if it's not empty), so func self._should_disconnect_target in libvirt driver get the volume by id(from bdm connection_info) report an error VolumeNotFound.
Steps to reproduce
==================
1. I swap a multiattach volume
2. After migrated, the volume's _name_id is not empty
3. Then continue to migrate the volume
4. Report an error VolumeNotFound
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1943431/+subscriptions
References