-
Bug
-
Resolution: Unresolved
-
Major
-
CNV v4.19.6
-
Quality / Stability / Reliability
-
0.42
-
False
-
-
False
-
None
-
-
Important
-
Customer Reported
-
None
Description of problem:
A VM migrated using MTV does not have threads defined in its CPU spec:
# oc get vm test-rhel-9 -o yaml |yq '.spec.template.spec.domain.cpu' cores: 1 sockets: 3 # oc get vmi test-rhel-9 -o yaml |yq '.spec.domain.cpu' cores: 1 maxSockets: 12 model: host-model sockets: 3
Following is the topology in dumpxml:
# oc exec virt-launcher-test-rhel-9-pc8xm -- virsh -r dumpxml 1|grep -i topology <topology sockets='12' dies='1' clusters='1' cores='1' threads='1'/>
Hot plugging CPU to this VM is not working, since it also adds "threads" to the VM spec and marks the VM as "RestartRequired".
# oc get vm test-rhel-9 -o yaml |yq '.spec.template.spec.domain.cpu,.status.conditions[3]' cores: 1 sockets: 4 threads: 1 lastProbeTime: null lastTransitionTime: "2025-10-02T14:46:46Z" message: a non-live-updatable field was changed in the template spec status: "True" type: RestartRequired
For the same VM, hotplug works if I edit the VM spec directly and only increase the socket value.
Version-Release number of selected component (if applicable):
OpenShift Virtualization 4.19.6 (also reproduced in 4.18)
How reproducible:
100%
Steps to Reproduce:
1. Either migrate a VM from VMware using MTV or create a new VM from a template and remove the "threads" from the cpu. 2. Start the VM. 3. Try to hotplug CPU to the VM from the UI. It will fail and console will show the pending change "a non-live-updatable field was changed in the template spec"
Actual results:
The issue affects all VMs migrated from VMware to OpenShift Virtualization where we cannot hotplug CPU since they don't have "cpu.threads" in the VM spec.
Expected results:
If we are not passing "threads" in the spec, it is by default considering the thread as 1. During hotplug,I think it shouldn't add the thread in the VM spec and should only increment the socket value.
Additional info: