Copy users in/out out profileByIds cache to prevent data race (#6179)
Этот коммит содержится в:
коммит произвёл
Harrison Healey
родитель
2d22fb5652
Коммит
935405f19d
@@ -814,7 +814,8 @@ func (us SqlUserStore) GetProfileByIds(userIds []string, allowFromCache bool) St
|
|||||||
if allowFromCache {
|
if allowFromCache {
|
||||||
for _, userId := range userIds {
|
for _, userId := range userIds {
|
||||||
if cacheItem, ok := profileByIdsCache.Get(userId); ok {
|
if cacheItem, ok := profileByIdsCache.Get(userId); ok {
|
||||||
u := cacheItem.(*model.User)
|
u := &model.User{}
|
||||||
|
*u = *cacheItem.(*model.User)
|
||||||
users = append(users, u)
|
users = append(users, u)
|
||||||
} else {
|
} else {
|
||||||
remainingUserIds = append(remainingUserIds, userId)
|
remainingUserIds = append(remainingUserIds, userId)
|
||||||
@@ -855,7 +856,9 @@ func (us SqlUserStore) GetProfileByIds(userIds []string, allowFromCache bool) St
|
|||||||
for _, u := range users {
|
for _, u := range users {
|
||||||
u.Sanitize(map[string]bool{})
|
u.Sanitize(map[string]bool{})
|
||||||
|
|
||||||
profileByIdsCache.AddWithExpiresInSecs(u.Id, u, PROFILE_BY_IDS_CACHE_SEC)
|
cpy := &model.User{}
|
||||||
|
*cpy = *u
|
||||||
|
profileByIdsCache.AddWithExpiresInSecs(cpy.Id, cpy, PROFILE_BY_IDS_CACHE_SEC)
|
||||||
}
|
}
|
||||||
|
|
||||||
result.Data = users
|
result.Data = users
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user