Sheng Yang created CLOUDSTACK-2315: -------------------------------------- Summary: Unable to shutdown network Key: CLOUDSTACK-2315 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-2315 Project: CloudStack Issue Type: Bug Security Level: Public (Anyone can view this level - this is the default.) Affects Versions: 4.2.0 Reporter: Sheng Yang Assignee: Harikrishna Patnala Priority: Blocker Fix For: 4.2.0
NPE got when network is being GCed: 2013-05-02 18:27:41,069 DEBUG [cloud.network.NetworkManagerImpl] (Network-Scavenger-1:null) Sending network shutdown to JuniperSRX 2013-05-02 18:27:41,079 WARN [cloud.network.NetworkManagerImpl] (Network-Scavenger-1:null) Unable to complete shutdown of the network elements due to element: JuniperSRX java.lang.NullPointerException at com.cloud.network.NetworkModelImpl.getNetworkRate(NetworkModelImpl.java:929) at com.cloud.network.ExternalFirewallDeviceManagerImpl.manageGuestNetworkWithExternalFirewall(ExternalFirewallDe viceManagerImpl.java:460) at com.cloud.network.element.JuniperSRXExternalFirewallElement.shutdown(JuniperSRXExternalFirewallElement.java:172) at com.cloud.network.NetworkManagerImpl.shutdownNetworkElementsAndResources(NetworkManagerImpl.java:2248) at com.cloud.network.NetworkManagerImpl.shutdownNetwork(NetworkManagerImpl.java:2178) at com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125) at com.cloud.network.NetworkManagerImpl$NetworkGarbageCollector.run(NetworkManagerImpl.java:2510) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722) It's caused by: 2013-05-02 18:27:41,069 DEBUG [cloud.network.NetworkManagerImpl] (Network-Scavenger-1:null) Sending network shutdown to JuniperSRX 2013-05-02 18:27:41,079 WARN [cloud.network.NetworkManagerImpl] (Network-Scavenger-1:null) Unable to complete shutdown of the network elements due to element: JuniperSRX java.lang.NullPointerException at com.cloud.network.NetworkModelImpl.getNetworkRate(NetworkModelImpl.java:929) at com.cloud.network.ExternalFirewallDeviceManagerImpl.manageGuestNetworkWithExternalFirewall(ExternalFirewallDe viceManagerImpl.java:460) at com.cloud.network.element.JuniperSRXExternalFirewallElement.shutdown(JuniperSRXExternalFirewallElement.java:172) at com.cloud.network.NetworkManagerImpl.shutdownNetworkElementsAndResources(NetworkManagerImpl.java:2248) at com.cloud.network.NetworkManagerImpl.shutdownNetwork(NetworkManagerImpl.java:2178) at com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125) at com.cloud.network.NetworkManagerImpl$NetworkGarbageCollector.run(NetworkManagerImpl.java:2510) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722) The reason is, this commit add this: @@ -921,9 +924,9 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel { } } if (isUserVmsDefaultNetwork || isDomRGuestOrPublicNetwork) { - return _configMgr.getServiceOfferingNetworkRate(vm.getServiceOfferingId()); + return _configMgr.getServiceOfferingNetworkRate(vm.getServiceOfferingId(), vm.getDataCenterId()); } else { - return _configMgr.getNetworkOfferingNetworkRate(ntwkOff.getId()); + return _configMgr.getNetworkOfferingNetworkRate(ntwkOff.getId(), vm.getDataCenterId()); } } And when you see the code, in the "else" statement, vm can be null, which would result in NPE. Then network cannot be shut down. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira