Bug 1282217

Summary: No error is issued when updating amount of pre started vms for a pool to an amount which cluster's hosts has no memory for
Product: [oVirt] ovirt-engine Reporter: sefi litmanovich <slitmano>
Component: BLL.VirtAssignee: bugs <bugs>
Status: CLOSED DEFERRED QA Contact: sefi litmanovich <slitmano>
Severity: low Docs Contact:
Priority: low    
Version: 3.6.0.2CC: bugs, mgoldboi, michal.skrivanek
Target Milestone: ---Flags: rule-engine: ovirt-4.2?
slitmano: planning_ack?
slitmano: devel_ack?
slitmano: testing_ack?
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-09-04 11:56:35 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Virt RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
engine log none

Description sefi litmanovich 2015-11-15 15:47:15 UTC
Created attachment 1094491 [details]
engine log

Description of problem:

When updating the amount of pre started VMs of a pool, to an amount which will require more memory than the host has, not all the VMs will go up and there will be no error issued in audit log and in engine.log.
In engine.log there's only INFO messages:

2015-11-15 17:00:36,136 INFO  [org.ovirt.engine.core.bll.VmPoolMonitor] (DefaultQuartzScheduler_Worker-45) [] VmPool '2d669f40-4fb4-4e7e-8460-6a4aade30464' is missing 1 prestarted Vms, attempting to prestart 1 Vms
2015-11-15 17:00:36,217 INFO  [org.ovirt.engine.core.vdsbroker.IsVmDuringInitiatingVDSCommand] (DefaultQuartzScheduler_Worker-45) [] START, IsVmDuringInitiatingVDSCommand( IsVmDuringInitiatingVDSCommandParameters:{runAsync='true', vmId='9c5784de-8294-45e9-a109-67c5e8547b0b'}), log id: 6b4e0e76
2015-11-15 17:00:36,217 INFO  [org.ovirt.engine.core.vdsbroker.IsVmDuringInitiatingVDSCommand] (DefaultQuartzScheduler_Worker-45) [] FINISH, IsVmDuringInitiatingVDSCommand, return: false, log id: 6b4e0e76
2015-11-15 17:00:36,228 INFO  [org.ovirt.engine.core.bll.scheduling.SchedulingManager] (DefaultQuartzScheduler_Worker-45) [] Candidate host 'host_mixed_3' ('f44b4375-9794-4ec2-9c80-8fa7c2fe83f3') was filtered out by 'VAR__FILTERTYPE__INTERNAL' filter 'Memory' (correlation id: null)

important notes:

1.When attempting to run a VM manually in this case (host has not enough memory) an informative 'Failed Operation' window pops up as expected.

2. If the initial setting of pre started VMs would exceed the available host memory an error will be issued regarding the 1st VM that fails to start e.g:
"Failed to complete starting of VM {vm_name}."
This might also be a non sufficient behaviour as I would think that it would be nice if user would be informed that there's not enough memory on the host (like he's informed if he tries to start a VM manually) and that x remaining pre started VMs cannot be started --> if this should be a separate bug let me know and I'll open it.
I would also automatically set the pre started VMs amount to the maximum possible but this is not a must I guess.



Version-Release number of selected component (if applicable):

rhevm-3.6.0.3-0.1.el6.noarch

How reproducible:
always

Steps to Reproduce:
1. Create a VM pool with ({host_available_memory}/1024MB + 1) VMs (each 1024MB).
2. Edit pool and set the number of pre started VMs to some value lower than threshold e.g. if host has 8GB set 7 pre started VMs .
3. After all the VMs started edit pool again and change the value to the maximum amount (the number of all vms in pool).

Actual results:

Not all VMs are started, no error message or warning is issued and user has no idea why the VMs aren't running.
in engine.log no ERROR can be found.

Expected results:

few options available here:

1. at first place when defining X pre started VMs engine will check capabilities and policies of the cluster and in case they do not allow that amount of VMs issue the warning upon pool update just like the message user gets when trying to run a VM which cannot run.

2. during iteration over VMs when attempting to start them, upon a VM that cannot start issue an error for the VM start action and issue a warning regarding the limited capabilities.



Additional info:

Comment 1 Michal Skrivanek 2016-01-29 12:55:02 UTC
the retry logic in VmPoolMonitor seems not to be working correctly

Comment 2 Moran Goldboim 2016-03-24 09:41:46 UTC
postponing for future version.
needs to be considered use-case as part of a bigger capacity planing mechanism solution for cluster level.

Comment 3 Red Hat Bugzilla Rules Engine 2016-03-24 09:41:49 UTC
Bug tickets must have version flags set prior to targeting them to a release. Please ask maintainer to set the correct version flags and only then set the target milestone.

Comment 4 Michal Skrivanek 2016-12-21 09:08:09 UTC
The bug was not addressed in time for 4.1. Postponing to 4.2

Comment 6 Michal Skrivanek 2017-09-04 11:56:35 UTC
we didn't get to this for almost 2 years, closing
If you feel it's important feel free to reopen