@@ -1892,28 +1892,35 @@ public void testReplicaAlreadyAtCheckpoint() throws Exception {
1892
1892
// index a doc.
1893
1893
client ().prepareIndex (INDEX_NAME ).setId ("1" ).setSource ("foo" , randomInt ()).get ();
1894
1894
refresh (INDEX_NAME );
1895
-
1896
1895
waitForSearchableDocs (1 , primaryNode , replicaNode , replicaNode2 );
1897
1896
1898
1897
internalCluster ().stopRandomNode (InternalTestCluster .nameFilter (primaryNode ));
1899
1898
ensureYellowAndNoInitializingShards (INDEX_NAME );
1900
- IndexShard replica_1 = getIndexShard ( replicaNode , INDEX_NAME );
1901
- IndexShard replica_2 = getIndexShard ( replicaNode2 , INDEX_NAME );
1899
+ AtomicReference < IndexShard > replica_1 = new AtomicReference <>( );
1900
+ AtomicReference < IndexShard > replica_2 = new AtomicReference <>( );
1902
1901
// wait until a replica is promoted & finishes engine flip, we don't care which one
1903
1902
AtomicReference <IndexShard > primary = new AtomicReference <>();
1904
1903
assertBusy (() -> {
1905
- assertTrue ("replica should be promoted as a primary" , replica_1 .routingEntry ().primary () || replica_2 .routingEntry ().primary ());
1906
- primary .set (replica_1 .routingEntry ().primary () ? replica_1 : replica_2 );
1907
- });
1904
+ IndexShard replicaShard1 = getIndexShard (replicaNode , INDEX_NAME );
1905
+ IndexShard replicaShard2 = getIndexShard (replicaNode2 , INDEX_NAME );
1906
+
1907
+ assertNotNull ("Replica shard 1 should not be null" , replicaShard1 );
1908
+ assertNotNull ("Replica shard 2 should not be null" , replicaShard2 );
1909
+
1910
+ replica_1 .set (replicaShard1 );
1911
+ replica_2 .set (replicaShard2 );
1912
+ assertTrue ("replica should be promoted as a primary" , replica_1 .get ().routingEntry ().primary () || replica_2 .get ().routingEntry ().primary ());
1913
+ primary .set (replica_1 .get ().routingEntry ().primary () ? replica_1 .get () : replica_2 .get ());
1914
+ }, 60 , TimeUnit .SECONDS );
1908
1915
1909
1916
FlushRequest request = new FlushRequest (INDEX_NAME );
1910
1917
request .force (true );
1911
1918
primary .get ().flush (request );
1912
1919
1913
1920
assertBusy (() -> {
1914
1921
assertEquals (
1915
- replica_1 .getLatestReplicationCheckpoint ().getSegmentInfosVersion (),
1916
- replica_2 .getLatestReplicationCheckpoint ().getSegmentInfosVersion ()
1922
+ replica_1 .get (). getLatestReplicationCheckpoint ().getSegmentInfosVersion (),
1923
+ replica_2 .get (). getLatestReplicationCheckpoint ().getSegmentInfosVersion ()
1917
1924
);
1918
1925
});
1919
1926
0 commit comments