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 068cd6237e
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] * 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] * 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: BUG FIXES:

View File

@ -492,12 +492,17 @@ func (s *Server) setupRaft() error {
return err 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. // Create a transport layer.
transConfig := &raft.NetworkTransportConfig{ transConfig := &raft.NetworkTransportConfig{
Stream: s.raftLayer, Stream: s.raftLayer,
MaxPool: 3, MaxPool: 3,
Timeout: 10 * time.Second, Timeout: 10 * time.Second,
ServerAddressProvider: s.serverLookup, ServerAddressProvider: serverAddressProvider,
} }
trans := raft.NewNetworkTransportWithConfig(transConfig) trans := raft.NewNetworkTransportWithConfig(transConfig)