_disconnect_volume incorrectly called for multiattach volumes during post_live_migration
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Medium
|
Lee Yarwood | ||
Pike |
Fix Released
|
Medium
|
Walt Boring | ||
Queens |
Fix Committed
|
Medium
|
Lee Yarwood | ||
Rocky |
Fix Committed
|
Medium
|
Lee Yarwood |
Bug Description
Description
===========
Idc5cecffa9129d
That change however doesn't take LM into account and more specifically the call to _disconect_volume during post_live_migration at the end of the migration from the source. At this point the original instance has already moved so the call to objects.
Depending on the backend being used this call can succeed removing the connection to the volume for the remaining instance or os-brick can fail in situations where it needs to flush I/O etc from the in-use connection.
Steps to reproduce
==================
* Launch two instances attached to the same multiattach volume on the same host.
* LM one of these instances to another host.
Expected result
===============
No calls to disconnect_volume are made and the remaining instance on the host is still able to access the multi-attach volume.
Actual result
=============
A call to disconnect_volume is made and the remaining instance is unable to access the volume *or* the LM fails due to os-brick failures to disconnect the in-use volume on the host.
Environment
===========
1. Exact version of OpenStack you are running. See the following
list for all releases: http://
master
2. Which hypervisor did you use?
(For example: Libvirt + KVM, Libvirt + XEN, Hyper-V, PowerKVM, ...)
Libvirt + KVM
2. Which storage type did you use?
(For example: Ceph, LVM, GPFS, ...)
What's the version of that?
LVM/iSCSI with multipath enabled reproduces the os-brick failure.
3. Which networking type did you use?
(For example: nova-network, Neutron with OpenVSwitch, ...)
N/A
Logs & Configs
==============
# nova show testvm2
[..]
| fault | {"message": "Unexpected error while running command. |
| | Command: multipath -f 360014054a42498
| | Exit code: 1 |
| | Stdout: u'Jan 28 16:09:29 | 360014054a42498
| | Jan 28 16:09:29 | failed to remove multipath map 360014054a42498
| | File \"/usr/
| | return function(self, context, *args, **kwargs) |
| | File \"/usr/
| | migrate_data) |
| | File \"/usr/
| | self._disconnec
| | File \"/usr/
| | vol_driver.
| | File \"/usr/
| | self.connector.
| | File \"/usr/
| | result = f(*args, **kwargs) |
| | File \"/usr/
| | return f(*args, **kwargs) |
| | File \"/usr/
| | ignore_
| | File \"/usr/
| | force, exc) |
| | File \"/usr/
| | self.flush_
| | File \"/usr/
| | root_helper=
| | File \"/usr/
| | result = self.__
| | File \"/usr/
| | return execute_root(*cmd, **kwargs) |
| | File \"/usr/
| | return self.channel.
| | File \"/usr/
| | raise exc_type(
| | ", "created": "2019-01-
tags: | added: libvirt live-migration multiattach volumes |
Changed in nova: | |
importance: | Undecided → Medium |
Fix proposed to branch: master /review. openstack. org/634398
Review: https:/