mirror of
https://github.com/gogrlx/nats-server.git
synced 2026-04-14 02:07:59 -07:00
Got this race:
```
==================
WARNING: DATA RACE
Read at 0x00c001c880e8 by goroutine 342:
github.com/nats-io/nats-server/v2/server.(*raft).resetElect()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:1525 +0x44
github.com/nats-io/nats-server/v2/server.(*raft).resetElectionTimeout()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:1520 +0xa4
github.com/nats-io/nats-server/v2/server.(*raft).handleAppendEntry()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:2537 +0x12e
github.com/nats-io/nats-server/v2/server.(*raft).handleAppendEntry-fm()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:2525 +0xcc
...
Previous write at 0x00c001c880e8 by goroutine 587:
github.com/nats-io/nats-server/v2/server.(*raft).resetElect()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:1526 +0x113
github.com/nats-io/nats-server/v2/server.(*raft).resetElectionTimeout()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:1520 +0xa4
github.com/nats-io/nats-server/v2/server.(*Server).startRaftNode()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:484 +0x20d1
github.com/nats-io/nats-server/v2/server.(*jetStream).createRaftGroup()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/jetstream_cluster.go:1497 +0x9ed
github.com/nats-io/nats-server/v2/server.(*jetStream).processClusterCreateConsumer()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/jetstream_cluster.go:3063 +0xba4
...
==================
WARNING: DATA RACE
Read at 0x00c0006671f0 by goroutine 342:
time.(*Timer).Stop()
/usr/local/go/src/time/sleep.go:78 +0x84
github.com/nats-io/nats-server/v2/server.(*raft).resetElect()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:1528 +0x58
github.com/nats-io/nats-server/v2/server.(*raft).resetElectionTimeout()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:1520 +0xa4
github.com/nats-io/nats-server/v2/server.(*raft).handleAppendEntry()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:2537 +0x12e
github.com/nats-io/nats-server/v2/server.(*raft).handleAppendEntry-fm()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:2525 +0xcc
...
Previous write at 0x00c0006671f0 by goroutine 587:
time.NewTimer()
/usr/local/go/src/time/sleep.go:92 +0xb3
github.com/nats-io/nats-server/v2/server.(*raft).resetElect()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:1526 +0x104
github.com/nats-io/nats-server/v2/server.(*raft).resetElectionTimeout()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:1520 +0xa4
github.com/nats-io/nats-server/v2/server.(*Server).startRaftNode()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/raft.go:484 +0x20d1
github.com/nats-io/nats-server/v2/server.(*jetStream).createRaftGroup()
/Users/ivan/dev/go/src/github.com/nats-io/nats-server/server/jetstream_cluster.go:1497 +0x9ed
...
```
Looked at all places where resetElect() or resetElectionTimeout() was invoked without
being protected by the raft's lock and added it.
Signed-off-by: Ivan Kozlovic <ivan@synadia.com>