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