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

zhaoyunjiong commented on KYLIN-1464:
-------------------------------------

Comments from Hao chen via email:

A few additional comments:
1) In REST api response, if the exception message is null like NPE, we'd
better display the exception class, otherwise kylin user have to
investigate the root cause from log.
2) Control the cube metadata during creation is a good approach, but may we
disable the invalid cube or mark the cube status as invalid instead of
influencing all the other cubes while having problem with single cube? The
invalid cube status may be caused because metadata is bad, hbase is
unstable, underly hbase table/region is not found or inconsistent and so on.


> org.apache.kylin.cube.CubeInstance.getDataModelDesc throw 
> java.lang.NullPointerException
> ----------------------------------------------------------------------------------------
>
>                 Key: KYLIN-1464
>                 URL: https://issues.apache.org/jira/browse/KYLIN-1464
>             Project: Kylin
>          Issue Type: Bug
>            Reporter: zhaoyunjiong
>            Assignee: zhaoyunjiong
>         Attachments: KYLIN-1464.patch
>
>
> User report can't see models from Web UI.
> After I check log, I found java.lang.NullPointerException
> {quote}
> 2016-03-02 08:06:59,645 ERROR [http-bio-7070-exec-22] 
> controller.BasicController:44 :
> java.lang.NullPointerException
>         at 
> org.apache.kylin.cube.CubeInstance.getDataModelDesc(CubeInstance.java:128)
>         at 
> org.apache.kylin.metadata.MetadataManager.getModels(MetadataManager.java:326)
>         at 
> org.apache.kylin.rest.service.ModelService.listAllModels(ModelService.java:55)
>         at 
> org.apache.kylin.rest.service.ModelService.getModels(ModelService.java:74)
>         at 
> org.apache.kylin.rest.service.ModelService$$FastClassByCGLIB$$eb0205be.invoke(<generated>)
>         at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
>         at 
> org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:618)
>         at 
> org.apache.kylin.rest.service.ModelService$$EnhancerByCGLIB$$2e750d6d.getModels(<generated>)
>         at 
> org.apache.kylin.rest.controller.ModelController.getModels(ModelController.java:71)
>         at sun.reflect.GeneratedMethodAccessor164.invoke(Unknown Source)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:606)
>         at 
> org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
>         at 
> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
>         at 
> org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
>         at 
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
>         at 
> org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
>         at 
> org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
>         at 
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
>         at 
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
>         at 
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
> {quote}
> And before that we can see from log why it happens.
> {quote}
> 2016-03-02 08:06:59,238 INFO  [http-bio-7070-exec-22] 
> cube.CubeDescManager:197 : Reloading Cube Metadata from folder 
> _kylin_metadata_qa2(key='/cube_desc')@_kylin_metadata_qa2@hbase
> 2016-03-02 08:06:59,632 ERROR [http-bio-7070-exec-22] 
> cube.CubeDescManager:207 : Error loading cube desc /cube_desc/test4.json
> java.lang.IllegalStateException: Derived can only be defined on lookup table, 
> cube CubeDesc [name=test4], DimensionDesc 
> [name=DEFAULT.SLNG_CATEG_META_LVL2_DERIVED, join=null, hierarchy=null, 
> table=DEFAULT.SLNG_CATEG_META_LVL2, column=null, derived=[CATEG_LVL2_NAME, 
> META_CATEG_NAME]]
>         at 
> org.apache.kylin.cube.model.DimensionDesc.init(DimensionDesc.java:111)
>         at org.apache.kylin.cube.model.CubeDesc.init(CubeDesc.java:461)
>         at 
> org.apache.kylin.cube.CubeDescManager.loadCubeDesc(CubeDescManager.java:134)
>         at 
> org.apache.kylin.cube.CubeDescManager.reloadAllCubeDesc(CubeDescManager.java:205)
>         at 
> org.apache.kylin.cube.CubeDescManager.<init>(CubeDescManager.java:94)
>         at 
> org.apache.kylin.cube.CubeDescManager.getInstance(CubeDescManager.java:74)
>         at 
> org.apache.kylin.cube.CubeInstance.getDescriptor(CubeInstance.java:123)
>         at 
> org.apache.kylin.cube.CubeInstance.getDataModelDesc(CubeInstance.java:128)
>         at 
> org.apache.kylin.metadata.MetadataManager.getModels(MetadataManager.java:326)
>         at 
> org.apache.kylin.rest.service.ModelService.listAllModels(ModelService.java:55)
>         at 
> org.apache.kylin.rest.service.ModelService.getModels(ModelService.java:74)
>         at 
> org.apache.kylin.rest.service.ModelService$$FastClassByCGLIB$$eb0205be.invoke(<generated>)
>         at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
>         at 
> org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:618)
>         at 
> org.apache.kylin.rest.service.ModelService$$EnhancerByCGLIB$$2e750d6d.getModels(<generated>)
>         at 
> org.apache.kylin.rest.controller.ModelController.getModels(ModelController.java:71)
>         at sun.reflect.GeneratedMethodAccessor164.invoke(Unknown Source)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:606)
>         at 
> org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
>         at 
> org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:
> {quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to