On 12/5/18 6:54 AM, Daniel P. Berrangé wrote:
On Wed, Dec 05, 2018 at 02:43:45PM +0300, mxs kolo wrote:
> Hi all
>
> After upgrade from Centos 7.5 to Centos 7.6, our test environment
> geted new version of libvirt 4.5.0
> In which our old containers have broken config and can't start:
> 2018-12-05 10:38:32.634+0000: 18010: debug :
> virLXCControllerGetNICIndexes:368 : Getting nic indexes
> 2018-12-05 10:38:32.634+0000: 18010: error :
> virLXCControllerGetNICIndexes:400 : unsupported configuration:
> Unsupported net type direct
> Failure in libvirt_lxc startup: unsupported configuration: Unsupported
> net type direct
>
> We use next section for network interface:
> <interface type='direct'>
> <mac address='02:00:21:3b:eb:e1'/>
> <source dev='eno1.710' mode='bridge'/>
> </interface>
>
> It's linux macvlan solutions and it's worked at least since libvirt
> 1.2.7 for us.
> As I can see, in version 4.1.0 and later, some changes about DIRECT
> connect was implemented.
> VIR_DOMAIN_NET_TYPE_DIRECT is still fully supported in src/lxc/lxc_driver.c
> But in src/lxc/lxc_controller.c
> --- libvirt-3.9.0/src/lxc/lxc_controller.c 2017-09-28
> 13:15:43.322712913 +0300
> +++ libvirt-4.1.0/src/lxc/lxc_controller.c 2018-02-28
> 16:21:05.158799006 +0300
> @@ -395,8 +395,14 @@
> case VIR_DOMAIN_NET_TYPE_INTERNAL:
> case VIR_DOMAIN_NET_TYPE_DIRECT:
> case VIR_DOMAIN_NET_TYPE_HOSTDEV:
> + virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> + _("Unsupported net type %s"),
> +
virDomainNetTypeToString(ctrl->def->nets[i]->type));
> + goto cleanup;
> + case VIR_DOMAIN_NET_TYPE_LAST:
> default:
> - break;
> + virReportEnumRangeError(virDomainNetType,
> ctrl->def->nets[i]->type);
> + goto cleanup;
> }
> }
>
> Since version 4.1.0 which config need be used to configure macvlan for
> lxc cointainers ?
Sorry, this looks like my screw up in the code. I mis-interpreted what
this function was doing when adding error checking and mistakenly
rejected the TYPE_DIRECT nics.
Please file a bug against libvirt for this, or send a patch if you wish
to.
Following up on this - this bug was filed:
https://bugzilla.redhat.com/show_bug.cgi?id=1656463
Since I had experienced the same problem and had a test case ready at
hand, I made a patch and pushed it. The fix will be in libvirt 5.0.0
(more details in the bug report).