MM-60413: Fix issues due to incorrect cache provider (#28181)
We were using a mock cache provider which mixed up LRU caches with each other. This led to incorrect unmarshalling method calls. We fix this by using the real cache provider. https://mattermost.atlassian.net/browse/MM-60413 ```release-note NONE ```
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
1909206e16
Коммит
f18323980f
5
server/platform/services/cache/lru.go
поставляемый
5
server/platform/services/cache/lru.go
поставляемый
@@ -220,11 +220,6 @@ func (l *LRU) get(key string, value any) error {
|
||||
_, err := u.UnmarshalMsg(val)
|
||||
*v = &u
|
||||
return err
|
||||
case *map[string]*model.User:
|
||||
var u model.UserMap
|
||||
_, err := u.UnmarshalMsg(val)
|
||||
*v = u
|
||||
return err
|
||||
}
|
||||
|
||||
// Slow path for other structs.
|
||||
|
||||
6
server/platform/services/cache/lru_test.go
поставляемый
6
server/platform/services/cache/lru_test.go
поставляемый
@@ -294,12 +294,12 @@ func TestLRUMarshalUnMarshal(t *testing.T) {
|
||||
u.Timezone = nil
|
||||
require.Equal(t, user, u)
|
||||
|
||||
tt := make(map[string]*model.User)
|
||||
tt := make(model.UserMap)
|
||||
tt["1"] = u
|
||||
err = l.SetWithDefaultExpiry("mm", model.UserMap(tt))
|
||||
err = l.SetWithDefaultExpiry("mm", tt)
|
||||
require.NoError(t, err)
|
||||
|
||||
var out map[string]*model.User
|
||||
var out model.UserMap
|
||||
err = l.Get("mm", &out)
|
||||
require.NoError(t, err)
|
||||
out["1"].Timezone = nil
|
||||
|
||||
11
server/platform/services/cache/redis.go
поставляемый
11
server/platform/services/cache/redis.go
поставляемый
@@ -123,11 +123,6 @@ func (r *Redis) Get(key string, value any) error {
|
||||
_, err := u.UnmarshalMsg(val)
|
||||
*v = &u
|
||||
return err
|
||||
case *map[string]*model.User:
|
||||
var u model.UserMap
|
||||
_, err := u.UnmarshalMsg(val)
|
||||
*v = u
|
||||
return err
|
||||
}
|
||||
|
||||
// Slow path for other structs.
|
||||
@@ -193,12 +188,6 @@ func (r *Redis) GetMulti(keys []string, values []any) []error {
|
||||
*v = &u
|
||||
errs[i] = err
|
||||
continue
|
||||
case *map[string]*model.User:
|
||||
var u model.UserMap
|
||||
_, err := u.UnmarshalMsg(buf)
|
||||
*v = u
|
||||
errs[i] = err
|
||||
continue
|
||||
}
|
||||
|
||||
// Slow path for other structs.
|
||||
|
||||
Ссылка в новой задаче
Block a user