@@ -144,6 +144,8 @@ public void testExecuteBulkIndexRequest() throws Exception {
144144 BulkShardRequest bulkShardRequest =
145145 new BulkShardRequest (shardId , RefreshPolicy .NONE , items );
146146
147+ randomlySetIgnoredPrimaryResponse (primaryRequest );
148+
147149 UpdateHelper updateHelper = null ;
148150 BulkPrimaryExecutionContext context = new BulkPrimaryExecutionContext (bulkShardRequest , shard );
149151 TransportShardBulkAction .executeBulkItemRequest (context , updateHelper , threadPool ::absoluteTimeInMillis ,
@@ -169,6 +171,8 @@ public void testExecuteBulkIndexRequest() throws Exception {
169171 items [0 ] = primaryRequest ;
170172 bulkShardRequest = new BulkShardRequest (shardId , RefreshPolicy .NONE , items );
171173
174+ randomlySetIgnoredPrimaryResponse (primaryRequest );
175+
172176 BulkPrimaryExecutionContext secondContext = new BulkPrimaryExecutionContext (bulkShardRequest , shard );
173177 TransportShardBulkAction .executeBulkItemRequest (secondContext , updateHelper ,
174178 threadPool ::absoluteTimeInMillis , new ThrowingMappingUpdatePerformer (new RuntimeException ("fail" )), () -> {});
@@ -271,6 +275,8 @@ public void testExecuteBulkIndexRequestWithMappingUpdates() throws Exception {
271275 when (shard .applyIndexOperationOnPrimary (anyLong (), any (), any (), anyLong (), anyLong (), anyLong (), anyBoolean ()))
272276 .thenReturn (mappingUpdate );
273277
278+ randomlySetIgnoredPrimaryResponse (items [0 ]);
279+
274280 // Pretend the mappings haven't made it to the node yet
275281 BulkPrimaryExecutionContext context = new BulkPrimaryExecutionContext (bulkShardRequest , shard );
276282 AtomicInteger updateCalled = new AtomicInteger ();
@@ -326,6 +332,8 @@ public void testExecuteBulkIndexRequestWithErrorWhileUpdatingMapping() throws Ex
326332
327333 boolean errorOnWait = randomBoolean ();
328334
335+ randomlySetIgnoredPrimaryResponse (items [0 ]);
336+
329337 BulkPrimaryExecutionContext context = new BulkPrimaryExecutionContext (bulkShardRequest , shard );
330338 TransportShardBulkAction .executeBulkItemRequest (context , updateHelper , threadPool ::absoluteTimeInMillis ,
331339 errorOnWait == false ? new ThrowingMappingUpdatePerformer (err ) : new NoopMappingUpdatePerformer (),
@@ -365,6 +373,8 @@ public void testExecuteBulkDeleteRequest() throws Exception {
365373 Translog .Location location = new Translog .Location (0 , 0 , 0 );
366374 UpdateHelper updateHelper = null ;
367375
376+ randomlySetIgnoredPrimaryResponse (items [0 ]);
377+
368378 BulkPrimaryExecutionContext context = new BulkPrimaryExecutionContext (bulkShardRequest , shard );
369379 TransportShardBulkAction .executeBulkItemRequest (context , updateHelper , threadPool ::absoluteTimeInMillis ,
370380 new NoopMappingUpdatePerformer (), () -> {});
@@ -405,6 +415,8 @@ public void testExecuteBulkDeleteRequest() throws Exception {
405415
406416 location = context .getLocationToSync ();
407417
418+ randomlySetIgnoredPrimaryResponse (items [0 ]);
419+
408420 context = new BulkPrimaryExecutionContext (bulkShardRequest , shard );
409421 TransportShardBulkAction .executeBulkItemRequest (context , updateHelper , threadPool ::absoluteTimeInMillis ,
410422 new NoopMappingUpdatePerformer (), () -> {});
@@ -459,6 +471,8 @@ public void testNoopUpdateRequest() throws Exception {
459471 BulkShardRequest bulkShardRequest =
460472 new BulkShardRequest (shardId , RefreshPolicy .NONE , items );
461473
474+ randomlySetIgnoredPrimaryResponse (primaryRequest );
475+
462476 BulkPrimaryExecutionContext context = new BulkPrimaryExecutionContext (bulkShardRequest , shard );
463477 TransportShardBulkAction .executeBulkItemRequest (context , updateHelper , threadPool ::absoluteTimeInMillis ,
464478 new NoopMappingUpdatePerformer (), () -> {});
@@ -503,6 +517,7 @@ public void testUpdateRequestWithFailure() throws Exception {
503517 BulkShardRequest bulkShardRequest =
504518 new BulkShardRequest (shardId , RefreshPolicy .NONE , items );
505519
520+ randomlySetIgnoredPrimaryResponse (primaryRequest );
506521
507522 BulkPrimaryExecutionContext context = new BulkPrimaryExecutionContext (bulkShardRequest , shard );
508523 TransportShardBulkAction .executeBulkItemRequest (context , updateHelper , threadPool ::absoluteTimeInMillis ,
@@ -551,6 +566,7 @@ public void testUpdateRequestWithConflictFailure() throws Exception {
551566 BulkShardRequest bulkShardRequest =
552567 new BulkShardRequest (shardId , RefreshPolicy .NONE , items );
553568
569+ randomlySetIgnoredPrimaryResponse (primaryRequest );
554570
555571 BulkPrimaryExecutionContext context = new BulkPrimaryExecutionContext (bulkShardRequest , shard );
556572 TransportShardBulkAction .executeBulkItemRequest (context , updateHelper , threadPool ::absoluteTimeInMillis ,
@@ -597,6 +613,7 @@ public void testUpdateRequestWithSuccess() throws Exception {
597613 BulkShardRequest bulkShardRequest =
598614 new BulkShardRequest (shardId , RefreshPolicy .NONE , items );
599615
616+ randomlySetIgnoredPrimaryResponse (primaryRequest );
600617
601618 BulkPrimaryExecutionContext context = new BulkPrimaryExecutionContext (bulkShardRequest , shard );
602619 TransportShardBulkAction .executeBulkItemRequest (context , updateHelper , threadPool ::absoluteTimeInMillis ,
@@ -642,6 +659,7 @@ public void testUpdateWithDelete() throws Exception {
642659 BulkShardRequest bulkShardRequest =
643660 new BulkShardRequest (shardId , RefreshPolicy .NONE , items );
644661
662+ randomlySetIgnoredPrimaryResponse (primaryRequest );
645663
646664 BulkPrimaryExecutionContext context = new BulkPrimaryExecutionContext (bulkShardRequest , shard );
647665 TransportShardBulkAction .executeBulkItemRequest (context , updateHelper , threadPool ::absoluteTimeInMillis ,
@@ -675,6 +693,7 @@ public void testFailureDuringUpdateProcessing() throws Exception {
675693 BulkShardRequest bulkShardRequest =
676694 new BulkShardRequest (shardId , RefreshPolicy .NONE , items );
677695
696+ randomlySetIgnoredPrimaryResponse (primaryRequest );
678697
679698 BulkPrimaryExecutionContext context = new BulkPrimaryExecutionContext (bulkShardRequest , shard );
680699 TransportShardBulkAction .executeBulkItemRequest (context , updateHelper , threadPool ::absoluteTimeInMillis ,
@@ -808,6 +827,14 @@ public void testRetries() throws Exception {
808827 assertThat (response .getSeqNo (), equalTo (13L ));
809828 }
810829
830+ private void randomlySetIgnoredPrimaryResponse (BulkItemRequest primaryRequest ) {
831+ if (randomBoolean ()) {
832+ // add a response to the request and thereby check that it is ignored for the primary.
833+ primaryRequest .setPrimaryResponse (new BulkItemResponse (0 , DocWriteRequest .OpType .INDEX , new IndexResponse (null , "_doc" ,
834+ "ignore-primary-response-on-primary" , 42 , 42 , 42 , false )));
835+ }
836+ }
837+
811838 /**
812839 * Fake IndexResult that has a settable translog location
813840 */
0 commit comments