-
Bug
-
Resolution: Done-Errata
-
Undefined
-
None
This bug was initially created as a copy of
Bug #2104525
I am copying this bug because:
we have discussed this at ptg in the past that currently the nutron API allows some attributes to be updated on the port that are not valid to update when the port is attached to a VM.
the vnic_type is one of them as is the device_id (the uuid of the server that the port is attached too and there can be others.
in this case the customer change the vnic type from direct to macvtap without detaching the port form the VM. in osp 13 detaching an seriov port was possible but buggy and attaching an sriov port was not supported.in 17 we now support sriov attach/detach. i suspect that is why they updated the port type in place but
this is not a valid operation and should have resulted in a 409 conflict form the neutron API as that not only could invalidate the scheduling decision by changing the resource usage, as noted in the original bug it could break the nova-comptue agent.
the original bug will be used to harden nova against this type of breakage but i am cloning this to the networking dfg to ask for an RFE or upstream bug fix to prevent updating the neutron port vnic_type and perhaps some other port updates that are only valid if the port is not attached to a vm.
Description of problem:
The port was initially created with vnic type direct and was changed with 'openstack port set --vnic-type macvtap $PORTID' after creation. The nova_compute container was restarted manually and gets into a restart loop.
Customer managed to make the change work after rebooting the compute node.
Customer wants to know if this behaviour is expected or if there's a way to do this chnage w/o rebooting the compute node.
[stack@qasite1-compute002 ~]$ sudo docker exec nova_libvirt virsh dumpxml instance-00016b53
<domain type='kvm' id='70'>
<name>instance-00016b53</name>
<uuid>4ef19e36-1af5-4a51-95d4-c50bce2236b7</uuid>
<metadata>
<nova:instance xmlns:nova="
http://openstack.org/xmlns/libvirt/nova/1.0
">
<nova:package version="17.0.13-36.el7ost"/>
<nova:name>simon-test</nova:name>
<nova:creationTime>2022-06-29 14:53:40</nova:creationTime>
<nova:flavor name="m1.tiny">
<nova:memory>512</nova:memory>
<nova:disk>1</nova:disk>
<nova:swap>0</nova:swap>
<nova:ephemeral>0</nova:ephemeral>
<nova:vcpus>1</nova:vcpus>
</nova:flavor>
<nova:owner>
<nova:user uuid="d44542c3921f44b2a56ba0539b89a64f">simon-test</nova:user>
<nova:project uuid="70d6aea90ccd4ed6bfee2451b4965508">admin</nova:project>
</nova:owner>
</nova:instance>
</metadata>
<memory unit='KiB'>524288</memory>
<currentMemory unit='KiB'>524288</currentMemory>
<vcpu placement='static' cpuset='1-17,19-35,37-53,55-71'>1</vcpu>
<cputune>
<shares>1024</shares>
</cputune>
<resource>
<partition>/machine</partition>
</resource>
<sysinfo type='smbios'>
<system>
<entry name='manufacturer'>Red Hat</entry>
<entry name='product'>OpenStack Compute</entry>
<entry name='version'>17.0.13-36.el7ost</entry>
<entry name='serial'>39373638-3935-584d-5138-333730323852</entry>
<entry name='uuid'>4ef19e36-1af5-4a51-95d4-c50bce2236b7</entry>
<entry name='family'>Virtual Machine</entry>
</system>
</sysinfo>
<os>
<type arch='x86_64' machine='pc-i440fx-rhel7.6.0'>hvm</type>
<boot dev='hd'/>
<smbios mode='sysinfo'/>
</os>
<features>
<acpi/>
<apic/>
</features>
<cpu mode='custom' match='exact' check='full'>
<model fallback='forbid'>Skylake-Server-IBRS</model>
<vendor>Intel</vendor>
<topology sockets='1' cores='1' threads='1'/>
<feature policy='require' name='ss'/>
<feature policy='require' name='hypervisor'/>
<feature policy='require' name='tsc_adjust'/>
<feature policy='require' name='clflushopt'/>
<feature policy='require' name='pku'/>
<feature policy='require' name='md-clear'/>
<feature policy='require' name='stibp'/>
<feature policy='require' name='ssbd'/>
<feature policy='require' name='ibpb'/>
</cpu>
<clock offset='utc'>
<timer name='pit' tickpolicy='delay'/>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' io='native' discard='unmap'/>
<source dev='/dev/sdd'/>
<backingStore/>
<target dev='vda' bus='virtio'/>
<serial>1d31be17-2616-4b4f-a020-cc45207e2bb6</serial>
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</disk>
<controller type='usb' index='0' model='piix3-uhci'>
<alias name='usb'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pci-root'>
<alias name='pci.0'/>
</controller>
<interface type='hostdev' managed='yes'>
<mac address='fa:16:3e:82:e0:fc'/>
<driver name='vfio'/>
<source>
<address type='pci' domain='0x0000' bus='0x37' slot='0x04' function='0x3'/>
</source>
<vlan>
<tag id='3969'/>
</vlan>
<alias name='hostdev0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</interface>
<serial type='pty'>
<source path='/dev/pts/0'/>
<log file='/var/lib/nova/instances/4ef19e36-1af5-4a51-95d4-c50bce2236b7/console.log' append='off'/>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
<alias name='serial0'/>
</serial>
<console type='pty' tty='/dev/pts/0'>
<source path='/dev/pts/0'/>
<log file='/var/lib/nova/instances/4ef19e36-1af5-4a51-95d4-c50bce2236b7/console.log' append='off'/>
<target type='serial' port='0'/>
<alias name='serial0'/>
</console>
<input type='tablet' bus='usb'>
<alias name='input0'/>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'>
<alias name='input1'/>
</input>
<input type='keyboard' bus='ps2'>
<alias name='input2'/>
</input>
<graphics type='vnc' port='5900' autoport='yes' listen='192.168.20.103' keymap='en-us'>
<listen type='address' address='192.168.20.103'/>
</graphics>
<video>
<model type='cirrus' vram='16384' heads='1' primary='yes'/>
<alias name='video0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<memballoon model='virtio'>
<stats period='10'/>
<alias name='balloon0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</memballoon>
</devices>
<seclabel type='dynamic' model='selinux' relabel='yes'>
<label>system_u:system_r:svirt_t:s0:c515,c780</label>
<imagelabel>system_u:object_r:svirt_image_t:s0:c515,c780</imagelabel>
</seclabel>
<seclabel type='dynamic' model='dac' relabel='yes'>
<label>+107:+107</label>
<imagelabel>+107:+107</imagelabel>
</seclabel>
</domain>
[stack@qasite1-compute002 ~]$
(overcloud) [stack@qasite1-director ~]$ openstack server show 4ef19e36-1af5-4a51-95d4-c50bce2236b7
---------------------------------------------------------------------------------------------+
Field | Value |
---------------------------------------------------------------------------------------------+
OS-DCF:diskConfig | AUTO |
OS-EXT-AZ:availability_zone | nova |
OS-EXT-SRV-ATTR:host | qasite1-compute002.localdomain |
OS-EXT-SRV-ATTR:hypervisor_hostname | qasite1-compute002.nfvi-r1.stratus.int.bell.ca |
OS-EXT-SRV-ATTR:instance_name | instance-00016b53 |
OS-EXT-STS:power_state | Running |
OS-EXT-STS:task_state | None |
OS-EXT-STS:vm_state | active |
OS-SRV-USG:launched_at | 2022-06-29T14:53:46.000000 |
OS-SRV-USG:terminated_at | None |
accessIPv4 | |
accessIPv6 | |
addresses | simon-sriov-0-1-test=192.168.69.2 |
config_drive | |
created | 2022-06-29T14:53:19Z |
flavor | m1.tiny (m1.tiny) |
hostId | 6040386c9879f232e873c9acf0935810eda062a4d5b1047ace63f8b4 |
id | 4ef19e36-1af5-4a51-95d4-c50bce2236b7 |
image | |
key_name | None |
name | simon-test |
progress | 0 |
project_id | 70d6aea90ccd4ed6bfee2451b4965508 |
properties | |
security_groups | name='default' |
status | ACTIVE |
updated | 2022-06-29T14:53:46Z |
user_id | d44542c3921f44b2a56ba0539b89a64f |
volumes_attached | id='1d31be17-2616-4b4f-a020-cc45207e2bb6' |
---------------------------------------------------------------------------------------------+
(overcloud) [stack@qasite1-director ~]$ openstack network show simon-sriov-0-1-test
---------------------------------------------------------------+
Field | Value |
---------------------------------------------------------------+
admin_state_up | UP |
availability_zone_hints | |
availability_zones | |
created_at | 2022-06-16T17:41:58Z |
description | |
dns_domain | None |
id | cd504b2d-fd24-4ceb-bfbc-1cc8442482ca |
ipv4_address_scope | None |
ipv6_address_scope | None |
is_default | None |
is_vlan_transparent | None |
mtu | 9000 |
name | simon-sriov-0-1-test |
port_security_enabled | True |
project_id | 70d6aea90ccd4ed6bfee2451b4965508 |
provider:network_type | vlan |
provider:physical_network | sriov-0-1 |
provider:segmentation_id | 3969 |
qos_policy_id | None |
revision_number | 5 |
router:external | Internal |
segments | None |
shared | False |
status | ACTIVE |
subnets | a2749557-7def-4d15-a312-207223d90773 |
tags | |
updated_at | 2022-06-16T17:45:10Z |
---------------------------------------------------------------+
(overcloud) [stack@qasite1-director ~]$ openstack port list --network simon-sriov-0-1-test
-------------------------------------------------------------------------------------------------------------------------------------------------------------
ID | Name | MAC Address | Fixed IP Addresses | Status |
-------------------------------------------------------------------------------------------------------------------------------------------------------------
f6c2d743-6f81-4dc8-981a-e5d55fc8a487 | simon-test-sriov-port | fa:16:3e:82:e0:fc | ip_address='192.168.69.2', subnet_id='a2749557-7def-4d15-a312-207223d90773' | ACTIVE |
-------------------------------------------------------------------------------------------------------------------------------------------------------------
(overcloud) [stack@qasite1-director ~]$ openstack port show f6c2d743-6f81-4dc8-981a-e5d55fc8a487
---------------------------------------------------------------------------------------------------------+
Field | Value |
---------------------------------------------------------------------------------------------------------+
admin_state_up | UP |
allowed_address_pairs | |
binding_host_id | qasite1-compute002.localdomain |
binding_profile | pci_slot='0000:37:04.3', pci_vendor_info='8086:154c', physical_network='sriov-0-1' |
binding_vif_details | port_filter='False', vlan='3969' |
binding_vif_type | hw_veb |
binding_vnic_type | macvtap |
created_at | 2022-06-16T18:06:11Z |
data_plane_status | None |
description | |
device_id | 4ef19e36-1af5-4a51-95d4-c50bce2236b7 |
device_owner | compute:nova |
dns_assignment | None |
dns_name | None |
extra_dhcp_opts | |
fixed_ips | ip_address='192.168.69.2', subnet_id='a2749557-7def-4d15-a312-207223d90773' |
id | f6c2d743-6f81-4dc8-981a-e5d55fc8a487 |
ip_address | None |
mac_address | fa:16:3e:82:e0:fc |
name | simon-test-sriov-port |
network_id | cd504b2d-fd24-4ceb-bfbc-1cc8442482ca |
option_name | None |
option_value | None |
port_security_enabled | True |
project_id | 70d6aea90ccd4ed6bfee2451b4965508 |
qos_policy_id | None |
revision_number | 30 |
security_group_ids | 7b7bfc8b-7676-4cc7-98bc-b61beae0bce4 |
status | ACTIVE |
subnet_id | None |
tags | |
trunk_details | None |
updated_at | 2022-06-29T14:55:38Z |
---------------------------------------------------------------------------------------------------------+
How reproducible:
Customer reproduced this in a Q&A environment.
sosreport of the compute node is attached to the support case.
- links to
-
RHBA-2024:133297 Release of components for Red Hat OpenStack Services on OpenShift 18.0