[ https://issues.apache.org/jira/browse/KYLIN-1022?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Shaofeng SHI closed KYLIN-1022. ------------------------------- > Error in CubeDesc update when delete lookup table > ------------------------------------------------- > > Key: KYLIN-1022 > URL: https://issues.apache.org/jira/browse/KYLIN-1022 > Project: Kylin > Issue Type: Bug > Components: Metadata > Affects Versions: v1.0 > Reporter: Xiaoyu Wang > Assignee: Shaofeng SHI > Attachments: > KYLIN-1022-Error-in-CubeDesc-update-when-delete-look.patch > > > I create a cube with a fact table and a lookup table . > When modify the cube delete the lookup table leave the fact table and the > fact table dimensions.The updateCubeAndDesc function throw exception: > {noformat} > [http-bio-7070-exec-7]:[2015-09-10 > 17:10:55,357][ERROR][org.apache.kylin.cube.CubeDescManager.reloadAllCubeDesc(CubeDescManager.java:202)] > - Error loading cube desc /cube_desc/test.json > java.lang.IllegalStateException: Derived can only be defined on lookup table, > cube CubeDesc [name=test], DimensionDesc [name=DEFAULT.KYLIN_SALES_DERIVED, > join=null, hierarchy=null, table=DEFAULT.KYLIN_SALES, column=null, > derived=[LSTG_FORMAT_NAME]] > at > org.apache.kylin.cube.model.DimensionDesc.init(DimensionDesc.java:113) > at org.apache.kylin.cube.model.CubeDesc.init(CubeDesc.java:446) > at > org.apache.kylin.cube.CubeDescManager.loadCubeDesc(CubeDescManager.java:129) > at > org.apache.kylin.cube.CubeDescManager.reloadAllCubeDesc(CubeDescManager.java:200) > at org.apache.kylin.cube.CubeDescManager.<init>(CubeDescManager.java:93) > at > org.apache.kylin.cube.CubeDescManager.getInstance(CubeDescManager.java:73) > at > org.apache.kylin.cube.CubeInstance.getDescriptor(CubeInstance.java:121) > at > org.apache.kylin.rest.service.CubeService.updateCubeAndDesc(CubeService.java:238) > at > org.apache.kylin.rest.service.CubeService$$FastClassByCGLIB$$17a07c0e.invoke(<generated>) > at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) > at > org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) > at > org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:64) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) > at > org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622) > at > org.apache.kylin.rest.service.CubeService$$EnhancerByCGLIB$$99dab573.updateCubeAndDesc(<generated>) > at > org.apache.kylin.rest.controller.CubeController.updateCubeDesc(CubeController.java:401) > {noformat} > The reason is when update the CubeDesc,first update the DataModel and trigger > clean cache.the DataModel is new doesn't contains lookup tables, > then update the CubeDesc. > Before update CubeDesc, all the CubeDesc's cache in CubeDescManager will > reload and the test cube's DimensionDesc check the attribute "join" and > "derived" is not match. > I try to delete the check and add the attribute "join" null check.It works! > Please review the patch and discuss the issue and patch. -- This message was sent by Atlassian JIRA (v6.4.14#64029)