[
https://issues.apache.org/jira/browse/CLOUDSTACK-1881?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
edison su resolved CLOUDSTACK-1881.
-----------------------------------
Resolution: Fixed
fixed in f18a1d6f140608ba77b54fec9976ed5318495ec4
> [Upgrade 4.0 to 4.2] After upgrading from 4.0 to 4.2 the 'storage provide
> name' and 'scope' fields in the cloud.storage_pool table is left blank, due
> to which we get a NPE while doing any operation involving primary storage.
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CLOUDSTACK-1881
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-1881
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Components: Install and Setup
> Affects Versions: 4.2.0
> Environment: 4.0 to 4.2 upgrade
> Host : XEN
> Reporter: Abhinav Roy
> Assignee: edison su
> Priority: Blocker
> Fix For: 4.2.0
>
>
> After doing upgrade from 4.0 to 4.2 , if we try to restart domain router,
> ssvm or cpvm we get the following NPE
> 2013-04-01 19:43:20,808 ERROR [cloud.async.AsyncJobManagerImpl]
> (Job-Executor-4:job-30) Unexpected exception while executing
> org.apache.cloudstack.api.command.admin.router.RebootRouterCmd
> java.lang.NullPointerException
> at
> org.apache.cloudstack.storage.datastore.manager.DefaultPrimaryDataStoreProviderManagerImpl.getPrimaryDataStore(DefaultPrimaryDataStoreProviderManagerImpl.java:62)
> at
> org.apache.cloudstack.storage.datastore.DataStoreManagerImpl.getPrimaryDataStore(DataStoreManagerImpl.java:71)
> at
> com.cloud.vm.VirtualMachineManagerImpl.advanceStart(VirtualMachineManagerImpl.java:662)
> at
> com.cloud.vm.VirtualMachineManagerImpl.start(VirtualMachineManagerImpl.java:462)
> at
> com.cloud.network.router.VirtualNetworkApplianceManagerImpl.start(VirtualNetworkApplianceManagerImpl.java:2625)
> at
> com.cloud.network.router.VirtualNetworkApplianceManagerImpl.startVirtualRouter(VirtualNetworkApplianceManagerImpl.java:1834)
> at
> com.cloud.network.router.VirtualNetworkApplianceManagerImpl.startRouter(VirtualNetworkApplianceManagerImpl.java:2883)
> at
> com.cloud.network.router.VirtualNetworkApplianceManagerImpl.rebootRouter(VirtualNetworkApplianceManagerImpl.java:610)
> at
> com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
> at
> org.apache.cloudstack.api.command.admin.router.RebootRouterCmd.execute(RebootRouterCmd.java:99)
> at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:164)
> at
> com.cloud.async.AsyncJobManagerImpl$1.run(AsyncJobManagerImpl.java:437)
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:679)
> Reason :
> ===================================
> 1. In a CS 4.2 setup , when we look at the cloud.storage_pool table contents,
> we have something like this ..............
> mysql> SELECT * FROM cloud.storage_pool;
> +-----+----------+--------------------------------------+-------------------+------+----------------+--------+------------+-----------------+----------------+----------------+-----------+---------------------------+---------------------+---------+-------------+--------+---------------------+---------+
> | id | name | uuid | pool_type |
> port | data_center_id | pod_id | cluster_id | available_bytes |
> capacity_bytes | host_address | user_info | path |
> created | removed | update_time | status | storage_provider_id |
> scope |
> +-----+----------+--------------------------------------+-------------------+------+----------------+--------+------------+-----------------+----------------+----------------+-----------+---------------------------+---------------------+---------+-------------+--------+---------------------+---------+
> | 200 | xen-pri | cfc506df-7966-3f22-91c9-98b1a617ea56 | NetworkFilesystem |
> 2049 | 1 | NULL | NULL | 0 |
> 0 | 10.102.192.100 | NULL | /cpg_vol/abhinav/xen-pri | 2013-03-26
> 08:25:11 | NULL | NULL | Up | 3 | ZONE |
> | 201 | xen-pri2 | 337e7421-d2a1-3367-9786-2fd56ca55c35 | NetworkFilesystem |
> 2049 | 1 | 1 | 1 | 291308044288 |
> 879609315328 | 10.102.192.100 | NULL | /cpg_vol/abhinav/xen-pri2 |
> 2013-03-26 08:27:55 | NULL | NULL | Up | 3 |
> CLUSTER |
> +-----+----------+--------------------------------------+-------------------+------+----------------+--------+------------+-----------------+----------------+----------------+-----------+---------------------------+---------------------+---------+-------------+--------+---------------------+---------+
> 2 rows in set (0.00 sec)
> Here we see that there are 2 columns 'storage_provider_id' and 'scope' which
> define the storage provider and scope [zone, cluster, host] for any primary
> storage.
> **********************************************************************************************************************************************************************************************
> Now, lets look at the same table on an upgraded setup [4.0 to 4.2]
> mysql> SELECT * FROM cloud.storage_pool;
> +-----+----------+--------------------------------------+-------------------+------+----------------+--------+------------+-----------------+----------------+----------------+-----------+---------------------------+---------------------+---------+-------------+--------+-------------------------------------+---------+
> | id | name | uuid | pool_type |
> port | data_center_id | pod_id | cluster_id | available_bytes |
> capacity_bytes | host_address | user_info | path |
> created | removed | update_time | status | storage_provider_name
> | scope |
> +-----+----------+--------------------------------------+-------------------+------+----------------+--------+------------+-----------------+----------------+----------------+-----------+---------------------------+---------------------+---------+-------------+--------+-------------------------------------+---------+
> | 200 | xen-pri | 8ceba66c-26ab-31cc-b0c8-e31574b3fa25 | NetworkFilesystem |
> 2049 | 1 | 1 | 1 | 221016424448 |
> 879609315328 | 10.102.192.100 | NULL | /cpg_vol/abhinav/xen-pri3 |
> 2013-04-01 10:56:47 | NULL | NULL | Up | |
> |
> | 201 | xen-pri4 | 6424ea9d-4de5-3507-93fe-b2ccd082effb | NetworkFilesystem |
> 2049 | 1 | 1 | 1 | 223764348928 |
> 879609315328 | 10.102.192.100 | NULL | /cpg_vol/abhinav/xen-pri4 |
> 2013-04-02 05:22:18 | NULL | NULL | Up | ancient primary data
> store provider | CLUSTER |
> +-----+----------+--------------------------------------+-------------------+------+----------------+--------+------------+-----------------+----------------+----------------+-----------+---------------------------+---------------------+---------+-------------+--------+-------------------------------------+---------+
> 2 rows in set (0.00 sec)
> i) Again here if we take a look at the 1st entry(1st row) in this table then
> we find that first of all instead of 'storage_provider_id' we have
> 'storage_provider_name' and that field is left blank, and the 'scope' field
> also is left blank, due to which the MS is not able to get the scope of the
> primary storage and hence the NPE.
> ii) The 2nd entry in this table is for another primary storage which i added
> after upgrade and there we can see that the value for
> storage_provider_name = ancient primary data store provider
> scope = CLUSTER
> Workaround :
> =======================================================
> After upgrade if we go to the cloud DB and manually edit the fields
> 'storage_provider_name' and 'scope' to appropriate values we can get the
> setup working.
--
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