mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-25 06:16:40 +00:00
Use VotingConfiguration#of where possible (#54507)
This resolves a longstanding TODO in the cluster coordination subsystem. Relates #32006
This commit is contained in:
parent
325b8ec0ce
commit
5e3b6ab82b
@ -385,7 +385,6 @@ public class CoordinationMetadata implements Writeable, ToXContentFragment {
|
||||
}
|
||||
|
||||
public static VotingConfiguration of(DiscoveryNode... nodes) {
|
||||
// this could be used in many more places - TODO use this where appropriate
|
||||
return new VotingConfiguration(Arrays.stream(nodes).map(DiscoveryNode::getId).collect(Collectors.toSet()));
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,6 @@ import org.elasticsearch.cluster.node.DiscoveryNodes;
|
||||
import org.elasticsearch.common.UUIDs;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.common.transport.TransportAddress;
|
||||
import org.elasticsearch.common.util.set.Sets;
|
||||
import org.elasticsearch.test.ESTestCase;
|
||||
import org.elasticsearch.test.EqualsHashCodeTestUtils;
|
||||
import org.junit.Before;
|
||||
@ -88,7 +87,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testSetInitialState() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
assertTrue(state1.getLastAcceptedConfiguration().hasQuorum(Collections.singleton(node1.getId())));
|
||||
assertTrue(state1.getLastCommittedConfiguration().hasQuorum(Collections.singleton(node1.getId())));
|
||||
@ -97,7 +96,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testSetInitialStateWhenAlreadySet() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
assertTrue(state1.getLastAcceptedConfiguration().hasQuorum(Collections.singleton(node1.getId())));
|
||||
assertTrue(state1.getLastCommittedConfiguration().hasQuorum(Collections.singleton(node1.getId())));
|
||||
@ -123,7 +122,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testStartJoinAfterBootstrap() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
assertTrue(state1.getLastAcceptedConfiguration().hasQuorum(Collections.singleton(node1.getId())));
|
||||
assertTrue(state1.getLastCommittedConfiguration().hasQuorum(Collections.singleton(node1.getId())));
|
||||
@ -172,7 +171,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testJoinWithBadCurrentTerm() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
|
||||
@ -185,7 +184,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testJoinWithHigherAcceptedTerm() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
|
||||
@ -203,7 +202,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testJoinWithSameAcceptedTermButHigherVersion() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
|
||||
@ -221,7 +220,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testJoinWithLowerLastAcceptedTermWinsElection() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
|
||||
@ -243,7 +242,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testJoinWithSameLastAcceptedTermButLowerOrSameVersionWinsElection() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
|
||||
@ -264,7 +263,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testJoinDoesNotWinElection() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
|
||||
@ -283,8 +282,8 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testJoinDoesNotWinElectionWhenOnlyCommittedConfigQuorum() {
|
||||
VotingConfiguration configNode1 = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration configNode2 = new VotingConfiguration(Collections.singleton(node2.getId()));
|
||||
VotingConfiguration configNode1 = VotingConfiguration.of(node1);
|
||||
VotingConfiguration configNode2 = VotingConfiguration.of(node2);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, configNode1, configNode2, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
|
||||
@ -297,8 +296,8 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testJoinDoesNotWinElectionWhenOnlyLastAcceptedConfigQuorum() {
|
||||
VotingConfiguration configNode1 = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration configNode2 = new VotingConfiguration(Collections.singleton(node2.getId()));
|
||||
VotingConfiguration configNode1 = VotingConfiguration.of(node1);
|
||||
VotingConfiguration configNode2 = VotingConfiguration.of(node2);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, configNode2, configNode1, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
|
||||
@ -311,7 +310,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testHandleClientValue() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -324,7 +323,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
assertTrue(cs1.handleJoin(v2));
|
||||
assertTrue(cs1.containsJoin(v2));
|
||||
|
||||
VotingConfiguration newConfig = new VotingConfiguration(Collections.singleton(node2.getId()));
|
||||
VotingConfiguration newConfig = VotingConfiguration.of(node2);
|
||||
|
||||
ClusterState state2 = clusterState(startJoinRequest1.getTerm(), 2L, node1, initialConfig, newConfig, 42L);
|
||||
PublishRequest publishRequest = cs1.handleClientValue(state2);
|
||||
@ -337,7 +336,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testHandleClientValueWhenElectionNotWon() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
if (randomBoolean()) {
|
||||
cs1.setInitialState(state1);
|
||||
@ -347,7 +346,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testHandleClientValueDuringOngoingPublication() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -364,7 +363,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testHandleClientValueWithBadTerm() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(3, 5));
|
||||
@ -381,7 +380,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testHandleClientValueWithOldVersion() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -395,7 +394,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testHandleClientValueWithDifferentReconfigurationWhileAlreadyReconfiguring() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -405,18 +404,18 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
assertTrue(cs1.electionWon());
|
||||
assertTrue(cs1.handleJoin(v2));
|
||||
|
||||
VotingConfiguration newConfig1 = new VotingConfiguration(Collections.singleton(node2.getId()));
|
||||
VotingConfiguration newConfig1 = VotingConfiguration.of(node2);
|
||||
ClusterState state2 = clusterState(startJoinRequest1.getTerm(), 2L, node1, initialConfig, newConfig1, 42L);
|
||||
PublishRequest publishRequest = cs1.handleClientValue(state2);
|
||||
cs1.handlePublishRequest(publishRequest);
|
||||
VotingConfiguration newConfig2 = new VotingConfiguration(Collections.singleton(node3.getId()));
|
||||
VotingConfiguration newConfig2 = VotingConfiguration.of(node3);
|
||||
ClusterState state3 = clusterState(startJoinRequest1.getTerm(), 3L, node1, initialConfig, newConfig2, 42L);
|
||||
assertThat(expectThrows(CoordinationStateRejectedException.class, () -> cs1.handleClientValue(state3)).getMessage(),
|
||||
containsString("only allow reconfiguration while not already reconfiguring"));
|
||||
}
|
||||
|
||||
public void testHandleClientValueWithSameReconfigurationWhileAlreadyReconfiguring() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -426,7 +425,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
assertTrue(cs1.electionWon());
|
||||
assertTrue(cs1.handleJoin(v2));
|
||||
|
||||
VotingConfiguration newConfig1 = new VotingConfiguration(Collections.singleton(node2.getId()));
|
||||
VotingConfiguration newConfig1 = VotingConfiguration.of(node2);
|
||||
ClusterState state2 = clusterState(startJoinRequest1.getTerm(), 2L, node1, initialConfig, newConfig1, 42L);
|
||||
PublishRequest publishRequest = cs1.handleClientValue(state2);
|
||||
cs1.handlePublishRequest(publishRequest);
|
||||
@ -436,7 +435,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
|
||||
public void testHandleClientValueWithIllegalCommittedConfigurationChange() {
|
||||
assumeTrue("test only works with assertions enabled", Assertions.ENABLED);
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -446,14 +445,14 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
assertTrue(cs1.electionWon());
|
||||
assertTrue(cs1.handleJoin(v2));
|
||||
|
||||
VotingConfiguration newConfig = new VotingConfiguration(Collections.singleton(node2.getId()));
|
||||
VotingConfiguration newConfig = VotingConfiguration.of(node2);
|
||||
ClusterState state2 = clusterState(startJoinRequest1.getTerm(), 2L, node1, newConfig, newConfig, 42L);
|
||||
assertThat(expectThrows(AssertionError.class, () -> cs1.handleClientValue(state2)).getMessage(),
|
||||
containsString("last committed configuration should not change"));
|
||||
}
|
||||
|
||||
public void testHandleClientValueWithConfigurationChangeButNoJoinQuorum() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -461,14 +460,14 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
assertTrue(cs1.handleJoin(v1));
|
||||
assertTrue(cs1.electionWon());
|
||||
|
||||
VotingConfiguration newConfig = new VotingConfiguration(Collections.singleton(node2.getId()));
|
||||
VotingConfiguration newConfig = VotingConfiguration.of(node2);
|
||||
ClusterState state2 = clusterState(startJoinRequest1.getTerm(), 2L, node1, initialConfig, newConfig, 42L);
|
||||
assertThat(expectThrows(CoordinationStateRejectedException.class, () -> cs1.handleClientValue(state2)).getMessage(),
|
||||
containsString("only allow reconfiguration if joinVotes have quorum for new config"));
|
||||
}
|
||||
|
||||
public void testHandlePublishRequest() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -489,7 +488,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testHandlePublishRequestWithBadTerm() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -509,7 +508,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
|
||||
// scenario when handling a publish request from a master that we already received a newer state from
|
||||
public void testHandlePublishRequestWithSameTermButOlderOrSameVersion() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -529,7 +528,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
|
||||
// scenario when handling a publish request from a fresh master
|
||||
public void testHandlePublishRequestWithTermHigherThanLastAcceptedTerm() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
ClusterState state1 = clusterState(startJoinRequest1.getTerm(), randomLongBetween(2, 10), node1, initialConfig, initialConfig, 42L);
|
||||
cs2.handleStartJoin(startJoinRequest1);
|
||||
@ -542,7 +541,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testHandlePublishResponseWithCommit() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -560,7 +559,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testHandlePublishResponseWhenSteppedDownAsLeader() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -578,8 +577,8 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testHandlePublishResponseWithoutPublishConfigQuorum() {
|
||||
VotingConfiguration configNode1 = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration configNode2 = new VotingConfiguration(Collections.singleton(node2.getId()));
|
||||
VotingConfiguration configNode1 = VotingConfiguration.of(node1);
|
||||
VotingConfiguration configNode2 = VotingConfiguration.of(node2);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, configNode1, configNode1, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -596,8 +595,8 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testHandlePublishResponseWithoutCommitedConfigQuorum() {
|
||||
VotingConfiguration configNode1 = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration configNode2 = new VotingConfiguration(Collections.singleton(node2.getId()));
|
||||
VotingConfiguration configNode1 = VotingConfiguration.of(node1);
|
||||
VotingConfiguration configNode2 = VotingConfiguration.of(node2);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, configNode1, configNode1, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -614,7 +613,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testHandlePublishResponseWithoutCommit() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -629,7 +628,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testHandlePublishResponseWithBadTerm() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -648,7 +647,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testHandlePublishResponseWithVersionMismatch() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -663,7 +662,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testHandleCommit() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -672,7 +671,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
assertTrue(cs1.electionWon());
|
||||
Join v2 = cs2.handleStartJoin(startJoinRequest1);
|
||||
assertTrue(cs1.handleJoin(v2));
|
||||
VotingConfiguration newConfig = new VotingConfiguration(Collections.singleton(node2.getId()));
|
||||
VotingConfiguration newConfig = VotingConfiguration.of(node2);
|
||||
ClusterState state2 = clusterState(startJoinRequest1.getTerm(), 2L, node1, initialConfig, newConfig, 7L);
|
||||
PublishRequest publishRequest = cs1.handleClientValue(state2);
|
||||
PublishResponse publishResponse = cs1.handlePublishRequest(publishRequest);
|
||||
@ -685,7 +684,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testHandleCommitWithBadCurrentTerm() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -705,7 +704,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testHandleCommitWithBadLastAcceptedTerm() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -718,7 +717,7 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testHandleCommitWithBadVersion() {
|
||||
VotingConfiguration initialConfig = new VotingConfiguration(Collections.singleton(node1.getId()));
|
||||
VotingConfiguration initialConfig = VotingConfiguration.of(node1);
|
||||
ClusterState state1 = clusterState(0L, 0L, node1, initialConfig, initialConfig, 42L);
|
||||
cs1.setInitialState(state1);
|
||||
StartJoinRequest startJoinRequest1 = new StartJoinRequest(node1, randomLongBetween(1, 5));
|
||||
@ -750,9 +749,9 @@ public class CoordinationStateTests extends ESTestCase {
|
||||
assertTrue(voteCollection.containsVoteFor(node1));
|
||||
assertTrue(voteCollection.containsVoteFor(node2));
|
||||
assertFalse(voteCollection.containsVoteFor(node3));
|
||||
assertTrue(voteCollection.isQuorum(new VotingConfiguration(Sets.newHashSet(node1.getId(), node2.getId()))));
|
||||
assertTrue(voteCollection.isQuorum(new VotingConfiguration(Sets.newHashSet(node1.getId()))));
|
||||
assertFalse(voteCollection.isQuorum(new VotingConfiguration(Sets.newHashSet(node3.getId()))));
|
||||
assertTrue(voteCollection.isQuorum(VotingConfiguration.of(node1, node2)));
|
||||
assertTrue(voteCollection.isQuorum(VotingConfiguration.of(node1)));
|
||||
assertFalse(voteCollection.isQuorum(VotingConfiguration.of(node3)));
|
||||
|
||||
EqualsHashCodeTestUtils.CopyFunction<CoordinationState.VoteCollection> copyFunction =
|
||||
vc -> {
|
||||
|
@ -48,7 +48,6 @@ import org.elasticsearch.test.MockLogAppender;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -775,8 +774,7 @@ public class CoordinatorTests extends AbstractCoordinatorTestCase {
|
||||
assertThat(exceptionMessage, containsString(coordinator.getLocalNode().toString()));
|
||||
|
||||
// This is VERY BAD: setting a _different_ initial configuration. Yet it works if the first attempt will never be a quorum.
|
||||
assertTrue(coordinator.setInitialConfiguration(
|
||||
new VotingConfiguration(Collections.singleton(coordinator.getLocalNode().getId()))));
|
||||
assertTrue(coordinator.setInitialConfiguration(VotingConfiguration.of(coordinator.getLocalNode())));
|
||||
cluster.stabilise();
|
||||
}
|
||||
}
|
||||
|
@ -276,7 +276,7 @@ public class NodeJoinTests extends ESTestCase {
|
||||
long initialTerm = randomLongBetween(1, 10);
|
||||
long initialVersion = randomLongBetween(1, 10);
|
||||
setupFakeMasterServiceAndCoordinator(initialTerm, initialState(node0, initialTerm, initialVersion,
|
||||
new VotingConfiguration(Collections.singleton(randomFrom(node0, node1).getId()))));
|
||||
VotingConfiguration.of(randomFrom(node0, node1))));
|
||||
assertFalse(isLocalNodeElectedMaster());
|
||||
assertNull(coordinator.getStateForMasterService().nodes().getMasterNodeId());
|
||||
long newTerm = initialTerm + randomLongBetween(1, 10);
|
||||
@ -296,7 +296,7 @@ public class NodeJoinTests extends ESTestCase {
|
||||
long initialTerm = randomLongBetween(1, 10);
|
||||
long initialVersion = randomLongBetween(1, 10);
|
||||
setupFakeMasterServiceAndCoordinator(initialTerm, initialState(node0, initialTerm, initialVersion,
|
||||
new VotingConfiguration(Collections.singleton(node1.getId()))));
|
||||
VotingConfiguration.of(node1)));
|
||||
assertFalse(isLocalNodeElectedMaster());
|
||||
long newTerm = initialTerm + randomLongBetween(1, 10);
|
||||
long higherVersion = initialVersion + randomLongBetween(1, 10);
|
||||
@ -312,7 +312,7 @@ public class NodeJoinTests extends ESTestCase {
|
||||
long initialTerm = randomLongBetween(1, 10);
|
||||
long initialVersion = randomLongBetween(1, 10);
|
||||
setupFakeMasterServiceAndCoordinator(initialTerm, initialState(node0, initialTerm, initialVersion,
|
||||
new VotingConfiguration(Collections.singleton(node0.getId()))));
|
||||
VotingConfiguration.of(node0)));
|
||||
assertFalse(isLocalNodeElectedMaster());
|
||||
long newTerm = initialTerm + randomLongBetween(1, 10);
|
||||
long higherVersion = initialVersion + randomLongBetween(1, 10);
|
||||
@ -326,7 +326,7 @@ public class NodeJoinTests extends ESTestCase {
|
||||
long initialTerm = randomLongBetween(1, 10);
|
||||
long initialVersion = randomLongBetween(1, 10);
|
||||
setupFakeMasterServiceAndCoordinator(initialTerm, initialState(node0, initialTerm, initialVersion,
|
||||
new VotingConfiguration(Collections.singleton(node0.getId()))));
|
||||
VotingConfiguration.of(node0)));
|
||||
assertFalse(isLocalNodeElectedMaster());
|
||||
long newTerm = initialTerm + randomLongBetween(1, 10);
|
||||
joinNodeAndRun(new JoinRequest(node0, newTerm, Optional.of(new Join(node0, node0, newTerm, initialTerm, initialVersion))));
|
||||
@ -343,7 +343,7 @@ public class NodeJoinTests extends ESTestCase {
|
||||
long initialTerm = randomLongBetween(1, 10);
|
||||
long initialVersion = randomLongBetween(1, 10);
|
||||
setupFakeMasterServiceAndCoordinator(initialTerm, initialState(node0, initialTerm, initialVersion,
|
||||
new VotingConfiguration(Collections.singleton(node0.getId()))));
|
||||
VotingConfiguration.of(node0)));
|
||||
long newTerm = initialTerm + randomLongBetween(1, 10);
|
||||
|
||||
joinNodeAndRun(new JoinRequest(node0, newTerm, Optional.of(new Join(node0, node0, newTerm, initialTerm, initialVersion))));
|
||||
@ -362,7 +362,7 @@ public class NodeJoinTests extends ESTestCase {
|
||||
long initialTerm = randomLongBetween(1, 10);
|
||||
long initialVersion = randomLongBetween(1, 10);
|
||||
setupFakeMasterServiceAndCoordinator(initialTerm, initialState(node0, initialTerm, initialVersion,
|
||||
new VotingConfiguration(Collections.singleton(node2.getId()))));
|
||||
VotingConfiguration.of(node2)));
|
||||
assertFalse(isLocalNodeElectedMaster());
|
||||
long newTerm = initialTerm + randomLongBetween(1, 10);
|
||||
SimpleFuture futNode0 = joinNodeAsync(new JoinRequest(node0, newTerm, Optional.of(
|
||||
@ -389,7 +389,7 @@ public class NodeJoinTests extends ESTestCase {
|
||||
long initialTerm = randomLongBetween(1, 10);
|
||||
long initialVersion = randomLongBetween(1, 10);
|
||||
setupFakeMasterServiceAndCoordinator(initialTerm, initialState(node0, initialTerm, initialVersion,
|
||||
new VotingConfiguration(Collections.singleton(node0.getId()))));
|
||||
VotingConfiguration.of(node0)));
|
||||
long newTerm = initialTerm + randomLongBetween(1, 10);
|
||||
handleStartJoinFrom(node1, newTerm);
|
||||
handleFollowerCheckFrom(node1, newTerm);
|
||||
@ -464,7 +464,7 @@ public class NodeJoinTests extends ESTestCase {
|
||||
long initialTerm = randomLongBetween(1, 10);
|
||||
long initialVersion = randomLongBetween(1, 10);
|
||||
setupFakeMasterServiceAndCoordinator(initialTerm, initialState(node0, initialTerm, initialVersion,
|
||||
new VotingConfiguration(Collections.singleton(node0.getId()))));
|
||||
VotingConfiguration.of(node0)));
|
||||
long newTerm = initialTerm + randomLongBetween(1, 10);
|
||||
handleStartJoinFrom(node1, newTerm);
|
||||
handleFollowerCheckFrom(node1, newTerm);
|
||||
@ -480,7 +480,7 @@ public class NodeJoinTests extends ESTestCase {
|
||||
long initialTerm = randomLongBetween(1, 10);
|
||||
long initialVersion = randomLongBetween(1, 10);
|
||||
setupFakeMasterServiceAndCoordinator(initialTerm, initialState(node0, initialTerm, initialVersion,
|
||||
new VotingConfiguration(Collections.singleton(node1.getId()))));
|
||||
VotingConfiguration.of(node1)));
|
||||
long newTerm = initialTerm + randomLongBetween(1, 10);
|
||||
SimpleFuture fut = joinNodeAsync(new JoinRequest(node0, newTerm,
|
||||
Optional.of(new Join(node0, node0, newTerm, initialTerm, initialVersion))));
|
||||
|
@ -37,14 +37,12 @@ import org.elasticsearch.transport.TransportService;
|
||||
import org.junit.Before;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static java.util.Collections.emptySet;
|
||||
import static org.elasticsearch.cluster.coordination.PreVoteCollector.REQUEST_PRE_VOTE_ACTION_NAME;
|
||||
@ -135,8 +133,7 @@ public class PreVoteCollectorTests extends ESTestCase {
|
||||
}
|
||||
|
||||
private ClusterState makeClusterState(DiscoveryNode[] votingNodes) {
|
||||
final VotingConfiguration votingConfiguration
|
||||
= new VotingConfiguration(Arrays.stream(votingNodes).map(DiscoveryNode::getId).collect(Collectors.toSet()));
|
||||
final VotingConfiguration votingConfiguration = VotingConfiguration.of(votingNodes);
|
||||
return CoordinationStateTests.clusterState(lastAcceptedTerm, lastAcceptedVersion, localNode,
|
||||
votingConfiguration, votingConfiguration, 0);
|
||||
}
|
||||
|
@ -176,7 +176,7 @@ public class PublicationTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testSimpleClusterStatePublishing() throws InterruptedException {
|
||||
VotingConfiguration singleNodeConfig = new VotingConfiguration(Sets.newHashSet(n1.getId()));
|
||||
VotingConfiguration singleNodeConfig = VotingConfiguration.of(n1);
|
||||
initializeCluster(singleNodeConfig);
|
||||
|
||||
AssertingAckListener ackListener = new AssertingAckListener(nodes.size());
|
||||
@ -252,7 +252,7 @@ public class PublicationTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testClusterStatePublishingWithFaultyNodeBeforeCommit() throws InterruptedException {
|
||||
VotingConfiguration singleNodeConfig = new VotingConfiguration(Sets.newHashSet(n1.getId()));
|
||||
VotingConfiguration singleNodeConfig = VotingConfiguration.of(n1);
|
||||
initializeCluster(singleNodeConfig);
|
||||
|
||||
AssertingAckListener ackListener = new AssertingAckListener(nodes.size());
|
||||
@ -295,7 +295,7 @@ public class PublicationTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testClusterStatePublishingWithFaultyNodeAfterCommit() throws InterruptedException {
|
||||
VotingConfiguration singleNodeConfig = new VotingConfiguration(Sets.newHashSet(n1.getId()));
|
||||
VotingConfiguration singleNodeConfig = VotingConfiguration.of(n1);
|
||||
initializeCluster(singleNodeConfig);
|
||||
|
||||
AssertingAckListener ackListener = new AssertingAckListener(nodes.size());
|
||||
@ -348,7 +348,7 @@ public class PublicationTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testClusterStatePublishingFailsOrTimesOutBeforeCommit() throws InterruptedException {
|
||||
VotingConfiguration config = new VotingConfiguration(Sets.newHashSet(n1.getId(), n2.getId()));
|
||||
VotingConfiguration config = VotingConfiguration.of(n1, n2);
|
||||
initializeCluster(config);
|
||||
|
||||
AssertingAckListener ackListener = new AssertingAckListener(nodes.size());
|
||||
@ -387,7 +387,7 @@ public class PublicationTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testPublishingToMastersFirst() {
|
||||
VotingConfiguration singleNodeConfig = new VotingConfiguration(Sets.newHashSet(n1.getId()));
|
||||
VotingConfiguration singleNodeConfig = VotingConfiguration.of(n1);
|
||||
initializeCluster(singleNodeConfig);
|
||||
|
||||
DiscoveryNodes.Builder discoNodesBuilder = DiscoveryNodes.builder();
|
||||
@ -403,8 +403,7 @@ public class PublicationTests extends ESTestCase {
|
||||
}
|
||||
|
||||
public void testClusterStatePublishingTimesOutAfterCommit() throws InterruptedException {
|
||||
VotingConfiguration config = new VotingConfiguration(randomBoolean() ?
|
||||
Sets.newHashSet(n1.getId(), n2.getId()) : Sets.newHashSet(n1.getId(), n2.getId(), n3.getId()));
|
||||
VotingConfiguration config = randomBoolean() ? VotingConfiguration.of(n1, n2): VotingConfiguration.of(n1, n2, n3);
|
||||
initializeCluster(config);
|
||||
|
||||
AssertingAckListener ackListener = new AssertingAckListener(nodes.size());
|
||||
|
Loading…
x
Reference in New Issue
Block a user