mirror of
https://github.com/gogrlx/nats-server.git
synced 2026-04-02 03:38:42 -07:00
Fixed some data race and some flappers
Got a data race:
```
==================
WARNING: DATA RACE
Write at 0x00c001c736b0 by goroutine 605:
runtime.mapassign_faststr()
/home/travis/.gimme/versions/go1.17.8.linux.amd64/src/runtime/map_faststr.go:202 +0x0
github.com/nats-io/nats-server/v2/server.(*Account).addServiceImport()
/home/travis/gopath/src/github.com/nats-io/nats-server/server/accounts.go:1868 +0xb7b
github.com/nats-io/nats-server/v2/server.(*Account).AddServiceImportWithClaim()
...
Previous read at 0x00c001c736b0 by goroutine 301:
runtime.mapaccess2_faststr()
/home/travis/.gimme/versions/go1.17.8.linux.amd64/src/runtime/map_faststr.go:107 +0x0
github.com/nats-io/nats-server/v2/server.(*Server).registerSystemImports()
/home/travis/gopath/src/github.com/nats-io/nats-server/server/events.go:1577 +0x284
github.com/nats-io/nats-server/v2/server.(*Server).updateAccountClaimsWithRefresh()
...
```
Also, remove some condition in gateway.go on how we were checking
if a subject was a serviec reply, which was causing a test to flap.
Finally, used AckSync() in a rest (instead of m.Respond(nil)) to
prevent it from flapping.
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
This commit is contained in:
@@ -1574,12 +1574,12 @@ func (s *Server) registerSystemImports(a *Account) {
|
||||
|
||||
// Add in this to the account in 2 places.
|
||||
// "$SYS.REQ.SERVER.PING.CONNZ" and "$SYS.REQ.ACCOUNT.PING.CONNZ"
|
||||
if _, ok := a.imports.services[connzSubj]; !ok {
|
||||
if !a.serviceImportExists(connzSubj) {
|
||||
if err := a.AddServiceImport(sacc, connzSubj, mappedSubj); err != nil {
|
||||
s.Errorf("Error setting up system service imports for account: %v", err)
|
||||
}
|
||||
}
|
||||
if _, ok := a.imports.services[accConnzReqSubj]; !ok {
|
||||
if !a.serviceImportExists(accConnzReqSubj) {
|
||||
if err := a.AddServiceImport(sacc, accConnzReqSubj, mappedSubj); err != nil {
|
||||
s.Errorf("Error setting up system service imports for account: %v", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user