live block migration of instance with vfat config drive fails

Bug #1770640 reported by Vladyslav Drok on 2018-05-11
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
High
Lee Yarwood
Ocata
High
Matt Riedemann
Pike
High
Matt Riedemann
Queens
High
Matt Riedemann
Ubuntu Cloud Archive
High
Unassigned
Ocata
High
Unassigned
Pike
High
Unassigned
Queens
High
Unassigned
Rocky
High
Unassigned
nova (Ubuntu)
High
Unassigned
Bionic
High
Unassigned
Cosmic
High
Unassigned

Bug Description

It seems like the following commit broke block live migrations of instances with vfat config drive -- https://review.openstack.org/561704. Reproduced the problem on pike with that patch backport, and I think master is affected as well.

The exception happening is:

May 10 17:01:48 cmp02 nova-compute[4443]: Traceback (most recent call last):
May 10 17:01:48 cmp02 nova-compute[4443]: File "/usr/lib/python2.7/dist-packages/eventlet/hubs/poll.py", line 115, in wait
May 10 17:01:48 cmp02 nova-compute[4443]: listener.cb(fileno)
May 10 17:01:48 cmp02 nova-compute[4443]: File "/usr/lib/python2.7/dist-packages/eventlet/greenthread.py", line 214, in main
May 10 17:01:48 cmp02 nova-compute[4443]: result = function(*args, **kwargs)
May 10 17:01:48 cmp02 nova-compute[4443]: File "/usr/lib/python2.7/dist-packages/nova/utils.py", line 1004, in context_wrapper
May 10 17:01:48 cmp02 nova-compute[4443]: return func(*args, **kwargs)
May 10 17:01:48 cmp02 nova-compute[4443]: File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 6568, in _live_migration_operation
May 10 17:01:48 cmp02 nova-compute[4443]: LOG.error("Live Migration failure: %s", e, instance=instance)
May 10 17:01:48 cmp02 nova-compute[4443]: File "/usr/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
May 10 17:01:48 cmp02 nova-compute[4443]: self.force_reraise()
May 10 17:01:48 cmp02 nova-compute[4443]: File "/usr/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
May 10 17:01:48 cmp02 nova-compute[4443]: six.reraise(self.type_, self.value, self.tb)
May 10 17:01:48 cmp02 nova-compute[4443]: File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 6562, in _live_migration_operation
May 10 17:01:48 cmp02 nova-compute[4443]: bandwidth=CONF.libvirt.live_migration_bandwidth)
May 10 17:01:48 cmp02 nova-compute[4443]: File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/guest.py", line 670, in migrate
May 10 17:01:48 cmp02 nova-compute[4443]: destination, params=params, flags=flags)
May 10 17:01:48 cmp02 nova-compute[4443]: File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 186, in doit
May 10 17:01:48 cmp02 nova-compute[4443]: result = proxy_call(self._autowrap, f, *args, **kwargs)
May 10 17:01:48 cmp02 nova-compute[4443]: File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 144, in proxy_call
May 10 17:01:48 cmp02 nova-compute[4443]: rv = execute(f, *args, **kwargs)
May 10 17:01:48 cmp02 nova-compute[4443]: File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 125, in execute
May 10 17:01:48 cmp02 nova-compute[4443]: six.reraise(c, e, tb)
May 10 17:01:48 cmp02 nova-compute[4443]: File "/usr/lib/python2.7/dist-packages/eventlet/tpool.py", line 83, in tworker
May 10 17:01:48 cmp02 nova-compute[4443]: rv = meth(*args, **kwargs)
May 10 17:01:48 cmp02 nova-compute[4443]: File "/usr/lib/python2.7/dist-packages/libvirt.py", line 1702, in migrateToURI3
May 10 17:01:48 cmp02 nova-compute[4443]: if ret == -1: raise libvirtError ('virDomainMigrateToURI3() failed', dom=self)
May 10 17:01:48 cmp02 nova-compute[4443]: libvirtError: operation failed: migration of disk vdb failed: Input/output error
May 10 17:01:48 cmp02 nova-compute[4443]: Removing descriptor: 29

(vdb is a vfat config drive)

