Prachi Damle created CLOUDSTACK-5140:
----------------------------------------

             Summary: 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