MM-42378: Fix server crash while loading license (#19733)
* MM-42378: Fix server crash while loading license The user service needs to be created before loading license. https://mattermost.atlassian.net/browse/MM-42378 ```release-note NONE ``` * Further fix ```release-note NONE ```
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
21f1d2aabc
Коммит
05503440a6
@@ -321,7 +321,31 @@ func NewServer(options ...Option) (*Server, error) {
|
|||||||
return nil, errors.Wrap(err, "cannot create store")
|
return nil, errors.Wrap(err, "cannot create store")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Needed to run before loading license.
|
||||||
|
s.userService, err = users.New(users.ServiceConfig{
|
||||||
|
UserStore: s.Store.User(),
|
||||||
|
SessionStore: s.Store.Session(),
|
||||||
|
OAuthStore: s.Store.OAuth(),
|
||||||
|
ConfigFn: s.Config,
|
||||||
|
Metrics: s.Metrics,
|
||||||
|
Cluster: s.Cluster,
|
||||||
|
LicenseFn: s.License,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.Wrapf(err, "unable to create users service")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Needed before loading license
|
||||||
|
if s.statusCache, err = s.CacheProvider.NewCache(&cache.CacheOptions{
|
||||||
|
Size: model.StatusCacheSize,
|
||||||
|
Striped: true,
|
||||||
|
StripedBuckets: maxInt(runtime.NumCPU()-1, 1),
|
||||||
|
}); err != nil {
|
||||||
|
return nil, errors.Wrap(err, "Unable to create status cache")
|
||||||
|
}
|
||||||
|
|
||||||
if model.BuildEnterpriseReady == "true" {
|
if model.BuildEnterpriseReady == "true" {
|
||||||
|
// Dependent on user service
|
||||||
s.LoadLicense()
|
s.LoadLicense()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -410,13 +434,6 @@ func NewServer(options ...Option) (*Server, error) {
|
|||||||
}); err != nil {
|
}); err != nil {
|
||||||
return nil, errors.Wrap(err, "Unable to create pending post ids cache")
|
return nil, errors.Wrap(err, "Unable to create pending post ids cache")
|
||||||
}
|
}
|
||||||
if s.statusCache, err = s.CacheProvider.NewCache(&cache.CacheOptions{
|
|
||||||
Size: model.StatusCacheSize,
|
|
||||||
Striped: true,
|
|
||||||
StripedBuckets: maxInt(runtime.NumCPU()-1, 1),
|
|
||||||
}); err != nil {
|
|
||||||
return nil, errors.Wrap(err, "Unable to create status cache")
|
|
||||||
}
|
|
||||||
if s.openGraphDataCache, err = s.CacheProvider.NewCache(&cache.CacheOptions{
|
if s.openGraphDataCache, err = s.CacheProvider.NewCache(&cache.CacheOptions{
|
||||||
Size: openGraphMetadataCacheSize,
|
Size: openGraphMetadataCacheSize,
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
@@ -444,19 +461,6 @@ func NewServer(options ...Option) (*Server, error) {
|
|||||||
})
|
})
|
||||||
s.htmlTemplateWatcher = htmlTemplateWatcher
|
s.htmlTemplateWatcher = htmlTemplateWatcher
|
||||||
|
|
||||||
s.userService, err = users.New(users.ServiceConfig{
|
|
||||||
UserStore: s.Store.User(),
|
|
||||||
SessionStore: s.Store.Session(),
|
|
||||||
OAuthStore: s.Store.OAuth(),
|
|
||||||
ConfigFn: s.Config,
|
|
||||||
Metrics: s.Metrics,
|
|
||||||
Cluster: s.Cluster,
|
|
||||||
LicenseFn: s.License,
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return nil, errors.Wrapf(err, "unable to create users service")
|
|
||||||
}
|
|
||||||
|
|
||||||
s.teamService, err = teams.New(teams.ServiceConfig{
|
s.teamService, err = teams.New(teams.ServiceConfig{
|
||||||
TeamStore: s.Store.Team(),
|
TeamStore: s.Store.Team(),
|
||||||
ChannelStore: s.Store.Channel(),
|
ChannelStore: s.Store.Channel(),
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user