Fix AutoFollowIT (#49025)

This commit fixes an off-by-one bug in the AutoFollowIT test that causes
failures because the leaderIndices counter is incremented during the evaluation
of the leaderIndices.incrementAndGet() < 20 condition but the 20th index is
not created, making the final assertion not verified.

It also gives a bit more time for cluster state updates to be processed on the
follower cluster.

Closes #48982
This commit is contained in:
Tanguy Leroux 2019-11-13 07:17:26 -05:00
parent f0e386d60d
commit e86b598813
1 changed files with 5 additions and 8 deletions

View File

@ -502,17 +502,14 @@ public class AutoFollowIT extends CcrIntegTestCase {
// start creating new indices on the remote cluster // start creating new indices on the remote cluster
final Thread createNewLeaderIndicesThread = new Thread(() -> { final Thread createNewLeaderIndicesThread = new Thread(() -> {
int leaderIndicesCount; while (running.get() && leaderIndices.get() < 20) {
while (running.get() && (leaderIndicesCount = leaderIndices.incrementAndGet()) < 20) {
final String prefix = randomFrom(prefixes); final String prefix = randomFrom(prefixes);
final String leaderIndex = prefix + leaderIndicesCount; final String leaderIndex = prefix + leaderIndices.incrementAndGet();
try { try {
createLeaderIndex(leaderIndex, leaderIndexSettings); createLeaderIndex(leaderIndex, leaderIndexSettings);
ensureLeaderGreen(leaderIndex); ensureLeaderGreen(leaderIndex);
if (pausedAutoFollowerPatterns.stream().noneMatch(pattern -> pattern.startsWith(prefix))) { if (pausedAutoFollowerPatterns.stream().noneMatch(pattern -> pattern.startsWith(prefix))) {
final String followingIndex = "copy-" + leaderIndex; ensureFollowerGreen("copy-" + leaderIndex);
assertBusy(() -> assertTrue(followerClient().admin().indices()
.exists(new IndicesExistsRequest(followingIndex)).actionGet().isExists()));
} else { } else {
Thread.sleep(200L); Thread.sleep(200L);
} }
@ -534,7 +531,6 @@ public class AutoFollowIT extends CcrIntegTestCase {
// wait for more leader indices to be created on the remote cluster // wait for more leader indices to be created on the remote cluster
assertBusy(() -> assertThat(leaderIndices.get(), greaterThanOrEqualTo(6))); assertBusy(() -> assertThat(leaderIndices.get(), greaterThanOrEqualTo(6)));
assertBusy(() -> assertThat(getAutoFollowStats().getNumberOfSuccessfulFollowIndices(), greaterThanOrEqualTo(6L)));
// resume auto follow patterns // resume auto follow patterns
pausedAutoFollowerPatterns.forEach(this::resumeAutoFollowPattern); pausedAutoFollowerPatterns.forEach(this::resumeAutoFollowPattern);
@ -542,7 +538,8 @@ public class AutoFollowIT extends CcrIntegTestCase {
// wait for more leader indices to be created on the remote cluster // wait for more leader indices to be created on the remote cluster
assertBusy(() -> assertThat(leaderIndices.get(), greaterThanOrEqualTo(9))); assertBusy(() -> assertThat(leaderIndices.get(), greaterThanOrEqualTo(9)));
assertBusy(() -> assertThat(getAutoFollowStats().getNumberOfSuccessfulFollowIndices(), greaterThanOrEqualTo(9L))); assertBusy(() -> assertThat(getAutoFollowStats().getNumberOfSuccessfulFollowIndices(), greaterThanOrEqualTo(9L)),
30L, TimeUnit.SECONDS);
running.set(false); running.set(false);
createNewLeaderIndicesThread.join(); createNewLeaderIndicesThread.join();