You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kylin.apache.org by "Yaqian Zhang (Jira)" <ji...@apache.org> on 2020/04/27 12:16:00 UTC

[jira] [Commented] (KYLIN-3947) TS conflict when kylin update metadata in JDBC (MySQL)

    [ https://issues.apache.org/jira/browse/KYLIN-3947?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17093420#comment-17093420 ] 

Yaqian Zhang commented on KYLIN-3947:
-------------------------------------

Hi:
According to the PR of  KYLIN-3562, this problem should have been fixed, no matter what type of metadata it is.
Do you often encounter this problem?

> TS conflict when kylin update metadata in JDBC (MySQL)
> ------------------------------------------------------
>
>                 Key: KYLIN-3947
>                 URL: https://issues.apache.org/jira/browse/KYLIN-3947
>             Project: Kylin
>          Issue Type: Bug
>          Components: Security
>    Affects Versions: v2.6.1
>            Reporter: Iñigo Martinez
>            Assignee: Yaqian Zhang
>            Priority: Major
>             Fix For: v3.1.0
>
>
> Unable to login in Kylin with admin user. Kylin cluster is composed by two nodes, one QUERY node and one ALL node. Our backend for metadata is MySQL (not HBASE). Kylin version: 2.6.1
> Solved with same workaround applied in related bug. 
> {code:java}
>  $KYLIN_HOME/bin/metastore.sh remove /user/admin
> {code}
>  
> Tomcat exception follows:
> {code:java}
> Apr 10, 2019 7:30:29 AM org.apache.catalina.core.StandardWrapperValve invoke
> SEVERE: Servlet.service() for servlet [kylin] in context with path [/kylin] threw exception
> org.apache.kylin.common.persistence.WriteConflictException: Overwriting conflict /user/ADMIN, expect old TS 0, but it is 1554879164739
> at org.apache.kylin.common.persistence.JDBCResourceStore$5.execute(JDBCResourceStore.java:482)
> at org.apache.kylin.common.persistence.JDBCResourceStore.executeSql(JDBCResourceStore.java:100)
> at org.apache.kylin.common.persistence.JDBCResourceStore.checkAndPutResourceInternal(JDBCResourceStore.java:439)
> at org.apache.kylin.common.persistence.JDBCResourceStore.checkAndPutResourceImpl(JDBCResourceStore.java:427)
> at org.apache.kylin.common.persistence.ResourceStore$6.call(ResourceStore.java:442)
> at org.apache.kylin.common.persistence.ResourceStore$6.call(ResourceStore.java:439)
> at org.apache.kylin.common.persistence.ExponentialBackoffRetry.doWithRetry(ExponentialBackoffRetry.java:52)
> at org.apache.kylin.common.persistence.ResourceStore.checkAndPutResourceWithRetry(ResourceStore.java:439)
> at org.apache.kylin.common.persistence.ResourceStore.checkAndPutResourceCheckpoint(ResourceStore.java:427)
> at org.apache.kylin.common.persistence.ResourceStore.checkAndPutResource(ResourceStore.java:421)
> at org.apache.kylin.common.persistence.ResourceStore.checkAndPutResource(ResourceStore.java:401)
> at org.apache.kylin.common.persistence.ResourceStore.checkAndPutResource(ResourceStore.java:380)
> at org.apache.kylin.metadata.cachesync.CachedCrudAssist.save(CachedCrudAssist.java:192)
> at org.apache.kylin.rest.security.KylinUserManager.update(KylinUserManager.java:124)
> at org.apache.kylin.rest.service.KylinUserService.updateUser(KylinUserService.java:86)
> at org.apache.kylin.rest.service.KylinUserService.createUser(KylinUserService.java:78)
> at org.apache.kylin.rest.security.KylinAuthenticationProvider.authenticate(KylinAuthenticationProvider.java:116)
> at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174)
> at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:199)
> at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:180)
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
> at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
> at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116)
> at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:64)
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
> at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56)
> at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
> at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105)
> at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
> at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:214)
> at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:177)
> at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
> at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:209)
> at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1137)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
> at java.lang.Thread.run(Thread.java:748)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)