Set minimum_master_nodes on rolling-upgrade test (#26911)
The rolling-upgrade test was only writing the "minimum_master_nodes" setting to the configuration file of the old nodes, but not the upgraded ones. Also changes the value of "minimum_master_nodes" from "number_of_nodes" to "(number_of_nodes / 2) + 1".
This commit is contained in:
parent
cdd7c1e6c2
commit
a4436195f8
|
@ -63,13 +63,11 @@ class ClusterConfiguration {
|
|||
boolean debug = false
|
||||
|
||||
/**
|
||||
* if <code>true</code> each node will be configured with <tt>discovery.zen.minimum_master_nodes</tt> set
|
||||
* to the total number of nodes in the cluster. This will also cause that each node has `0s` state recovery
|
||||
* timeout which can lead to issues if for instance an existing clusterstate is expected to be recovered
|
||||
* before any tests start
|
||||
* Configuration of the setting <tt>discovery.zen.minimum_master_nodes</tt> on the nodes.
|
||||
* In case of more than one node, this defaults to (number of nodes / 2) + 1
|
||||
*/
|
||||
@Input
|
||||
boolean useMinimumMasterNodes = true
|
||||
Closure<Integer> minimumMasterNodes = { getNumNodes() > 1 ? getNumNodes().intdiv(2) + 1 : -1 }
|
||||
|
||||
@Input
|
||||
String jvmArgs = "-Xms" + System.getProperty('tests.heap.size', '512m') +
|
||||
|
|
|
@ -311,13 +311,14 @@ class ClusterFormationTasks {
|
|||
// Define a node attribute so we can test that it exists
|
||||
'node.attr.testattr' : 'test'
|
||||
]
|
||||
// we set min master nodes to the total number of nodes in the cluster and
|
||||
// basically skip initial state recovery to allow the cluster to form using a realistic master election
|
||||
// this means all nodes must be up, join the seed node and do a master election. This will also allow new and
|
||||
// old nodes in the BWC case to become the master
|
||||
if (node.config.useMinimumMasterNodes && node.config.numNodes > 1) {
|
||||
esConfig['discovery.zen.minimum_master_nodes'] = node.config.numNodes
|
||||
esConfig['discovery.initial_state_timeout'] = '0s' // don't wait for state.. just start up quickly
|
||||
int minimumMasterNodes = node.config.minimumMasterNodes.call()
|
||||
if (minimumMasterNodes > 0) {
|
||||
esConfig['discovery.zen.minimum_master_nodes'] = minimumMasterNodes
|
||||
}
|
||||
if (node.config.numNodes > 1) {
|
||||
// don't wait for state.. just start up quickly
|
||||
// this will also allow new and old nodes in the BWC case to become the master
|
||||
esConfig['discovery.initial_state_timeout'] = '0s'
|
||||
}
|
||||
esConfig['node.max_local_storage_nodes'] = node.config.numNodes
|
||||
esConfig['http.port'] = node.config.httpPort
|
||||
|
|
|
@ -61,6 +61,7 @@ for (Version version : wireCompatVersions) {
|
|||
distribution = 'zip'
|
||||
clusterName = 'rolling-upgrade'
|
||||
unicastTransportUri = { seedNode, node, ant -> oldClusterTest.nodes.get(0).transportUri() }
|
||||
minimumMasterNodes = { 2 }
|
||||
/* Override the data directory so the new node always gets the node we
|
||||
* just stopped's data directory. */
|
||||
dataDir = { nodeNumber -> oldClusterTest.nodes[1].dataDir }
|
||||
|
@ -81,6 +82,7 @@ for (Version version : wireCompatVersions) {
|
|||
distribution = 'zip'
|
||||
clusterName = 'rolling-upgrade'
|
||||
unicastTransportUri = { seedNode, node, ant -> mixedClusterTest.nodes.get(0).transportUri() }
|
||||
minimumMasterNodes = { 2 }
|
||||
/* Override the data directory so the new node always gets the node we
|
||||
* just stopped's data directory. */
|
||||
dataDir = { nodeNumber -> oldClusterTest.nodes[0].dataDir}
|
||||
|
|
Loading…
Reference in New Issue