Description of problem:
For a VM with max vcpu 4 sockets possible, update VM operation, via REST to 10 sockets succeeds, though the socket number was not updated actually to 10.
Version-Release number of selected component (if applicable):
ovirt-engine 3.5 - rc1
Update VM to a number of sockets larger than the maximum possible operation should fail.
hot plugging is delicate command which could fail in lots of cases and we don't fail the whole update. we just fall back to the old value.
e.g if you update both the vm name and sockets you would still see the change of name.
this is the behaviour by design.
The following event appear for sockets=10 (when max possible is 4):
"Failed to hot set number of CPUS to VM test5. Underlying error message: Cannot hot set cpus VM. There are no available running Hosts with enough cores in VM's Cluster ."
For setting sockets nubmer above 16, update VM cpu hotplug operation fail on:
"Cannot edit VM. Max number of sockets exceeded"
looks ok, 16 is the absolute max we support (so it's easy to check)
Please add feature page that the expected behaviour is that when updating with socket number larger than the VM max, the update VM operation will succeed,
and the new value will not be updated into the DB.
Roy, is this in progress for 3.5.1?
(In reply to Michal Skrivanek from comment #5)
> Roy, is this in progress for 3.5.1?
wiki updated accordingly
per Ilanit's request we should care for proper documentation. Do you expect some change in the behaviour?
sounds good to me, Ilanit, can you check the page?
In general the error documentation looks ok.
I suggest these cosmetic rephrase:
Update Vm Command - Error handling
The API to hot plug CPU is using UpdateVmCommand. Essentially, if there is a change in topology, a child Command HotSetNumberOfCpus will be called.
If the call to this child command fail, it shall *NOT* abort the parent UpdateVmCommand.
e.g - we want to update a running's VM description, and to hotplug 1 more cpu,
but the number of VM's cpus is already the maximum allowed.
1. the updated values are desctiption and numberOfSockets
2. UpdateVmCommand saves the description to DB
3. HostSetNumberOfCpus is called with new number of sockets, but fails
4. UpdateVmCommand checks for the failure and outputs an AuditLog
5. UpdateVmCommand terminates and commit changes to DB with the new description only. The old number of sockets remains unchanged
oVirt 3.5.1 has been released and since this bug is targeted 3.5.1 and in modified state, it should be included in this release.
Please re-target and move nack to modified if this assumption is not valid for this bug.
no changes need to be done.