[ https://issues.apache.org/jira/browse/KYLIN-2547?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16044250#comment-16044250 ]
kangkaisen commented on KYLIN-2547: ----------------------------------- Shaofeng, Thanks very much for your review and comment. 1 I think whether or not adding lock is not related the job step; The single job engine still use ZK lock; I think this issue is the cube metadata consistency essentially, which isn't the job scheduler' responsibility. 2 Yes. I think the network isn't always reliable for http sync. 3 I don't understand this point. what's your mean is {{UpdateCubeInfoStep}} relay on {{CubeService}}? > Fix multi-process concurrence bug in UpdateCubeInfoXXStep > --------------------------------------------------------- > > Key: KYLIN-2547 > URL: https://issues.apache.org/jira/browse/KYLIN-2547 > Project: Kylin > Issue Type: Bug > Components: Metadata > Affects Versions: v2.0.0 > Reporter: kangkaisen > Assignee: kangkaisen > Priority: Minor > > There is a minor bug in "Update Cube Info" step when build a cube in > distributed env, which will make this job failed, but the next auto merge > job won't be affected and will succeed. So the cube data still is consistent > and correct. > {code:java} > Caused by: java.lang.IllegalStateException: Segments overlap: > waimai_dolphin_topic_flow_activity_expose_food_d_cube[20170405000000_20170412000000] > and > waimai_dolphin_topic_flow_activity_expose_food_d_cube[20170405000000_20170412000000] > at org.apache.kylin.cube.CubeValidator.validate(CubeValidator.java:85) > at > org.apache.kylin.cube.CubeManager.updateCubeWithRetry(CubeManager.java:359) > at > org.apache.kylin.cube.CubeManager.updateCubeWithRetry(CubeManager.java:386) > at org.apache.kylin.cube.CubeManager.updateCube(CubeManager.java:302) > at > org.apache.kylin.cube.CubeManager.mergeSegments(CubeManager.java:533) > at > org.apache.kylin.rest.service.CubeService.mergeCubeSegment(CubeService.java:635) > at > org.apache.kylin.rest.service.CubeService.updateOnNewSegmentReady(CubeService.java:587) > at > org.apache.kylin.rest.service.CubeServiceFastClassBySpringCGLIB17a07c0e.invoke() > at > org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) > at > org.springframework.aop.framework.CglibAopProxyDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:629) > at > org.apache.kylin.rest.service.CubeServiceEnhancerBySpringCGLIB$$c6fabb3f.updateOnNewSegmentReady() > at > org.apache.kylin.rest.service.CacheService.rebuildCubeCache(CacheService.java:237) > at > org.apache.kylin.rest.service.CacheService.access$000(CacheService.java:62) > at > org.apache.kylin.rest.service.CacheService$1.afterCubeUpdate(CacheService.java:86) > at org.apache.kylin.cube.CubeManager.updateCube(CubeManager.java:305) > at > org.apache.kylin.cube.CubeManager.promoteNewlyBuiltSegments(CubeManager.java:735) > at > org.apache.kylin.engine.mr.steps.UpdateCubeInfoAfterBuildStep.doWork(UpdateCubeInfoAfterBuildStep.java:62) > at > org.apache.kylin.job.execution.AbstractExecutable.execute(AbstractExecutable.java:113) > ... 6 more > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)