after turning on the info logging in qemu seen the following in the syslog:

May 10 17:01:48 cmp02 libvirtd[10318]: 2018-05-10 17:01:48.204+0000: 10323: info : qemuMonitorSend:1076 : QEMU_MONITOR_SEND_MSG: mon=0x7f6fe801b920 msg={"execute":"drive-mirror","arguments":{"device":"drive-virtio-disk0","target":"nbd:10.60.0.105:49153:exportname=drive-virtio-disk0","speed":9223372036853727232,"sync":"top","mode":"existing","format":"raw"},"id":"libvirt-208"}
May 10 17:01:48 cmp02 libvirtd[10318]: fd=-1
May 10 17:01:48 cmp02 libvirtd[10318]: 2018-05-10 17:01:48.204+0000: 10318: info : qemuMonitorIOWrite:552 : QEMU_MONITOR_IO_WRITE: mon=0x7f6fe801b920 buf={"execute":"drive-mirror","arguments":{"device":"drive-virtio-disk0","target":"nbd:10.60.0.105:49153:exportname=drive-virtio-disk0","speed":9223372036853727232,"sync":"top","mode":"existing","format":"raw"},"id":"libvirt-208"}
May 10 17:01:48 cmp02 libvirtd[10318]: len=228 ret=228 errno=0
May 10 17:01:48 cmp02 libvirtd[10318]: 2018-05-10 17:01:48.296+0000: 10323: info : qemuMonitorSend:1076 : QEMU_MONITOR_SEND_MSG: mon=0x7f6fe801b920 msg={"execute":"drive-mirror","arguments":{"device":"drive-virtio-disk1","target":"nbd:10.60.0.105:49153:exportname=drive-virtio-disk1","speed":9223372036853727232,"sync":"top","mode":"existing","format":"raw"},"id":"libvirt-209"}
May 10 17:01:48 cmp02 libvirtd[10318]: fd=-1
May 10 17:01:48 cmp02 libvirtd[10318]: 2018-05-10 17:01:48.296+0000: 10318: info : qemuMonitorIOWrite:552 : QEMU_MONITOR_IO_WRITE: mon=0x7f6fe801b920 buf={"execute":"drive-mirror","arguments":{"device":"drive-virtio-disk1","target":"nbd:10.60.0.105:49153:exportname=drive-virtio-disk1","speed":9223372036853727232,"sync":"top","mode":"existing","format":"raw"},"id":"libvirt-209"}
May 10 17:01:48 cmp02 libvirtd[10318]: len=228 ret=228 errno=0
May 10 17:01:48 cmp02 libvirtd[10318]: 2018-05-10 17:01:48.388+0000: 10318: info : qemuMonitorJSONIOProcessLine:208 : QEMU_MONITOR_RECV_EVENT: mon=0x7f6fe801b920 event={"timestamp": {"seconds": 1525971708, "microseconds": 387891}, "event": "BLOCK_JOB_ERROR", "data": {"device": "drive-virtio-disk1", "operation": "write", "action": "report"}}
May 10 17:01:48 cmp02 libvirtd[10318]: 2018-05-10 17:01:48.388+0000: 10318: info : qemuMonitorJSONIOProcessLine:208 : QEMU_MONITOR_RECV_EVENT: mon=0x7f6fe801b920 event={"timestamp": {"seconds": 1525971708, "microseconds": 388730}, "event": "BLOCK_JOB_READY", "data": {"device": "drive-virtio-disk0", "len": 1507328, "offset": 1507328, "speed": 9223372036853727232, "type": "mirror"}}
May 10 17:01:48 cmp02 libvirtd[10318]: 2018-05-10 17:01:48.392+0000: 10318: info : qemuMonitorJSONIOProcessLine:208 : QEMU_MONITOR_RECV_EVENT: mon=0x7f6fe801b920 event={"timestamp": {"seconds": 1525971708, "microseconds": 392754}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "drive-virtio-disk1", "len": 67108864, "offset": 196608, "speed": 9223372036853727232, "type": "mirror", "error": "Input/output error"}}
May 10 17:01:48 cmp02 libvirtd[10318]: 2018-05-10 17:01:48.393+0000: 10318: info : qemuMonitorJSONIOProcessLine:213 : QEMU_MONITOR_RECV_REPLY: mon=0x7f6fe801b920 reply={"return": [{"io-status": "ok", "device": "drive-virtio-disk0", "busy": false, "len": 1507328, "offset": 1507328, "paused": false, "speed": 9223372036853727232, "ready": true, "type": "mirror"}], "id": "libvirt-210"}
May 10 17:01:48 cmp02 libvirtd[10318]: 2018-05-10 17:01:48.395+0000: 10323: error : qemuMigrationDriveMirrorReady:624 : operation failed: migration of disk vdb failed: Input/output error
May 10 17:01:48 cmp02 libvirtd[10318]: 2018-05-10 17:01:48.395+0000: 10323: info : qemuMonitorSend:1076 : QEMU_MONITOR_SEND_MSG: mon=0x7f6fe801b920 msg={"execute":"block-job-cancel","arguments":{"device":"drive-virtio-disk0"},"id":"libvirt-211"}
May 10 17:01:48 cmp02 libvirtd[10318]: fd=-1
May 10 17:01:48 cmp02 libvirtd[10318]: 2018-05-10 17:01:48.395+0000: 10318: info : qemuMonitorIOWrite:552 : QEMU_MONITOR_IO_WRITE: mon=0x7f6fe801b920 buf={"execute":"block-job-cancel","arguments":{"device":"drive-virtio-disk0"},"id":"libvirt-211"}
May 10 17:01:48 cmp02 libvirtd[10318]: len=95 ret=95 errno=0
May 10 17:01:48 cmp02 libvirtd[10318]: 2018-05-10 17:01:48.398+0000: 10323: info : qemuMonitorSend:1076 : QEMU_MONITOR_SEND_MSG: mon=0x7f6fe801b920 msg={"execute":"block-job-cancel","arguments":{"device":"drive-virtio-disk1"},"id":"libvirt-212"}
May 10 17:01:48 cmp02 libvirtd[10318]: fd=-1
May 10 17:01:48 cmp02 libvirtd[10318]: 2018-05-10 17:01:48.398+0000: 10318: info : qemuMonitorIOWrite:552 : QEMU_MONITOR_IO_WRITE: mon=0x7f6fe801b920 buf={"execute":"block-job-cancel","arguments":{"device":"drive-virtio-disk1"},"id":"libvirt-212"}
May 10 17:01:48 cmp02 libvirtd[10318]: len=95 ret=95 errno=0
May 10 17:01:48 cmp02 libvirtd[10318]: 2018-05-10 17:01:48.402+0000: 10318: info : qemuMonitorJSONIOProcessLine:208 : QEMU_MONITOR_RECV_EVENT: mon=0x7f6fe801b920 event={"timestamp": {"seconds": 1525971708, "microseconds": 401820}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "drive-virtio-disk0", "len": 1507328, "offset": 1507328, "speed": 9223372036853727232, "type": "mirror"}}
May 10 17:01:48 cmp02 libvirtd[10318]: 2018-05-10 17:01:48.403+0000: 10318: info : qemuMonitorJSONIOProcessLine:213 : QEMU_MONITOR_RECV_REPLY: mon=0x7f6fe801b920 reply={"id": "libvirt-212", "error": {"class": "DeviceNotActive", "desc": "Block job 'drive-virtio-disk1' not found"}}
May 10 17:01:48 cmp02 libvirtd[10318]: 2018-05-10 17:01:48.414+0000: 10318: info : qemuMonitorJSONIOProcessLine:213 : QEMU_MONITOR_RECV_REPLY: mon=0x7f6fe801b920 reply={"return": [{"device": "drive-virtio-disk0", "parent": {"stats": {"flush_total_time_ns": 0, "wr_highest_offset": 1835008, "wr_total_time_ns": 0, "failed_wr_operations": 0, "failed_rd_operations": 0, "wr_merged": 0, "wr_bytes": 0, "timed_stats": [], "failed_flush_operations": 0, "account_invalid": false, "rd_total_time_ns": 0, "flush_operations": 0, "wr_operations": 0, "rd_merged": 0, "rd_bytes": 0, "invalid_flush_operations": 0, "account_failed": false, "rd_operations": 0, "invalid_wr_operations": 0, "invalid_rd_operations": 0}, "node-name": "#block002"}, "stats": {"flush_total_time_ns": 9890804, "wr_highest_offset": 32911872, "wr_total_time_ns": 274684321, "failed_wr_operations": 0, "failed_rd_operations": 0, "wr_merged": 5, "wr_bytes": 268288, "timed_stats": [], "failed_flush_operations": 0, "account_invalid": true, "rd_total_time_ns": 182145276, "flush_operations": 22, "wr_operations": 87, "rd_merged": 7, "rd_bytes": 20611072, "invalid_flush_operations": 0, "account_failed": true, "idle_time_ns": 783247565442, "rd_operations": 912, "invalid_wr_operations": 0, "invalid_rd_operations": 0}, "backing": {"parent": {"stats": {"flush_total_time_ns": 0, "wr_highest_offset": 0, "wr_total_time_ns": 0, "failed_wr_operations": 0, "failed_rd_operations": 0, "wr_merged": 0, "wr_bytes": 0, "timed_stats": [], "failed_flush_operations": 0, "account_invalid": false, "rd_total_time_ns": 0, "flush_operations": 0, "wr_operations": 0, "rd_merged": 0, "rd_bytes": 0, "invalid_flush_operations": 0, "account_failed": false, "rd_operations": 0, "invalid_wr_operations": 0, "invalid_rd_operations": 0}, "node-name": "#block264"}, "stats": {"flush_total_time_ns": 0, "wr_highest_offset": 0, "wr_total_time_ns": 0, "failed_wr_operations": 0, "failed_rd_operations": 0, "wr_merged": 0, "wr_bytes": 0, "timed_stats": [], "failed_flush_operations": 0, "account_invalid": false, "rd_total_time_ns": 0, "flush_operations": 0,
May 10 17:01:48 cmp02 libvirtd[10318]: "wr_operations": 0, "rd_merged": 0, "rd_bytes": 0, "invalid_flush_operations": 0, "account_failed": false, "rd_operations": 0, "invalid_wr_operations": 0, "invalid_rd_operations": 0}, "node-name": "#block392"}, "node-name": "#block108"}, {"device": "drive-virtio-disk1", "parent": {"stats": {"flush_total_time_ns": 0, "wr_highest_offset": 0, "wr_total_time_ns": 0, "failed_wr_operations": 0, "failed_rd_operations": 0, "wr_merged": 0, "wr_bytes": 0, "timed_stats": [], "failed_flush_operations": 0, "account_invalid": false, "rd_total_time_ns": 0, "flush_operations": 0, "wr_operations": 0, "rd_merged": 0, "rd_bytes": 0, "invalid_flush_operations": 0, "account_failed": false, "rd_operations": 0, "invalid_wr_operations": 0, "invalid_rd_operations": 0}, "node-name": "#block458"}, "stats": {"flush_total_time_ns": 0, "wr_highest_offset": 0, "wr_total_time_ns": 0, "failed_wr_operations": 0, "failed_rd_operations": 0, "wr_merged": 0, "wr_bytes": 0, "timed_stats": [], "failed_flush_operations": 0, "account_invalid": true, "rd_total_time_ns": 50271508, "flush_operations": 0, "wr_operations": 0, "rd_merged": 8, "rd_bytes": 1889792, "invalid_flush_operations": 0, "account_failed": true, "idle_time_ns": 2412792465348, "rd_operations": 359, "invalid_wr_operations": 0, "invalid_rd_operations": 0}, "node-name": "#block543"}], "id": "libvirt-214"}
May 10 17:01:48 cmp02 libvirtd[10318]: 2018-05-10 17:01:48.823+0000: 10323: error : virNetClientProgramDispatchError:177 : migration successfully aborted
May 10 17:01:48 cmp02 libvirtd[10318]: 2018-05-10 17:01:48.845+0000: 10318: error : virNetSocketReadWire:1811 : End of file while reading data: Input/output error

