[ https://issues.apache.org/jira/browse/KYLIN-3629?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Shaofeng SHI updated KYLIN-3629: -------------------------------- Fix Version/s: v2.5.1 > NullPointException throws when use preparedStatement cache in some case > ----------------------------------------------------------------------- > > Key: KYLIN-3629 > URL: https://issues.apache.org/jira/browse/KYLIN-3629 > Project: Kylin > Issue Type: Bug > Components: Query Engine > Reporter: Ma Gang > Assignee: Ma Gang > Priority: Major > Fix For: v2.5.1 > > Attachments: KYLIN-3629.patch > > > NullPointException throws when use preparedStatement cache in some case that > there is no realization exists in the OLAPContext, for example the following > sql request will cause issue: > {color:#205081}{"sql":"select t1.lstg_site_id,t1.seller_id, count(1) from > (select lstg_site_id,seller_id,count(1) from TEST_KYLIN_FACT where > lstg_site_id=? and seller_id=? group by lstg_site_id,seller_id) t1 left join > (select lstg_site_id,seller_id,count(1) from TEST_KYLIN_FACT where > lstg_site_id=? and seller_id=? group by lstg_site_id,seller_id) t2 on > t1.lstg_site_id = t2.lstg_site_id group by > t1.lstg_site_id,t1.seller_id","offset":0,"limit":50000,"params":[\{"className":"java.lang.Integer","value":"100"},\{"className":"java.lang.Integer","value":"10000731"},\{"className":"java.lang.Integer","value":"100"},\{"className":"java.lang.Integer","value":"10000732"}],"acceptPartial":true,"project":"default","backdoorToggles": > {}}{color} > the exception stacktrace is like: > {color:#205081}org.apache.kylin.rest.exception.InternalErrorException: > Unknown error.\n\tat > org.apache.kylin.rest.service.QueryService.doQueryWithCache(QueryService.java:424)\n\tat > > org.apache.kylin.rest.service.QueryService.doQueryWithCache(QueryService.java:351)\n\tat > > org.apache.kylin.rest.controller.QueryController.query(QueryController.java:86)\n\tat > sun.reflect.GeneratedMethodAccessor155.invoke(Unknown Source)\n\tat > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat > java.lang.reflect.Method.invoke(Method.java:498)\n\tat > org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)\n\tat > > org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)\n\tat > > org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)\n\tat > > org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)\n\tat > > org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)\n\tat > > org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)\n\tat > > org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)\n\tat > > org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)\n\tat > > org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)\n\tat > > org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)\n\tat > javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\n\tat > org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)\n\tat > javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\n\tat > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n\tat > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat > org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n\tat > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n\tat > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n\tat > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)\n\tat > > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)\n\tat > > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)\n\tat > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)\n\tat > > org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:114)\n\tat > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)\n\tat > > org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)\n\tat > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)\n\tat > > org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)\n\tat > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)\n\tat > > org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170)\n\tat > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)\n\tat > > org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\n\tat > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)\n\tat > > org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:215)\n\tat > > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n\tat > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)\n\tat > > org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)\n\tat > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)\n\tat > > org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)\n\tat > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)\n\tat > > org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)\n\tat > > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n\tat > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)\n\tat > > org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)\n\tat > > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n\tat > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)\n\tat > > org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)\n\tat > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)\n\tat > > org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)\n\tat > > org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)\n\tat > > org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)\n\tat > > org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)\n\tat > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193){color} > one workaround is setting the "enableStatementCache" field to false in the > sql request. > -- This message was sent by Atlassian JIRA (v7.6.3#76005)