[
https://issues.apache.org/jira/browse/KYLIN-3562?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16617247#comment-16617247
]
Chang chen edited comment on KYLIN-3562 at 9/17/18 8:57 AM:
------------------------------------------------------------
[~Shaofengshi] Please look at this issue. we will meet it regularly every day
since last week. It looks like a concurrency issue, i.e. two threads
simultaneously update /user/admin. Obviously, one thread get oldTS before
another thread updates key.
!image-2018-09-17-16-40-56-212.png!
Above is result not reason, because we find that kylin update user very
frequently!
Taking a look at *KylinAuthenticationProvider.authenticate*, if the user is in
userCache, then we will avoid call *KylinUserService.updateUser*, but
unfortunately *updateUser* will set {color:#ff0000}_evictCacheFlag_{color} to
true which makes userCache is invalidated at the next *authenticate* call.
was (Author: baibaichen):
[~Shaofengshi] Please look at this issue. we will meet it regularly every day
since last week. It looks like a concurrency issue, i.e. two threads
simultaneously update /user/admin. Obviously, one thread get oldTS before
another thread.
!image-2018-09-17-16-40-56-212.png!
Above is result not reason, because we find that kylin update user very
frequently!
Taking a look at *KylinAuthenticationProvider.authenticate*, if the user is in
userCache, then we will avoid call *KylinUserService.updateUser*, but
unfortunately *updateUser* will set {color:#FF0000}_evictCacheFlag_{color} to
true which makes userCache is invalidated at the next *authenticate* call.
> TS conflict when kylin update metadata in HBase
> -----------------------------------------------
>
> Key: KYLIN-3562
> URL: https://issues.apache.org/jira/browse/KYLIN-3562
> Project: Kylin
> Issue Type: Bug
> Affects Versions: v2.4.0
> Reporter: Lingang Deng
> Priority: Major
> Attachments: image-2018-09-17-16-40-56-212.png
>
>
> Error log was as follows,
> {code:java}
> org.apache.kylin.common.persistence.WriteConflictException: Overwriting
> conflict /user/admin, expect old TS 1536928877043, but it is 1536928907207
> at
> org.apache.kylin.storage.hbase.HBaseResourceStore.checkAndPutResourceImpl(HBaseResourceStore.java:325)
> at
> org.apache.kylin.common.persistence.ResourceStore.checkAndPutResourceCheckpoint(ResourceStore.java:318)
> at
> org.apache.kylin.common.persistence.ResourceStore.putResource(ResourceStore.java:303)
> at
> org.apache.kylin.common.persistence.ResourceStore.putResource(ResourceStore.java:282)
> at
> org.apache.kylin.metadata.cachesync.CachedCrudAssist.save(CachedCrudAssist.java:192){code}
>
> what disturbs me the most was that the error was happened several hours,
> then my all build job and query job failed.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)