It seems like qemu's drive mirror expects the full disk size to be present on dest compute, not only what is allocated.

Revert of the patch solved the issue.

Vladyslav Drok (vdrok) on 2018-05-11
description: updated
summary: - migration of instance with vfat config drive fails
+ live block migration of instance with vfat config drive fails

Fix proposed to branch: master
Review: https://review.openstack.org/567858

Changed in nova:
assignee: nobody → Vladyslav Drok (vdrok)
status: New → In Progress
Matt Riedemann (mriedem) on 2018-05-11
Changed in nova:
importance: Undecided → High
tags: added: libvirt live-migration
Changed in nova:
assignee: Vladyslav Drok (vdrok) → Lee Yarwood (lyarwood)

Change abandoned by Vladyslav Drok (<email address hidden>) on branch: master
Review: https://review.openstack.org/567858

Reviewed: https://review.openstack.org/567899
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=016986f4706e881fed16c85c8790af4d26a7c351
Submitter: Zuul
Branch: master

commit 016986f4706e881fed16c85c8790af4d26a7c351
Author: Lee Yarwood <email address hidden>
Date: Fri May 11 15:04:48 2018 +0100

    libvirt: Report the virtual size of RAW disks

    If642e51a4e186833349a8e30b04224a3687f5594 started to correctly report
    the actual size of preallocated file based disks but missed that this
    value was later used as the virtual disk size for RAW disks.

    This is an issue as nova.virt.libvirt.utils.create_image creates these
    disks as sparse files with a reported actual size much smaller than the
    virtual size. During block based LM this then results in disks
    on the destination being created with a much smaller virtual size than
    the disk should have leading to errors during the transfer.

    Closes-Bug: #1770640
    Change-Id: I464bc2b88123a012cd12213beac4b572c3c20a56

