CLOUDSTACK-4616: When system Vms fail to start when host is down , link

local Ip addresses do not get released resulting in all the link local
Ip addresses being consumed eventually.

fix ensure Nics with reservation strategy 'Start' should go through
release phase in the Nic life cycle so that release is performed before
Nic is removed to avoid resource leaks.
This commit is contained in:
Murali Reddy 2013-12-16 19:00:29 +05:30
parent e2915c6ce5
commit c6c2995231
1 changed files with 11 additions and 0 deletions

View File

@ -1517,6 +1517,17 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra
}
protected void removeNic(VirtualMachineProfile vm, NicVO nic) {
if (nic.getReservationStrategy() == Nic.ReservationStrategy.Start && nic.getState() != Nic.State.Allocated) {
// Nics with reservation strategy 'Start' should go through release phase in the Nic life cycle.
// Ensure that release is performed before Nic is to be removed to avoid resource leaks.
try {
releaseNic(vm, nic.getId());
} catch (Exception ex) {
s_logger.warn("Failed to release nic: " + nic.toString() + " as part of remove operation due to", ex );
}
}
nic.setState(Nic.State.Deallocating);
_nicDao.update(nic.getId(), nic);
NetworkVO network = _networksDao.findById(nic.getNetworkId());