-
Notifications
You must be signed in to change notification settings - Fork 1k
Closed
Description
Got this race with latest v1.3.9 release:
==================
WARNING: DATA RACE
Write at 0x00c0000b6f08 by goroutine 257:
github.com/hashicorp/raft.(*Raft).runCandidate.func1()
/Users/ivan/dev/go/pkg/mod/github.com/hashicorp/raft@v1.3.9/raft.go:293 +0x38
runtime.deferreturn()
/usr/local/go/src/runtime/panic.go:436 +0x34
github.com/hashicorp/raft.(*Raft).run()
/Users/ivan/dev/go/pkg/mod/github.com/hashicorp/raft@v1.3.9/raft.go:146 +0x84
github.com/hashicorp/raft.(*Raft).run-fm()
<autogenerated>:1 +0x38
github.com/hashicorp/raft.(*raftState).goFunc.func1()
/Users/ivan/dev/go/pkg/mod/github.com/hashicorp/raft@v1.3.9/state.go:146 +0x74
Previous read at 0x00c0000b6f08 by goroutine 381:
github.com/hashicorp/raft.(*Raft).appendEntries()
/Users/ivan/dev/go/pkg/mod/github.com/hashicorp/raft@v1.3.9/raft.go:1384 +0x270
github.com/hashicorp/raft.(*Raft).processHeartbeat()
/Users/ivan/dev/go/pkg/mod/github.com/hashicorp/raft@v1.3.9/raft.go:1353 +0x10c
github.com/hashicorp/raft.(*Raft).processHeartbeat-fm()
<autogenerated>:1 +0x7c
github.com/hashicorp/raft.(*NetworkTransport).handleCommand()
/Users/ivan/dev/go/pkg/mod/github.com/hashicorp/raft@v1.3.9/net_transport.go:640 +0x9cc
github.com/hashicorp/raft.(*NetworkTransport).handleConn()
/Users/ivan/dev/go/pkg/mod/github.com/hashicorp/raft@v1.3.9/net_transport.go:542 +0x438
github.com/hashicorp/raft.(*NetworkTransport).listen.func1()
/Users/ivan/dev/go/pkg/mod/github.com/hashicorp/raft@v1.3.9/net_transport.go:520 +0x68
Looks like the runCandidate() routine on exit set it:
Line 293 in c3134d7
defer func() { r.candidateFromLeadershipTransfer = false }() |
and it is being read here:
Line 1384 in c3134d7
if a.Term > r.getCurrentTerm() || (r.getState() != Follower && !r.candidateFromLeadershipTransfer) { |
arzahs
Metadata
Metadata
Assignees
Labels
No labels