Skip to content

Commit e266419

Browse files
authored
server: Fix NPE while cloudstack agent failed to connect to mgt server (#4779)
* Fix NPE while cloudstack agent failed to connect to mgt server If `ramOvercommitRatio` field is missing in user_vm_details table is missing then agent throws NPE after restarting It is because in user_vm_details, there are 'cpuOvercommitRatio' for all vms, but for vms the field 'ramOvercommitRatio' is missing in the table. * code feedback
1 parent 4c88021 commit e266419

1 file changed

Lines changed: 3 additions & 5 deletions

File tree

server/src/main/java/com/cloud/capacity/CapacityManagerImpl.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -665,11 +665,9 @@ public void updateCapacityForHost(final Host host, final Map<Long, ServiceOfferi
665665
Map<String, String> vmDetails = _userVmDetailsDao.listDetailsKeyPairs(vm.getId());
666666
String vmDetailCpu = vmDetails.get("cpuOvercommitRatio");
667667
String vmDetailRam = vmDetails.get("memoryOvercommitRatio");
668-
if (vmDetailCpu != null) {
669-
//if vmDetail_cpu is not null it means it is running in a overcommited cluster.
670-
cpuOvercommitRatio = Float.parseFloat(vmDetailCpu);
671-
ramOvercommitRatio = Float.parseFloat(vmDetailRam);
672-
}
668+
// if vmDetailCpu or vmDetailRam is not null it means it is running in a overcommitted cluster.
669+
cpuOvercommitRatio = (vmDetailCpu != null) ? Float.parseFloat(vmDetailCpu) : clusterCpuOvercommitRatio;
670+
ramOvercommitRatio = (vmDetailRam != null) ? Float.parseFloat(vmDetailRam) : clusterRamOvercommitRatio;
673671
ServiceOffering so = offeringsMap.get(vm.getServiceOfferingId());
674672
if (so == null) {
675673
so = _offeringsDao.findByIdIncludingRemoved(vm.getServiceOfferingId());

0 commit comments

Comments
 (0)