I want to upgrade  to kylin-2.4 from kylin-2.1. For some reason,  We has two
user, named vip and VIP.  After upgrade, We found that user VIP can't login.
However, login with vip is ok. The error stack is below:
org.apache.kylin.common.persistence.WriteConflictException: Overwriting
conflict /user/VIP, expect old TS 1547174500042, but it is 1547175263057
        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)
        at
org.apache.kylin.rest.security.KylinUserManager.update(KylinUserManager.java:122)

After check the source code in kylin-2.4.0, When user login, kylin will
check timestamp in hbase. The timestamp will be cached in
KylinUserManager.userMap which type is
CaseInsensitiveStringCache<ManagerUser>. CaseInsensitiveStringCache use
ConcurrentSkipListMap to store data and CASE_INSENSITIVE_ORDER is chosen as
comparator. When loading user info after startup, VIP's timestamp will be
overwrite with vip. So VIP will never login success. It might be a bug or
should notify users that they should only use uppercase username or
lowercase username but not case mix.
 

--
Sent from: http://apache-kylin.74782.x6.nabble.com/

Reply via email to