Fix racy unit tests by protecting service ref with a mutex (#26183)

This commit is contained in:
Doug Lauder 2024-02-09 16:07:37 -05:00 committed by GitHub
parent 2116bf5498
commit 4c8a134659
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 12 additions and 2 deletions

View File

@ -98,6 +98,8 @@ type PlatformService struct {
goroutineBuffered chan struct{}
additionalClusterHandlers map[model.ClusterEvent]einterfaces.ClusterMessageHandler
shareChannelServiceMux sync.RWMutex
sharedChannelService SharedChannelServiceIFace
pluginEnv HookRunner
@ -471,9 +473,17 @@ func (ps *PlatformService) SetSqlStore(s *sqlstore.SqlStore) {
}
func (ps *PlatformService) SetSharedChannelService(s SharedChannelServiceIFace) {
ps.shareChannelServiceMux.Lock()
defer ps.shareChannelServiceMux.Unlock()
ps.sharedChannelService = s
}
func (ps *PlatformService) GetSharedChannelService() SharedChannelServiceIFace {
ps.shareChannelServiceMux.RLock()
defer ps.shareChannelServiceMux.RUnlock()
return ps.sharedChannelService
}
func (ps *PlatformService) SetPluginsEnvironment(runner HookRunner) {
ps.pluginEnv = runner
}

View File

@ -31,7 +31,7 @@ var sharedChannelEventsForInvitation = []model.WebsocketEventType{
// Only on the leader node it will notify the sync service to perform necessary updates to the remote for the given
// shared channel.
func (ps *PlatformService) SharedChannelSyncHandler(event *model.WebSocketEvent) {
syncService := ps.sharedChannelService
syncService := ps.GetSharedChannelService()
if syncService == nil {
return
}