Merge pull request #3430 from hashicorp/server_provider_optional

Wire server provider for raft layer only on protocol version 3 and ab…
This commit is contained in:
preetapan 2017-08-30 14:41:16 -05:00 committed by GitHub
commit cef05139c7
2 changed files with 7 additions and 1 deletions

View file

@ -9,6 +9,7 @@ IMPROVEMENTS:
* agent: Switched to using a read lock for the agent's RPC dispatcher, which prevents RPC calls from getting serialized. [GH-3376]
* build: Upgraded Go version to 1.9. [GH-3428]
* server: Consul servers can re-establish quorum after all of them change their IP addresses upon a restart. [GH-1580]
BUG FIXES:

View file

@ -492,12 +492,17 @@ func (s *Server) setupRaft() error {
return err
}
var serverAddressProvider raft.ServerAddressProvider = nil
if s.config.RaftConfig.ProtocolVersion >= 3 { //ServerAddressProvider needs server ids to work correctly, which is only supported in protocol version 3 or higher
serverAddressProvider = s.serverLookup
}
// Create a transport layer.
transConfig := &raft.NetworkTransportConfig{
Stream: s.raftLayer,
MaxPool: 3,
Timeout: 10 * time.Second,
ServerAddressProvider: s.serverLookup,
ServerAddressProvider: serverAddressProvider,
}
trans := raft.NewNetworkTransportWithConfig(transConfig)