[ 
https://issues.apache.org/jira/browse/CLOUDSTACK-5140?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13819735#comment-13819735
 ] 

Prachi Damle commented on CLOUDSTACK-5140:
------------------------------------------

Author:         Prachi Damle ([email protected])
Author date:    9 minutes ago (Mon Nov 11 17:59:49 2013 -0800)
Commit date:    8 minutes ago (Mon Nov 11 18:00:18 2013 -0800)
Commit hash:    7ba48e7c65a64497ed236d3985b4a04bd16dc2d2


CS-18506: stopped vm cant start after disable threshold has been reached

Changes:
- Do not do the stoarge capacity check for a VM having READY Volumes that are 
already present on the storagepool.

Contained in branches: 4.2
Contained in no tag

> A stopped vm cant start after disable threshold has been reached on the 
> storage pool
> ------------------------------------------------------------------------------------
>
>                 Key: CLOUDSTACK-5140
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-5140
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the 
> default.) 
>          Components: Management Server
>    Affects Versions: 4.2.0
>            Reporter: Prachi Damle
>            Assignee: Prachi Damle
>             Fix For: 4.2.1
>
>
> Incorrect primary storage allocation behaviour:
> If a datastore reaches ‘disable threshold’ a stopped VM that was already on 
> that datastore will refuse to start? Pre 4.2 thresholds were only applicable 
> at the allocation time. 
> I still see the code is present in 4.2 and master as well that can cause this 
> issue.
> Following highlighted code is what causes it:
> DeploymentPlanningMgrImpl :: findPotentialDeploymentResources () {
> ….
> if (hostCanAccessSPool(potentialHost, potentialSPool)) {
> hostCanAccessPool = true;
> if (multipleVolume)
> { List<Volume> requestVolumes = null; if 
> (volumeAllocationMap.containsKey(potentialSPool)) requestVolumes = 
> volumeAllocationMap.get(potentialSPool); else requestVolumes = new 
> ArrayList<Volume>(); requestVolumes.add(vol); if 
> (!_storageMgr.storagePoolHasEnoughSpace(requestVolumes, potentialSPool)) 
> continue; volumeAllocationMap.put(potentialSPool, requestVolumes); }
> storage.put(vol, potentialSPool);
> haveEnoughSpace = true;
> break;
> }
> …
> }
> Issue is that this check should NOT be done for a Volume that is already 
> created and exists on the pool.
> Happens with a VM having root and data volumes.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to