MTU setting feature conflicts with minimum Qemu version

Bug #1779626 reported by Silvan Kaiser on 2018-07-02
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Undecided
Sahid Orentino

Bug Description

Afaics Nova breaks with Qemu versions newer than the minimum required version.

The change at [1] added support for setting MTU size in the libvirt settings of guests. This code checks for a minimum libvirt version 3.3.0 [2] but not for a required Qemu version.
The Nova minimum required Qemu version is 2.5 currently according to [3] (which is the latest release available with Ubuntu Xenial 16.04).
Afaics Qemu added support with release 2.9 [4] which means versions 2.5 to 2.8 of Qemu will break despite being listed as supported iiuc.
This issue broke our CIs. For verification i checked the master commit [5] which merged prior to [1] which tested ok with our CI.

The fix probably is to simply add a check for the minimum required Qemu version beside the minimum required libvirt version.

[1] https://review.openstack.org/#/c/553072/
[2] https://github.com/openstack/nova/blob/4ea64cad3fcc4897690bfb2c02d2b06d65db4dcf/nova/virt/libvirt/vif.py#L55
[3] https://wiki.openstack.org/wiki/LibvirtDistroSupportMatrix
[4] https://wiki.qemu.org/ChangeLog/2.9)
[5] https://review.openstack.org/#/c/570656/

It's not really clear why libvirt is also trying to configure host_mtu for virtio-net devices and why it returns an error if the QEMU version does not support that setting. libvirt should probably just create the tap device and configure it. Then configuring virtio-net should be a nice to have.

I'm currently discussing with community but we will have to probably provide a fix/workaround.

Changed in nova:
status: New → Confirmed

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

Changed in nova:
assignee: nobody → sahid (sahid-ferdjaoui)
status: Confirmed → In Progress
tags: added: libvirt queens-backport-potential

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

commit e2d7189f4ff7e4a2697256cf3f695327e1d71db2
Author: Sahid Orentino Ferdjaoui <email address hidden>
Date: Mon Jul 2 17:42:05 2018 +0200

    libvirt: add qemu version check when configuring mtu for network

    This adds a QEMU check when configuring MTU for ethernet and bridge
    interface types. When creating and configuring tap devices, libvirt is
    setting MTU but also configures the virtio-net devices to let it
    discovers the MTU used. This QEMU 'host_mtu' option is supported by
    QEMU version 2.9 and more.

    Closes-Bug: 1779626
    Change-Id: I55cf259c715ba129fa8479d1e8a0d11ec15aaa43
    Signed-off-by: Sahid Orentino Ferdjaoui <email address hidden>

Changed in nova:
status: In Progress → Fix Released

Reviewed: https://review.openstack.org/580188
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=509e0a030397887b9d77729f5e4a356b9fe2a24e
Submitter: Zuul
Branch: stable/queens

commit 509e0a030397887b9d77729f5e4a356b9fe2a24e
Author: Sahid Orentino Ferdjaoui <email address hidden>
Date: Mon Jul 2 17:42:05 2018 +0200

    libvirt: add qemu version check when configuring mtu for network

    This adds a QEMU check when configuring MTU for ethernet and bridge
    interface types. When creating and configuring tap devices, libvirt is
    setting MTU but also configures the virtio-net devices to let it
    discovers the MTU used. This QEMU 'host_mtu' option is supported by
    QEMU version 2.9 and more.

    Closes-Bug: 1779626
    Change-Id: I55cf259c715ba129fa8479d1e8a0d11ec15aaa43
    Signed-off-by: Sahid Orentino Ferdjaoui <email address hidden>
    (cherry picked from commit e2d7189f4ff7e4a2697256cf3f695327e1d71db2)

tags: added: in-stable-queens

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

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

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

Other bug subscribers