[SRU] Cannot create 1vcpu instance with multiqueue image, vif_type=tap (calico)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Medium
|
Rodrigo Barbieri | ||
Ussuri |
Fix Released
|
Undecided
|
Unassigned | ||
Victoria |
Fix Released
|
Undecided
|
Unassigned | ||
Wallaby |
Fix Released
|
Undecided
|
Unassigned | ||
Ubuntu Cloud Archive |
Fix Released
|
Undecided
|
Unassigned | ||
Ussuri |
Fix Released
|
Medium
|
Unassigned | ||
Victoria |
Fix Released
|
Medium
|
Unassigned | ||
Wallaby |
Fix Released
|
Medium
|
Unassigned | ||
nova (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Medium
|
Unassigned | ||
Hirsute |
Fix Released
|
Medium
|
Unassigned |
Bug Description
Tested on stable/wallaby
Fix for bug #1893263, in which it enabled vif_type=tap (calico use case) devices to support multiqueue in nova, also caused a regression where now when creating the instances with multiqueue, if using a flavor with only VCPU, it fails with the error below in the logs.
This problem can easily be avoided by not using 1VCPUs flavors with multiqueue images (because they wouldn't make sense anyway), and therefore using non-multiqueue images when the flavor is 1VCPU, but provides a bad user experience: Users shouldn't need to be concerned about flavor+image combinations
Steps to reproduce are the same as #1893263 but using a 1VCPU flavor + multiqueue metadata on images
21-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
2021-08-11 17:36:44.317 376565 ERROR nova.compute.
=======
SRU template below:
[Impact]
Impact only for very specific use case of calico plugin + 1vcpu flavor + multiqueue-enabled images. Workaround can avoid the issue but user experience becomes suboptimal.
[Test case]
1. Setting up env
1a. Deploy environment
1b. Install calico plugin as per [0]
1c. Setup SSH
ssh-keygen
1d. Create keypair for testing
openstack keypair create key1 --public-key ~/.ssh/id_rsa.pub
1e. Create test flavors
openstack flavor create --vcpu 1 --ram 1024 --disk 10 --public --id 10 test_flavor1
openstack flavor create --vcpu 2 --ram 1024 --disk 10 --public --id 10 test_flavor2
1f. Download an example image
wget https:/
1g. Create image in glance with multiqueue metadata
openstack image create bionic-mq --file bionic-
1h. Create instance with multiqueue + test_flavor2. Make sure instance creation and connectivity succeeds.
openstack server create --network calico --flavor test_flavor2 --image bionic-mq --key-name key1 mq2vcpu
2. Reproducing the bug
2a. Create instance with multiqueue + test_flavor1
openstack server create --network calico --flavor test_flavor1 --image bionic-mq --key-name key1 mq1vcpu
Instance creation will fail
2b. Check logs for error
egrep "libvirt.
3. Cleanup
3a. Delete instances "mq2vcpu" and "mq1vcpu"
4. Install package that contains the fixed code
5. Repeat step 2a. 2a should now succeed.
[Regression Potential]
Looking at the code which is just 1 line, the behavior previous to fix of #1893263 is restored in case vcpus=1. The only change in behavior introduced by this change is when vcpus=1 and affect only calico users.
[Other Info]
None
[0] https:/
Related branches
- Chris MacNaughton: Pending requested
-
Diff: 191 lines (+169/-0)3 files modifieddebian/changelog (+7/-0)
debian/patches/lp1939604.patch (+161/-0)
debian/patches/series (+1/-0)
- Chris MacNaughton: Pending requested
-
Diff: 190 lines (+168/-0)3 files modifieddebian/changelog (+7/-0)
debian/patches/lp1939604.patch (+160/-0)
debian/patches/series (+1/-0)
- Chris MacNaughton: Pending requested
-
Diff: 196 lines (+174/-0)3 files modifieddebian/changelog (+7/-0)
debian/patches/lp1939604.patch (+166/-0)
debian/patches/series (+1/-0)
summary: |
- Cannot create instance with multiqueue image, vif_type=tap (calico) and - 1vcpu flavor + Cannot create 1vcpu instance with multiqueue image, vif_type=tap + (calico) |
tags: | added: sts |
description: | updated |
summary: |
- Cannot create 1vcpu instance with multiqueue image, vif_type=tap + [SRU] Cannot create 1vcpu instance with multiqueue image, vif_type=tap (calico) |
Changed in nova (Ubuntu Focal): | |
status: | Triaged → Fix Released |
Changed in nova (Ubuntu Hirsute): | |
status: | Triaged → Fix Released |
I set it to medium importance because of bad user experience