Fixing race in update channel (#7269)
* Fixing race in update channel * Switching to struct copy
Этот коммит содержится в:
@@ -53,6 +53,11 @@ type ChannelPatch struct {
|
||||
Purpose *string `json:"purpose"`
|
||||
}
|
||||
|
||||
func (o *Channel) DeepCopy() *Channel {
|
||||
copy := *o
|
||||
return ©
|
||||
}
|
||||
|
||||
func (o *Channel) ToJson() string {
|
||||
b, err := json.Marshal(o)
|
||||
if err != nil {
|
||||
|
||||
@@ -27,6 +27,15 @@ func TestChannelJson(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestChannelCopy(t *testing.T) {
|
||||
o := Channel{Id: NewId(), Name: NewId()}
|
||||
ro := o.DeepCopy()
|
||||
|
||||
if o.Id != ro.Id {
|
||||
t.Fatal("Ids do not match")
|
||||
}
|
||||
}
|
||||
|
||||
func TestChannelPatch(t *testing.T) {
|
||||
p := &ChannelPatch{Name: new(string), DisplayName: new(string), Header: new(string), Purpose: new(string)}
|
||||
*p.Name = NewId()
|
||||
|
||||
@@ -405,7 +405,7 @@ func (s SqlChannelStore) get(id string, master bool, allowFromCache bool) StoreC
|
||||
if metrics != nil {
|
||||
metrics.IncrementMemCacheHitCounter("Channel")
|
||||
}
|
||||
result.Data = cacheItem.(*model.Channel)
|
||||
result.Data = (cacheItem.(*model.Channel)).DeepCopy()
|
||||
storeChannel <- result
|
||||
close(storeChannel)
|
||||
return
|
||||
|
||||
Ссылка в новой задаче
Block a user