[ https://issues.apache.org/jira/browse/KYLIN-2342?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Shaofeng SHI updated KYLIN-2342: -------------------------------- Description: When some jar is missing in kylin, trigger the cube build will get error, but there is no any warn/error message in backend kylin.log; The front web page also doesn't provide much message. Finally I get the root cause in the HTTP response. The error should not be exposed to web gui; at least some trace need be left in kylin.log: Below is the error in HTTP response: {code} </pre></p><p><b>root cause</b> <pre>java.lang.NoClassDefFoundError: org/apache/kafka/clients/consumer/KafkaConsumer org.apache.kylin.source.kafka.util.KafkaClient.getKafkaConsumer(KafkaClient.java:43) org.apache.kylin.source.kafka.KafkaSource.parsePartitionBeforeBuild(KafkaSource.java:95) org.apache.kylin.rest.service.JobService.submitJob(JobService.java:216) org.apache.kylin.rest.service.JobService$$FastClassBySpringCGLIB$$83a44b2a.invoke(<generated>) org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:700) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:64) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:633) org.apache.kylin.rest.service.JobService$$EnhancerBySpringCGLIB$$afd3dab7.submitJob(<generated>) org.apache.kylin.rest.controller.CubeController.buildInternal(CubeController.java:295) org.apache.kylin.rest.controller.CubeController.rebuild(CubeController.java:287) org.apache.kylin.rest.controller.CubeController.build(CubeController.java:280) sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:606) org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:743) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:672) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:82) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:933) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:867) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:951) org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:864) javax.servlet.http.HttpServlet.service(HttpServlet.java:653) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:827) javax.servlet.http.HttpServlet.service(HttpServlet.java:731) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:91) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:209) com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244) </pre></p><p><b>note</b> <u>The full stack trace of the root cause is available in the Apache Tomcat/7.0.69 logs.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/7.0.69</h3></body></html> {code} was: When some jar is missing in kylin, trigger the cube build will get error, but there is no any warn/error message in backend kylin.log; The front web page also doesn't provide much message. Finally I get the root cause in the HTTP response. The error should not be exposed to web gui; at least some trace need be left in kylin.log: Below is the error in HTTP response: {code} </pre></p><p><b>root cause</b> <pre>java.lang.NoClassDefFoundError: org/apache/spark/api/java/function/Function org.apache.kylin.engine.spark.SparkBatchCubingJobBuilder2.createInMemCubingStep(SparkBatchCubingJobBuilder2.java:52) org.apache.kylin.engine.mr.BatchCubingJobBuilder2.build(BatchCubingJobBuilder2.java:69) org.apache.kylin.engine.spark.SparkBatchCubingEngine2.createBatchCubingJob(SparkBatchCubingEngine2.java:30) org.apache.kylin.engine.EngineFactory.createBatchCubingJob(EngineFactory.java:55) org.apache.kylin.rest.service.JobService.submitJob(JobService.java:286) org.apache.kylin.rest.service.JobService$$FastClassBySpringCGLIB$$83a44b2a.invoke(<generated>) org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:700) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:64) org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) {code} > When NoClassDefFoundError occurred in building cube, no error in kylin.log > -------------------------------------------------------------------------- > > Key: KYLIN-2342 > URL: https://issues.apache.org/jira/browse/KYLIN-2342 > Project: Kylin > Issue Type: Bug > Affects Versions: v2.0.0 > Reporter: Shaofeng SHI > Assignee: Shaofeng SHI > Fix For: v2.0.0 > > > When some jar is missing in kylin, trigger the cube build will get error, but > there is no any warn/error message in backend kylin.log; The front web page > also doesn't provide much message. Finally I get the root cause in the HTTP > response. > The error should not be exposed to web gui; at least some trace need be left > in kylin.log: > Below is the error in HTTP response: > {code} > </pre></p><p><b>root cause</b> <pre>java.lang.NoClassDefFoundError: > org/apache/kafka/clients/consumer/KafkaConsumer > > org.apache.kylin.source.kafka.util.KafkaClient.getKafkaConsumer(KafkaClient.java:43) > > org.apache.kylin.source.kafka.KafkaSource.parsePartitionBeforeBuild(KafkaSource.java:95) > org.apache.kylin.rest.service.JobService.submitJob(JobService.java:216) > > org.apache.kylin.rest.service.JobService$$FastClassBySpringCGLIB$$83a44b2a.invoke(<generated>) > org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) > > org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:700) > > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) > > org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:64) > > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) > > org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:633) > > org.apache.kylin.rest.service.JobService$$EnhancerBySpringCGLIB$$afd3dab7.submitJob(<generated>) > > org.apache.kylin.rest.controller.CubeController.buildInternal(CubeController.java:295) > > org.apache.kylin.rest.controller.CubeController.rebuild(CubeController.java:287) > > org.apache.kylin.rest.controller.CubeController.build(CubeController.java:280) > sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source) > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > java.lang.reflect.Method.invoke(Method.java:606) > > org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) > > org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) > > org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) > > org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:743) > > org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:672) > > org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:82) > > org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:933) > > org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:867) > > org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:951) > > org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:864) > javax.servlet.http.HttpServlet.service(HttpServlet.java:653) > > org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:827) > javax.servlet.http.HttpServlet.service(HttpServlet.java:731) > org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) > > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) > > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103) > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:201) > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:91) > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183) > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) > > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) > > org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) > > org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) > > org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) > > org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) > com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:209) > com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244) > </pre></p><p><b>note</b> <u>The full stack trace of the root cause is > available in the Apache Tomcat/7.0.69 logs.</u></p><HR size="1" > noshade="noshade"><h3>Apache Tomcat/7.0.69</h3></body></html> > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)