Changed in nova:
status: In Progress → Fix Released

Reviewed: https://review.openstack.org/568363
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=2dc9795a0df40c51ef3c79f99e57725db99019c0
Submitter: Zuul
Branch: stable/queens

commit 2dc9795a0df40c51ef3c79f99e57725db99019c0
Author: Lee Yarwood <email address hidden>
Date: Fri May 11 15:04:48 2018 +0100

    libvirt: Report the virtual size of RAW disks

    If642e51a4e186833349a8e30b04224a3687f5594 started to correctly report
    the actual size of preallocated file based disks but missed that this
    value was later used as the virtual disk size for RAW disks.

    This is an issue as nova.virt.libvirt.utils.create_image creates these
    disks as sparse files with a reported actual size much smaller than the
    virtual size. During block based LM this then results in disks
    on the destination being created with a much smaller virtual size than
    the disk should have leading to errors during the transfer.

    Closes-Bug: #1770640
    Change-Id: I464bc2b88123a012cd12213beac4b572c3c20a56
    (cherry picked from commit 016986f4706e881fed16c85c8790af4d26a7c351)

Reviewed: https://review.openstack.org/568369
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=938c0a745325fa73d098c6d5ddd20b2a599f9624
Submitter: Zuul
Branch: stable/pike

commit 938c0a745325fa73d098c6d5ddd20b2a599f9624
Author: Lee Yarwood <email address hidden>
Date: Fri May 11 15:04:48 2018 +0100

    libvirt: Report the virtual size of RAW disks

    If642e51a4e186833349a8e30b04224a3687f5594 started to correctly report
    the actual size of preallocated file based disks but missed that this
    value was later used as the virtual disk size for RAW disks.

    This is an issue as nova.virt.libvirt.utils.create_image creates these
    disks as sparse files with a reported actual size much smaller than the
    virtual size. During block based LM this then results in disks
    on the destination being created with a much smaller virtual size than
    the disk should have leading to errors during the transfer.

    Conflicts:
          nova/tests/unit/virt/libvirt/test_driver.py

    NOTE(mriedem): The trivial test conflict is due to not having change
    I11e329ac5f5fe4b9819fefbcc32ff1ee504fc58b in Pike.

    Closes-Bug: #1770640
    Change-Id: I464bc2b88123a012cd12213beac4b572c3c20a56
    (cherry picked from commit 016986f4706e881fed16c85c8790af4d26a7c351)
    (cherry picked from commit 2dc9795a0df40c51ef3c79f99e57725db99019c0)

