[ 
https://issues.apache.org/jira/browse/CLOUDSTACK-1551?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13597315#comment-13597315
 ] 

Chip Childers commented on CLOUDSTACK-1551:
-------------------------------------------

Should this also be patched in 4.1?
                
> Failed to list clusters due to NPE at 
> createClusterResponse(ApiResponseHelper.java:837) when cluster is added 
> automatically as a part of addHostCommand
> -------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CLOUDSTACK-1551
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-1551
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the 
> default.) 
>          Components: API
>    Affects Versions: 4.2.0
>            Reporter: Alena Prokharchyk
>            Assignee: Bharat Kumar
>             Fix For: 4.2.0
>
>
> aa40c7ee98b36370069effb68388ba751d7dc6e5
> Steps to reproduce (faced on the fresh setup):
> 1) Added zone, pod.
> 2) Added new host with the command:
> 11:58:14,376  INFO Deploy:45 - The command 
> http://localhost:8096/?command=addHost&clustername=alenazone1&hypervisor=xenserver&password=password&podid=1&url=http%3A%2F%2F10.223.79.2&username=root&zoneid=1
>  passsed
> The cluster alenazone1 was created automatically
> 3) Tried to add storage pool to the cluster, but it failed (incorrect mount 
> path was specified in the API)
> After that listCluster command resulted in NPE:
> http://localhost:8080/client/api?command=listClusters&response=json&sessionkey=%2BJ9JQhHyFWblhnVYuWO%2BKOG6UF0%3D&page=1&pagesize=1&_=1362604226148
> INFO  [cloud.api.ApiServer] (ApiServer-4:) Invalid request, no command sent
> ERROR [cloud.api.ApiServer] (1994818910@qtp-1007211197-20:) unhandled 
> exception executing api command: listClusters
> java.lang.NullPointerException
>       at 
> com.cloud.api.ApiResponseHelper.createClusterResponse(ApiResponseHelper.java:837)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:597)
>       at 
> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319)
>       at 
> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
>       at 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
>       at 
> org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
>       at 
> com.cloud.utils.db.TransactionContextBuilder.AroundAnyMethod(TransactionContextBuilder.java:40)
>       at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:597)
>       at 
> org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
>       at 
> org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
>       at 
> org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
>       at 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>       at 
> org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
>       at 
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>       at 
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
>       at $Proxy377.createClusterResponse(Unknown Source)
>       at 
> org.apache.cloudstack.api.command.admin.cluster.ListClustersCmd.execute(ListClustersCmd.java:137)
>       at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:163)
>       at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
> "cluster_details" DB table is empty:
> mysql> select * from cluster_details;
> Empty set (0.00 sec)
> "cluster" table has an entry:
> mysql> select * from cluster;
> +----+------------+--------------------------------------+--------------------------------------+--------+----------------+-----------------+--------------+------------------+---------------+---------+-------+---------+-------------+--------------+
> | id | name       | uuid                                 | guid               
>                   | pod_id | data_center_id | hypervisor_type | cluster_type 
> | allocation_state | managed_state | removed | owner | created | lastUpdated 
> | engine_state |
> +----+------------+--------------------------------------+--------------------------------------+--------+----------------+-----------------+--------------+------------------+---------------+---------+-------+---------+-------------+--------------+
> |  1 | alenazone1 | 8858f907-731a-46b7-982e-f5fbe6fddb5d | 
> be15d332-a3a6-c4c7-32af-8185fdf31888 |      1 |              1 | xenserver    
>    | CloudManaged | Enabled          | Managed       | NULL    | NULL  | NULL 
>    | NULL        | Disabled     |
> +----+------------+--------------------------------------+--------------------------------------+--------+----------------+-----------------+--------------+------------------+---------------+---------+-------+---------+-------------+--------------+
> 1 row in set (0.00 sec)
> The only one host in the cluster is up:
> mysql> select id, name, status from host where id=2;
> +----+---------------+--------+
> | id | name          | status |
> +----+---------------+--------+
> |  2 | xenserver-min | Up     |
> +----+---------------+--------+
> 1 row in set (0.00 sec)
> NPE happened because api layer tries to retrieve cluster details assuming 
> that they are always in cluster_details table.

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

Reply via email to