diff options
author | Corey Hulen <corey@hulen.com> | 2017-04-04 11:42:07 -0700 |
---|---|---|
committer | Harrison Healey <harrisonmhealey@gmail.com> | 2017-04-04 14:42:07 -0400 |
commit | 6bf080393d88534aa658ecaff32ae089bd304772 (patch) | |
tree | be25ba4cea3d687d11fe49537b84fae4bf21a484 /app | |
parent | 32460bf63bc07c69ee5da0bb5640b879facb5538 (diff) | |
download | chat-6bf080393d88534aa658ecaff32ae089bd304772.tar.gz chat-6bf080393d88534aa658ecaff32ae089bd304772.tar.bz2 chat-6bf080393d88534aa658ecaff32ae089bd304772.zip |
Fixing race conditions in the code base (#5966)
* Adding initial race detector
* Remove setting of config twice
* Fixing config file watch and config reload on license save
* Fixing config file watch and config reload on license save
* Fixing build error
* Fixing locking issue
* Fixing makefile
* Fixing race in config
* Fixing race in status unit test
* Adding EE race tests
* Fixing race in cluster info
* Removing code that's isn't needed
* Fixing some more races
* Fixing govet issue
Diffstat (limited to 'app')
-rw-r--r-- | app/email_test.go | 9 | ||||
-rw-r--r-- | app/web_hub.go | 9 |
2 files changed, 6 insertions, 12 deletions
diff --git a/app/email_test.go b/app/email_test.go index 17b892585..6d1a6f14a 100644 --- a/app/email_test.go +++ b/app/email_test.go @@ -61,7 +61,6 @@ func TestSendChangeUsernameEmail(t *testing.T) { func TestSendEmailChangeVerifyEmail(t *testing.T) { Setup() - utils.LoadConfig("config.json") var userId string = "5349853498543jdfvndf9834" var newUserEmail string = "newtest@example.com" @@ -113,7 +112,6 @@ func TestSendEmailChangeVerifyEmail(t *testing.T) { func TestSendEmailChangeEmail(t *testing.T) { Setup() - utils.LoadConfig("config.json") var oldEmail string = "test@example.com" var newUserEmail string = "newtest@example.com" @@ -161,7 +159,6 @@ func TestSendEmailChangeEmail(t *testing.T) { func TestSendVerifyEmail(t *testing.T) { Setup() - utils.LoadConfig("config.json") var userId string = "5349853498543jdfvndf9834" var userEmail string = "test@example.com" @@ -213,7 +210,6 @@ func TestSendVerifyEmail(t *testing.T) { func TestSendSignInChangeEmail(t *testing.T) { Setup() - utils.LoadConfig("config.json") var email string = "test@example.com" var locale string = "en" @@ -261,7 +257,6 @@ func TestSendSignInChangeEmail(t *testing.T) { func TestSendWelcomeEmail(t *testing.T) { Setup() - utils.LoadConfig("config.json") var userId string = "32432nkjnijn432uj32" var email string = "test@example.com" @@ -355,7 +350,6 @@ func TestSendWelcomeEmail(t *testing.T) { func TestSendPasswordChangeEmail(t *testing.T) { Setup() - utils.LoadConfig("config.json") var email string = "test@example.com" var locale string = "en" @@ -403,7 +397,6 @@ func TestSendPasswordChangeEmail(t *testing.T) { func TestSendMfaChangeEmail(t *testing.T) { Setup() - utils.LoadConfig("config.json") var email string = "test@example.com" var locale string = "en" @@ -488,7 +481,6 @@ func TestSendMfaChangeEmail(t *testing.T) { func TestSendInviteEmails(t *testing.T) { th := Setup().InitBasic() - utils.LoadConfig("config.json") var email1 string = "test1@example.com" var email2 string = "test2@example.com" @@ -564,7 +556,6 @@ func TestSendInviteEmails(t *testing.T) { func TestSendPasswordReset(t *testing.T) { th := Setup().InitBasic() - utils.LoadConfig("config.json") var siteURL string = "http://test.mattermost.io" // var locale string = "en" diff --git a/app/web_hub.go b/app/web_hub.go index a0663459a..f65683f70 100644 --- a/app/web_hub.go +++ b/app/web_hub.go @@ -8,6 +8,7 @@ import ( "hash/fnv" "runtime" "runtime/debug" + "sync/atomic" l4g "github.com/alecthomas/log4go" @@ -18,6 +19,7 @@ import ( type Hub struct { connections []*WebConn + count int64 register chan *WebConn unregister chan *WebConn broadcast chan *model.WebSocketEvent @@ -43,12 +45,12 @@ func NewWebHub() *Hub { func TotalWebsocketConnections() int { // This is racy, but it's only used for reporting information // so it's probably OK - count := 0 + count := int64(0) for _, hub := range hubs { - count = count + len(hub.connections) + count = count + atomic.LoadInt64(&hub.count) } - return count + return int(count) } func HubStart() { @@ -248,6 +250,7 @@ func (h *Hub) Start() { select { case webCon := <-h.register: h.connections = append(h.connections, webCon) + atomic.StoreInt64(&h.count, int64(len(h.connections))) case webCon := <-h.unregister: userId := webCon.UserId |