This issue was fixed in the openstack/nova 17.0.5 release.

This issue was fixed in the openstack/nova 16.1.4 release.

Reviewed: https://review.openstack.org/568382
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=34f4167974868f817ece4a09ab663ce4a87d3647
Submitter: Zuul
Branch: stable/ocata

commit 34f4167974868f817ece4a09ab663ce4a87d3647
Author: Lee Yarwood <email address hidden>
Date: Fri May 11 15:04:48 2018 +0100

    libvirt: Report the virtual size of RAW disks

    If642e51a4e186833349a8e30b04224a3687f5594 started to correctly report
    the actual size of preallocated file based disks but missed that this
    value was later used as the virtual disk size for RAW disks.

    This is an issue as nova.virt.libvirt.utils.create_image creates these
    disks as sparse files with a reported actual size much smaller than the
    virtual size. During block based LM this then results in disks
    on the destination being created with a much smaller virtual size than
    the disk should have leading to errors during the transfer.

    Conflicts:
          nova/virt/libvirt/driver.py

    NOTE(mriedem): The conflict is due to not having change
    I9616a602ee0605f7f1dc1f47b6416f01895e025b in Ocata.

    Closes-Bug: #1770640
    Change-Id: I464bc2b88123a012cd12213beac4b572c3c20a56
    (cherry picked from commit 016986f4706e881fed16c85c8790af4d26a7c351)
    (cherry picked from commit 2dc9795a0df40c51ef3c79f99e57725db99019c0)
    (cherry picked from commit 938c0a745325fa73d098c6d5ddd20b2a599f9624)

