Sorry, I could not reproduce this issue. Could you explain more the detail
steps?
I imported the sample cube and build successfully. And then disable cube,
drop cube, and drop model.
Next I unload the KYLIN_CAL_DT, and it works.
Next I load the KYLIN_CAL_DT again, it works still.


2016-12-13 21:40 GMT+08:00 Billy Liu <[email protected]>:

> Thanks Mars for the reporting. The NPE should be some kinds of bug. Will
> look into it.
>
> 2016-12-13 11:33 GMT+08:00 Mars Xu <[email protected]>:
>
>> Hello all,
>>
>>        After I test the feature of more robust approach for hive schema
>> change in version 1.6.  I have some tests as follow:
>>
>>       1. Load a fact table and a lookup table correctly ,and build a
>> model and cube depend on these two tables correctly, but it can’t be
>> loaded/unload this two tables again even though I  do nothing change to
>> their schema,just load or unload.
>>       2. Load a fact table and a lookup table correctly ,and build a
>> model and cube depend on these two tables correctly, but it can’t be
>> loaded/unload this two tables again after I rename a fact table column.
>>
>> under these two circumstances, there will print the same log in kylin.log
>> as follow, Is this also a bug or what the exact meaning of more robust
>> approach for hive schema change ?
>>
>> java.lang.NullPointerException
>>         at org.apache.kylin.cube.model.CubeDesc.getFactTableDesc(CubeDe
>> sc.java:342)
>>         at org.apache.kylin.source.hive.SchemaChecker$1.apply(SchemaChe
>> cker.java:110)
>>         at org.apache.kylin.source.hive.SchemaChecker$1.apply(SchemaChe
>> cker.java:101)
>>         at com.google.common.collect.Iterators$7.computeNext(Iterators.
>> java:702)
>>         at com.google.common.collect.AbstractIterator.tryToComputeNext(
>> AbstractIterator.java:143)
>>         at com.google.common.collect.AbstractIterator.hasNext(AbstractI
>> terator.java:138)
>>         at com.google.common.collect.ImmutableList.copyOf(ImmutableList
>> .java:267)
>>         at com.google.common.collect.ImmutableList.copyOf(ImmutableList
>> .java:223)
>>         at org.apache.kylin.source.hive.SchemaChecker.findCubeByTable(S
>> chemaChecker.java:119)
>>         at org.apache.kylin.source.hive.SchemaChecker.allowReload(Schem
>> aChecker.java:212)
>>         at org.apache.kylin.source.hive.HiveSourceTableLoader.reloadHiv
>> eTables(HiveSourceTableLoader.java:66)
>>         at org.apache.kylin.rest.service.CubeService.reloadHiveTable(Cu
>> beService.java:538)
>>         at org.apache.kylin.rest.service.CubeService$$FastClassBySpring
>> CGLIB$$17a07c0e.invoke(<generated>)
>>         at org.springframework.cglib.proxy.MethodProxy.invoke(MethodPro
>> xy.java:204)
>>         at org.springframework.aop.framework.CglibAopProxy$CglibMethodI
>> nvocation.invokeJoinpoint(CglibAopProxy.java:700)
>>         at org.springframework.aop.framework.ReflectiveMethodInvocation
>> .proceed(ReflectiveMethodInvocation.java:150)
>>         at org.springframework.security.access.intercept.aopalliance.Me
>> thodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:64)
>>         at org.springframework.aop.framework.ReflectiveMethodInvocation
>> .proceed(ReflectiveMethodInvocation.java:172)
>>         at org.springframework.aop.framework.CglibAopProxy$DynamicAdvis
>> edInterceptor.intercept(CglibAopProxy.java:633)
>>         at org.apache.kylin.rest.service.CubeService$$EnhancerBySpringC
>> GLIB$$6d92c2ca.reloadHiveTable(<generated>)
>>         at org.apache.kylin.rest.controller.TableController.loadHiveTab
>> le(TableController.java:149)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce
>> ssorImpl.java:62)
>>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe
>> thodAccessorImpl.java:43)
>>         at java.lang.reflect.Method.invoke(Method.java:497)
>>         at org.springframework.web.method.support.InvocableHandlerMetho
>> d.doInvoke(InvocableHandlerMethod.java:221)
>>         at org.springframework.web.method.support.InvocableHandlerMetho
>> d.invokeForRequest(InvocableHandlerMethod.java:136)
>>         at org.springframework.web.servlet.mvc.method.annotation.Servle
>> tInvocableHandlerMethod.invokeAndHandle(ServletInvocableHand
>> lerMethod.java:104)
>>         at org.springframework.web.servlet.mvc.method.annotation.Reques
>> tMappingHandlerAdapter.invokeHandleMethod(RequestMappingHand
>> lerAdapter.java:743)
>>         at org.springframework.web.servlet.mvc.method.annotation.Reques
>> tMappingHandlerAdapter.handleInternal(RequestMappingHandlerA
>> dapter.java:672)
>>         at org.springframework.web.servlet.mvc.method.AbstractHandlerMe
>> thodAdapter.handle(AbstractHandlerMethodAdapter.java:82)
>>         at org.springframework.web.servlet.DispatcherServlet.doDispatch
>> (DispatcherServlet.java:933)
>>         at org.springframework.web.servlet.DispatcherServlet.doService(
>> DispatcherServlet.java:867)
>>         at org.springframework.web.servlet.FrameworkServlet.processRequ
>> est(FrameworkServlet.java:951)
>>         at org.springframework.web.servlet.FrameworkServlet.doPost(
>> FrameworkServlet.java:853)
>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
>>         at org.springframework.web.servlet.FrameworkServlet.service(
>> FrameworkServlet.java:827)
>>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
>>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFi
>> lter(ApplicationFilterChain.java:303)
>>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(App
>> licationFilterChain.java:208)
>>         at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilte
>> r.java:52)
>>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFi
>> lter(ApplicationFilterChain.java:241)
>>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(App
>> licationFilterChain.java:208)
>>         at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:330)
>>         at org.springframework.security.web.access.intercept.FilterSecu
>> rityInterceptor.invoke(FilterSecurityInterceptor.java:118)
>>         at org.springframework.security.web.access.intercept.FilterSecu
>> rityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
>>         at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>>         at org.springframework.security.web.access.ExceptionTranslation
>> Filter.doFilter(ExceptionTranslationFilter.java:113)
>>         at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>>         at org.springframework.security.web.session.SessionManagementFi
>> lter.doFilter(SessionManagementFilter.java:103)
>>         at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>>         at org.springframework.security.web.authentication.AnonymousAut
>> henticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
>>         at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>>         at org.springframework.security.web.servletapi.SecurityContextH
>> olderAwareRequestFilter.doFilter(SecurityContextHolder
>> AwareRequestFilter.java:54)
>>         at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>>         at org.springframework.security.web.savedrequest.RequestCacheAw
>> areFilter.doFilter(RequestCacheAwareFilter.java:45)
>>         at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>>         at org.springframework.security.web.authentication.www.BasicAut
>> henticationFilter.doFilter(BasicAuthenticationFilter.java:150)
>>         at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>>         at org.springframework.security.web.authentication.ui.DefaultLo
>> ginPageGeneratingFilter.doFilter(DefaultLoginPageGener
>> atingFilter.java:91)
>>         at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>>         at org.springframework.security.web.authentication.AbstractAuth
>> enticationProcessingFilter.doFilter(AbstractAuthenticatio
>> nProcessingFilter.java:183)
>>         at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>>         at org.springframework.security.web.authentication.logout.Logou
>> tFilter.doFilter(LogoutFilter.java:105)
>>         at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>>         at org.springframework.security.web.context.SecurityContextPers
>> istenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
>>         at org.springframework.security.web.FilterChainProxy$VirtualFil
>> terChain.doFilter(FilterChainProxy.java:342)
>>         at org.springframework.security.web.FilterChainProxy.doFilterIn
>> ternal(FilterChainProxy.java:192)
>>         at org.springframework.security.web.FilterChainProxy.doFilter(F
>> ilterChainProxy.java:160)
>>         at org.springframework.web.filter.DelegatingFilterProxy.invokeD
>> elegate(DelegatingFilterProxy.java:343)
>>         at org.springframework.web.filter.DelegatingFilterProxy.doFilte
>> r(DelegatingFilterProxy.java:260)
>>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFi
>> lter(ApplicationFilterChain.java:241)
>>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(App
>> licationFilterChain.java:208)
>>         at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilte
>> r.java:209)
>>         at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilte
>> r.java:244)
>>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFi
>> lter(ApplicationFilterChain.java:241)
>>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(App
>> licationFilterChain.java:208)
>>         at org.apache.catalina.core.StandardWrapperValve.invoke(Standar
>> dWrapperValve.java:220)
>>         at org.apache.catalina.core.StandardContextValve.invoke(Standar
>> dContextValve.java:122)
>>         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(A
>> uthenticatorBase.java:505)
>>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHo
>> stValve.java:169)
>>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorRepo
>> rtValve.java:103)
>>         at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogVa
>> lve.java:956)
>>         at org.apache.catalina.core.StandardEngineValve.invoke(Standard
>> EngineValve.java:116)
>>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAd
>> apter.java:436)
>>         at org.apache.coyote.http11.AbstractHttp11Processor.process(Abs
>> tractHttp11Processor.java:1078)
>>         at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler
>> .process(AbstractProtocol.java:625)
>>         at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(
>> JIoEndpoint.java:316)
>>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool
>> Executor.java:1142)
>>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo
>> lExecutor.java:617)
>>         at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.
>> run(TaskThread.java:61)
>>         at java.lang.Thread.run(Thread.java:745)
>
>
>

Reply via email to