cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject [1/2] git commit: updated refs/heads/master to 102331c
Date Mon, 25 Nov 2013 10:40:56 GMT
Updated Branches:
  refs/heads/master 0be4a685e -> 102331c62

CLOUDSTACK-5122. [VMware] During upgrade from 4.1 system vms don't come up with 'ROOT-x-y
VMDK file not found' exception.
During VM start, if VM already exists and CS finds a matching disk in storage for each of
the existing disk then the VM is reconfigured with VM's existing disk information. This existing
disk information for a VM is got from vCenter.
CS checks if a matching disk exists in storage by checking if there is a disk in storage whose
name atleast partially matches with the name of the existing disk.
Post 4.1, Volume path has been changed to ROOT-<instanceId> from ROOT-<instanceId>-<volumeId>.
Hence in case of an upgraded setup (pre 4.1 to 4.2) during search for an existing disk in
storage even though ROOT-<instanceId>-<volumeId> has been deleted, CS does a postive
match of the old existing disk because of the partial match with the new disk ROOT-<instanceId>
that exists in storage. And so when VM is being powered on by vCenter it looks for ROOT-<instanceId>-<volumeId>
and fails to power on.
Solution - While looking for a VM's matching disk in storage, instead of checking if a disk
with a partial match exists check if a disk with the exact name exists.


Branch: refs/heads/master
Commit: 29c36b2ad20a65085f76f529a0e0007c99310489
Parents: 0be4a68
Author: Likitha Shetty <>
Authored: Fri Nov 22 16:43:17 2013 +0530
Committer: Likitha Shetty <>
Committed: Mon Nov 25 15:52:24 2013 +0530

 .../cloud/hypervisor/vmware/mo/  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/vmware-base/src/com/cloud/hypervisor/vmware/mo/
index baddfc0..9e9fa89 100644
--- a/vmware-base/src/com/cloud/hypervisor/vmware/mo/
+++ b/vmware-base/src/com/cloud/hypervisor/vmware/mo/
@@ -88,7 +88,7 @@ public class VirtualMachineDiskInfoBuilder {
         for (String backing : chain) {
             DatastoreFile file = new DatastoreFile(backing);
-            if (file.getFileBaseName().contains(diskBackingFileBaseName))
+            if (file.getFileBaseName().equals(diskBackingFileBaseName))
                 return true;

View raw message