Description of problem: Hot plug of max memory should not be allowed in general, We hotplug memory to VM and also update max_memory value to more then is set on VM. The action failed on engine side and it write to the logs. About the update action via REST success. Version-Release number of selected component (if applicable): oVirt Engine Version: 4.1.0.3-0.0.master.20170123183440.gita89d24a.el7.centos Steps: 1. Create VM with memory of 1GB and max_memory 2GB 2. Via REST update memory to 2 GB and max_memory to 3GB REST request: <vm> <memory>2415919104</memory> <memory_policy> <max>3489660928</max> </memory_policy> </vm> Actual results: Action failed on engine and REST response is 200 OK Expected results: REST should not allow hotplug of max_memory or at least return that action failed. Additional info: Engine log: 2017-01-25 17:06:30,064+02 INFO [org.ovirt.engine.core.bll.UpdateVmCommand] (default task-13) [6d571db5-5502-4666-8a63-a33b4e0b8a8c] Running command: UpdateVmCommand internal: false. Entities affected : ID: 1b1217db-ff0a-4e98-b408-a4f71e8af776 Type: VMAction group EDIT_VM_PROPERTIES with role type USER 2017-01-25 17:06:30,065+02 WARN [org.ovirt.engine.core.utils.ObjectIdentityChecker] (default task-13) [6d571db5-5502-4666-8a63-a33b4e0b8a8c] Field 'maxMemorySizeMb' can not be updated when status is 'Up' 2017-01-25 17:06:30,065+02 WARN [org.ovirt.engine.core.utils.ObjectIdentityChecker] (default task-13) [6d571db5-5502-4666-8a63-a33b4e0b8a8c] ObjectIdentityChecker.isUpdateValid:: Not updatable field 'maxMemorySizeMb' was updated 2017-01-25 17:06:30,075+02 WARN [org.ovirt.engine.core.utils.ObjectIdentityChecker] (default task-13) [6d571db5-5502-4666-8a63-a33b4e0b8a8c] Field 'balloonEnabled' can not be updated when status is 'Up' 2017-01-25 17:06:30,075+02 WARN [org.ovirt.engine.core.utils.ObjectIdentityChecker] (default task-13) [6d571db5-5502-4666-8a63-a33b4e0b8a8c] Field 'rngDevice' can not be updated when status is 'Up' 2017-01-25 17:06:30,075+02 WARN [org.ovirt.engine.core.utils.ObjectIdentityChecker] (default task-13) [6d571db5-5502-4666-8a63-a33b4e0b8a8c] Field 'soundDeviceEnabled' can not be updated when status is 'Up' 2017-01-25 17:06:30,075+02 WARN [org.ovirt.engine.core.utils.ObjectIdentityChecker] (default task-13) [6d571db5-5502-4666-8a63-a33b4e0b8a8c] Field 'consoleEnabled' can not be updated when status is 'Up' 2017-01-25 17:06:30,077+02 WARN [org.ovirt.engine.core.utils.ObjectIdentityChecker] (default task-13) [6d571db5-5502-4666-8a63-a33b4e0b8a8c] Field 'virtioScsiEnabled' can not be updated when status is 'Up' 2017-01-25 17:06:30,077+02 WARN [org.ovirt.engine.core.utils.ObjectIdentityChecker] (default task-13) [6d571db5-5502-4666-8a63-a33b4e0b8a8c] Field 'graphicsDevices' can not be updated when status is 'Up' 2017-01-25 17:06:30,161+02 INFO [org.ovirt.engine.core.bll.HotSetAmountOfMemoryCommand] (default task-13) [40e0799e] Running command: HotSetAmountOfMemoryCommand internal: true. Entities affected : ID: 1b1217db-ff0a-4e98-b408-a4f71e8af776 Type: VMAction group EDIT_VM_PROPERTIES with role type USER 2017-01-25 17:06:30,166+02 INFO [org.ovirt.engine.core.vdsbroker.SetAmountOfMemoryVDSCommand] (default task-13) [40e0799e] START, SetAmountOfMemoryVDSCommand(HostName = host_mixed_2, Params:{runAsync='true', hostId='c1aff2cb-fb1b-440d-8439-2a623995672f', vmId='1b1217db-ff0a-4e98-b408-a4f71e8af776', memoryDevice='VmDevice:{id='VmDeviceId:{deviceId='8167c437-3883-4660-9e10-16a8e2c48639', vmId='1b1217db-ff0a-4e98-b408-a4f71e8af776'}', device='memory', type='MEMORY', bootOrder='0', specParams='[node=0, size=1280]', address='', managed='true', plugged='true', readOnly='false', deviceAlias='', customProperties='null', snapshotId='null', logicalName='null', hostDevice='null'}'}), log id: 19f410b1 2017-01-25 17:06:31,191+02 ERROR [org.ovirt.engine.core.vdsbroker.SetAmountOfMemoryVDSCommand] (default task-13) [40e0799e] Failed in 'SetAmountOfMemoryVDS' method 2017-01-25 17:06:31,204+02 ERROR [org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector] (default task-13) [40e0799e] EVENT_ID: VDS_BROKER_COMMAND_FAILURE(10,802), Correlation ID: null, Call Stack: null, Custom Event ID: -1, Message: VDSM host_mixed_2 command SetAmountOfMemoryVDS failed: unsupported configuration: Attaching memory device with size '1310720' would exceed domain's maxMemory config 2017-01-25 17:06:31,205+02 ERROR [org.ovirt.engine.core.vdsbroker.SetAmountOfMemoryVDSCommand] (default task-13) [40e0799e] Command 'SetAmountOfMemoryVDSCommand(HostName = host_mixed_2, Params:{runAsync='true', hostId='c1aff2cb-fb1b-440d-8439-2a623995672f', vmId='1b1217db-ff0a-4e98-b408-a4f71e8af776', memoryDevice='VmDevice:{id='VmDeviceId:{deviceId='8167c437-3883-4660-9e10-16a8e2c48639', vmId='1b1217db-ff0a-4e98-b408-a4f71e8af776'}', device='memory', type='MEMORY', bootOrder='0', specParams='[node=0, size=1280]', address='', managed='true', plugged='true', readOnly='false', deviceAlias='', customProperties='null', snapshotId='null', logicalName='null', hostDevice='null'}'})' execution failed: VDSGenericException: VDSErrorException: Failed to SetAmountOfMemoryVDS, error = unsupported configuration: Attaching memory device with size '1310720' would exceed domain's maxMemory config, code = 70 2017-01-25 17:06:31,205+02 INFO [org.ovirt.engine.core.vdsbroker.SetAmountOfMemoryVDSCommand] (default task-13) [40e0799e] FINISH, SetAmountOfMemoryVDSCommand, log id: 19f410b1 2017-01-25 17:06:31,222+02 ERROR [org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector] (default task-13) [40e0799e] EVENT_ID: FAILED_HOT_SET_MEMORY(2,040), Correlation ID: 40e0799e, Call Stack: null, Custom Event ID: -1, Message: Failed to hot set memory to VM golden_env_mixed_virtio_0. Underlying error message: unsupported configuration: Attaching memory device with size '1310720' would exceed domain's maxMemory config
Created attachment 1244297 [details] engine.log
This does not look like a bug - just a behavior. If you do the same from UI, the behavior should be the same. It will pass and give a message in audit log. Is it like this?
From the UI you can update the max memory, in the dialog we get inform that: Changes that require Virtual Machine restart: maxMemorySizeMb minAllocatedMem No errors found in engine log, and memory is updated.
if you want to make REST API do the NEXT_RUN than you need to add the ;next_run=true at the end. Does this do what you expect?
I will assume Comment 4 is the reason. Please feel free to reopen in case it was a real issue