Liu Shaohui created KYLIN-4021:
----------------------------------
Summary: Async Broadcast of project schema may cause creating cube
failed
Key: KYLIN-4021
URL: https://issues.apache.org/jira/browse/KYLIN-4021
Project: Kylin
Issue Type: Bug
Components: Metadata
Reporter: Liu Shaohui
In our prod cluster, we found some creating cube requests failed for the model
not found.
The problem is that users will create the cube right after creating the model
success. But the the two requests may be routed to two different servers.
When the other server receive creating cube request, the project schema may be
not updated for the async Broadcast and the server can not found the model
related to the cube.
the log at query server 1
{code:java}
kylin.log.11:2019-05-27 10:26:44,143 INFO [http-bio-7070-exec-962]
model.DataModelManager:248 : Saving Model model_k1_bb_83_uyyyyyyy3636 to
Project BigBI_Hive with bigbi_kylin as owner
kylin.log.11:2019-05-27 10:26:44,144 INFO [http-bio-7070-exec-962]
model.DataModelManager:185 : Model model_k1_bb_83_uyyyyyyy3636 is missing or
unloaded yet
kylin.log.11:2019-05-27 10:26:44,145 INFO [http-bio-7070-exec-962]
persistence.ResourceStore:309 : Update resource:
/model_desc/model_k1_bb_83_uyyyyyyy3636.json with content:{code}
and the log at query server 2
{code:java}
2019-05-27 10:26:44,296 WARN [http-bio-7070-exec-132] cube.CubeDescManager:195
: Broken cube desc CubeDesc [name=cube_b_bb_83_uyyyyyyy3636]
java.lang.NullPointerException: DateModelDesc(model_k1_bb_83_uyyyyyyy3636) not
found
at
com.google.common.base.Preconditions.checkNotNull(Preconditions.java:235)
at org.apache.kylin.cube.model.CubeDesc.init(CubeDesc.java:664)
at
org.apache.kylin.cube.CubeDescManager.createCubeDesc(CubeDescManager.java:193)
at
org.apache.kylin.rest.service.CubeService.createCubeAndDesc(CubeService.java:216)
at
org.apache.kylin.rest.service.CubeService$$FastClassBySpringCGLIB$$17a07c0e.invoke(<generated>)
at
org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at
org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at
org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:69)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
at
org.apache.kylin.rest.service.CubeService$$EnhancerBySpringCGLIB$$20946622.createCubeAndDesc(<generated>)
at
org.apache.kylin.rest.controller.CubeController.saveCubeDesc(CubeController.java:735)
at sun.reflect.GeneratedMethodAccessor341.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498){code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)