This issue was fixed in the openstack/nova 18.0.0.0b2 development milestone.

This issue was fixed in the openstack/nova 15.1.3 release.

Dr. Jens Harbott (j-harbott) wrote :

FTR, this does not only affect the config drive for me, but migration of the root disk with local storage, too. (Using images_type = raw in case that matters.) Found on 16.1.2, applying https://review.openstack.org/568369 fixes the bug.

Changed in nova (Ubuntu Bionic):
importance: Undecided → High
status: New → Triaged
Changed in nova (Ubuntu Cosmic):
importance: Undecided → High
status: New → Triaged
Changed in nova (Ubuntu Cosmic):
status: Triaged → Fix Released
Corey Bryant (corey.bryant) wrote :

In Ubuntu queens, this fix is included in the 17.0.5 stable point release via https://bugs.launchpad.net/ubuntu/bionic/+source/aodh/+bug/1778747.

Corey Bryant (corey.bryant) wrote :

In Ubuntu pike, this fix is included in the 16.1.4 stable point release via https://bugs.launchpad.net/cloud-archive/+bug/1778739.

Changed in nova (Ubuntu Bionic):
status: Triaged → Fix Committed
Corey Bryant (corey.bryant) wrote :

In Ubuntu ocata, this fix is included in the 15.1.3 stable point release via https://bugs.launchpad.net/cloud-archive/+bug/1778729.

This issue was fixed in the openstack/nova 16.1.5 release.

Corey Bryant (corey.bryant) wrote :

This has been fix released for ocata, pike, queens (and bionic) in the above mentioned stable point releases.

Changed in nova (Ubuntu Bionic):
status: Fix Committed → Fix Released

Reviewed: https://review.openstack.org/567860
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=00d9a3a2e6b4fbbffca359bf36480d902ae608cd
Submitter: Zuul
Branch: master

commit 00d9a3a2e6b4fbbffca359bf36480d902ae608cd
Author: Matt Riedemann <email address hidden>
Date: Fri May 11 09:36:10 2018 -0400

    Test live migration with config drive

    Tempest live migration tests do not create the server
    with config drive so we do not, by default, have test
    coverage of live migrating an instance with a config
    drive. This change forces nova to create a config
    drive for all instances in the nova-live-migration
    job which will also run evacuate tests with a config
    drive attached.

    Change-Id: I8157b9e6e9da492a225cbb50a20f434f83a5fecb
    Related-Bug: #1770640

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers