You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@kylin.apache.org by you Zhuang <zh...@gmail.com> on 2018/12/05 04:02:01 UTC
Kylin user login arise error in cluster mode
org.apache.kylin.common.persistence.WriteConflictException:
Overwriting conflict /user/admin_mock, expect old TS 1543976358968, but it is 1543976359060
I dive into org.apache.kylin.rest.service.KylinUserService class, the updateUser method setEvictCacheFlag(true);
After getKylinUserManager().update(managedUser);
I suspect that next login will not hit cache, and the inner real authentication provider always will authenticate.
And the other place I think that is not reasonable is getKylinUserManager().update(managedUser);
Method, the user.setLastModified(exist.getLastModified()); line is not reliable in cluster mode because of constant update described above.
Which depends network notification to update inner user map cache. When I comment setEvictCacheFlag(true);
And add exist = crud.reloadQuietly(user.getUsername()); line , seems everything is going right.
Re: Kylin user login arise error in cluster mode
Posted by JiaTao Tao <ta...@gmail.com>.
hi
It has been fixed, see more details in this JIRA:
https://issues.apache.org/jira/browse/KYLIN-3562.
you Zhuang <zh...@gmail.com> 于2018年12月5日周三 上午4:02写道:
> org.apache.kylin.common.persistence.WriteConflictException:
> Overwriting conflict /user/admin_mock, expect old TS 1543976358968, but it
> is 1543976359060
>
> I dive into *org.apache.kylin.rest.service.KylinUserService* class, the
> *updateUser* method *setEvictCacheFlag(true)*;
>
> After *getKylinUserManager().update(managedUser)*;
>
> I suspect that next login will not hit cache, and the inner real
> authentication provider always will authenticate.
>
>
> And the other place I think that is not reasonable
> is getKylinUserManager().update(managedUser);
>
> Method, the *user.setLastModified(exist.getLastModified());* line is not
> reliable in cluster mode because of constant update described above.
>
>
> Which depends network notification to update inner user map cache. When
> I comment setEvictCacheFlag(true);
>
> And add* exist = crud.reloadQuietly(user.getUsername());* line , seems
> everything is going right.
>
>
>
>
--
Regards!
Aron Tao