@@ -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 ,
@@ -552,6 +567,7 @@ public void testUpdateRequestWithConflictFailure() throws Exception {
552567 BulkShardRequest bulkShardRequest =
553568 new BulkShardRequest (shardId , RefreshPolicy .NONE , items );
554569
570+ randomlySetIgnoredPrimaryResponse (primaryRequest );
555571
556572 BulkPrimaryExecutionContext context = new BulkPrimaryExecutionContext (bulkShardRequest , shard );
557573 TransportShardBulkAction .executeBulkItemRequest (context , updateHelper , threadPool ::absoluteTimeInMillis ,
@@ -598,6 +614,7 @@ public void testUpdateRequestWithSuccess() throws Exception {
598614 BulkShardRequest bulkShardRequest =
599615 new BulkShardRequest (shardId , RefreshPolicy .NONE , items );
600616
617+ randomlySetIgnoredPrimaryResponse (primaryRequest );
601618
602619 BulkPrimaryExecutionContext context = new BulkPrimaryExecutionContext (bulkShardRequest , shard );
603620 TransportShardBulkAction .executeBulkItemRequest (context , updateHelper , threadPool ::absoluteTimeInMillis ,
@@ -643,6 +660,7 @@ public void testUpdateWithDelete() throws Exception {
643660 BulkShardRequest bulkShardRequest =
644661 new BulkShardRequest (shardId , RefreshPolicy .NONE , items );
645662
663+ randomlySetIgnoredPrimaryResponse (primaryRequest );
646664
647665 BulkPrimaryExecutionContext context = new BulkPrimaryExecutionContext (bulkShardRequest , shard );
648666 TransportShardBulkAction .executeBulkItemRequest (context , updateHelper , threadPool ::absoluteTimeInMillis ,
@@ -676,6 +694,7 @@ public void testFailureDuringUpdateProcessing() throws Exception {
676694 BulkShardRequest bulkShardRequest =
677695 new BulkShardRequest (shardId , RefreshPolicy .NONE , items );
678696
697+ randomlySetIgnoredPrimaryResponse (primaryRequest );
679698
680699 BulkPrimaryExecutionContext context = new BulkPrimaryExecutionContext (bulkShardRequest , shard );
681700 TransportShardBulkAction .executeBulkItemRequest (context , updateHelper , threadPool ::absoluteTimeInMillis ,
@@ -809,6 +828,14 @@ public void testRetries() throws Exception {
809828 assertThat (response .getSeqNo (), equalTo (13L ));
810829 }
811830
831+ private void randomlySetIgnoredPrimaryResponse (BulkItemRequest primaryRequest ) {
832+ if (randomBoolean ()) {
833+ // add a response to the request and thereby check that it is ignored for the primary.
834+ primaryRequest .setPrimaryResponse (new BulkItemResponse (0 , DocWriteRequest .OpType .INDEX , new IndexResponse (null , "_doc" ,
835+ "ignore-primary-response-on-primary" , 42 , 42 , 42 , false )));
836+ }
837+ }
838+
812839 /**
813840 * Fake IndexResult that has a settable translog location
814841 */
0 commit comments