You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "Sheng Yang (JIRA)" <ji...@apache.org> on 2013/05/03 03:37:13 UTC

[jira] [Updated] (CLOUDSTACK-2315) Unable to shutdown network

     [ https://issues.apache.org/jira/browse/CLOUDSTACK-2315?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sheng Yang updated CLOUDSTACK-2315:
-----------------------------------

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

commit deaf9106ca557a938edf25bee65cf6b4eb3ac03f
Author: Harikrishna Patnala <ha...@citrix.com>
Date:   Mon Apr 29 14:11:51 2013 +0530

    CLOUDSTACK-741: Granular Global Parameters and adding fixes for CLOUDSTACK-2176, CLOUDSTACK-2198, CLOUDSTACK-2200
    
    Adding the zone, cluster, account level parameters
    The parameters at scope (zone/cluster/pool/account) can be updated by updateConfiguration API with additional parameter zoneid/clusterid/accountid/storagepoolid
    Whenever these scoped parameters are used in CS they get value from the corresponding details table if not defined get value from global parameter.
    Same with the listConfiguration API with additional parameter zoneid/clusterid/accountid/storagepoolid

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.


  was:
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.


    
> 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:
> commit deaf9106ca557a938edf25bee65cf6b4eb3ac03f
> Author: Harikrishna Patnala <ha...@citrix.com>
> Date:   Mon Apr 29 14:11:51 2013 +0530
>     CLOUDSTACK-741: Granular Global Parameters and adding fixes for CLOUDSTACK-2176, CLOUDSTACK-2198, CLOUDSTACK-2200
>     
>     Adding the zone, cluster, account level parameters
>     The parameters at scope (zone/cluster/pool/account) can be updated by updateConfiguration API with additional parameter zoneid/clusterid/accountid/storagepoolid
>     Whenever these scoped parameters are used in CS they get value from the corresponding details table if not defined get value from global parameter.
>     Same with the listConfiguration API with additional parameter zoneid/clusterid/accountid/storagepoolid
> 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