DISCOVERY: Use Realistic Num. of Min Master Nodes (#34854)
* DISCOVERY: Use Realistic Num. of Min Master Nodes * With all 3 nodes starting in parallel 2 nodes can win a master election and start waiting for nodes to join when started in parallel. We wait for 30s on the rest tests for the cluster health endpoint to show 3 nodes which breaks if one of the master nodes itself waits for 30s for joining nodes, waiting for 5 seconds fixes the issue and allows us to run with `minimum master nodes < node count` * relates #33675
This commit is contained in:
parent
9f87fdc7ab
commit
5acabc47ed
|
@ -69,7 +69,11 @@ class ClusterConfiguration {
|
||||||
*/
|
*/
|
||||||
@Input
|
@Input
|
||||||
Closure<Integer> minimumMasterNodes = {
|
Closure<Integer> minimumMasterNodes = {
|
||||||
return getNumNodes() > 1 ? getNumNodes() : -1
|
if (bwcVersion != null && bwcVersion.before("6.5.0-SNAPSHOT")) {
|
||||||
|
return numNodes > 1 ? numNodes : -1
|
||||||
|
} else {
|
||||||
|
return numNodes > 1 ? numNodes.intdiv(2) + 1 : -1
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Input
|
@Input
|
||||||
|
|
|
@ -343,6 +343,13 @@ class ClusterFormationTasks {
|
||||||
// this will also allow new and old nodes in the BWC case to become the master
|
// this will also allow new and old nodes in the BWC case to become the master
|
||||||
esConfig['discovery.initial_state_timeout'] = '0s'
|
esConfig['discovery.initial_state_timeout'] = '0s'
|
||||||
}
|
}
|
||||||
|
if (esConfig.containsKey('discovery.zen.master_election.wait_for_joins_timeout') == false) {
|
||||||
|
// If a node decides to become master based on partial information from the pinging, don't let it hang for 30 seconds to correct
|
||||||
|
// its mistake. Instead, only wait 5s to do another round of pinging.
|
||||||
|
// This is necessary since we use 30s as the default timeout in REST requests waiting for cluster formation
|
||||||
|
// so we need to bail quicker than the default 30s for the cluster to form in time.
|
||||||
|
esConfig['discovery.zen.master_election.wait_for_joins_timeout'] = '5s'
|
||||||
|
}
|
||||||
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
|
||||||
esConfig['transport.tcp.port'] = node.config.transportPort
|
esConfig['transport.tcp.port'] = node.config.transportPort
|
||||||
|
|
Loading…
Reference in New Issue