Просмотр исходного кода

RepositoryAnalysisFailureIT: disrupt earlier (#127032)

The fix to #126747 was only for one test. This applies
that change to all the tests in this suite that need it.

Fixes #127029
Brendan Cully 6 месяцев назад
Родитель
Сommit
26254e3f42

+ 0 - 3
muted-tests.yml

@@ -411,9 +411,6 @@ tests:
 - class: org.elasticsearch.packaging.test.DockerTests
   method: test024InstallPluginFromArchiveUsingConfigFile
   issue: https://github.com/elastic/elasticsearch/issues/126936
-- class: org.elasticsearch.repositories.blobstore.testkit.analyze.RepositoryAnalysisFailureIT
-  method: testFailsOnReadError
-  issue: https://github.com/elastic/elasticsearch/issues/127029
 - class: org.elasticsearch.xpack.test.rest.XPackRestIT
   method: test {p0=esql/10_basic/basic with documents_found}
   issue: https://github.com/elastic/elasticsearch/issues/127039

+ 10 - 6
x-pack/plugin/snapshot-repo-test-kit/src/internalClusterTest/java/org/elasticsearch/repositories/blobstore/testkit/analyze/RepositoryAnalysisFailureIT.java

@@ -134,7 +134,7 @@ public class RepositoryAnalysisFailureIT extends AbstractSnapshotIntegTestCase {
         request.maxBlobSize(ByteSizeValue.ofBytes(10L));
         request.abortWritePermitted(false);
 
-        final CountDown countDown = new CountDown(between(1, request.getBlobCount()));
+        final CountDown countDown = createDisruptionCountdown(request);
         blobStore.setDisruption(new Disruption() {
             @Override
             public byte[] onRead(byte[] actualContents, long position, long length) throws IOException {
@@ -158,7 +158,7 @@ public class RepositoryAnalysisFailureIT extends AbstractSnapshotIntegTestCase {
         request.abortWritePermitted(false);
         request.rareActionProbability(0.0); // not found on an early read or an overwrite is ok
 
-        final CountDown countDown = new CountDown(between(1, request.getBlobCount()));
+        final CountDown countDown = createDisruptionCountdown(request);
 
         blobStore.setDisruption(new Disruption() {
             @Override
@@ -212,7 +212,7 @@ public class RepositoryAnalysisFailureIT extends AbstractSnapshotIntegTestCase {
         // leads to CI failures. Therefore, we disable rare actions to improve CI stability.
         request.rareActionProbability(0.0);
 
-        final CountDown countDown = new CountDown(between(1, request.getBlobCount()));
+        final CountDown countDown = createDisruptionCountdown(request);
 
         blobStore.setDisruption(new Disruption() {
             @Override
@@ -234,9 +234,7 @@ public class RepositoryAnalysisFailureIT extends AbstractSnapshotIntegTestCase {
         request.maxBlobSize(ByteSizeValue.ofBytes(10L));
         request.abortWritePermitted(false);
 
-        // requests that create copies count as two blobs. Halving the count ensures that we trigger the disruption
-        // even if every request is a copy
-        final CountDown countDown = new CountDown(between(1, request.getBlobCount() / 2));
+        final CountDown countDown = createDisruptionCountdown(request);
 
         blobStore.setDisruption(new Disruption() {
 
@@ -526,6 +524,12 @@ public class RepositoryAnalysisFailureIT extends AbstractSnapshotIntegTestCase {
         assertEquals(OperationPurpose.REPOSITORY_ANALYSIS, purpose);
     }
 
+    private static CountDown createDisruptionCountdown(RepositoryAnalyzeAction.Request request) {
+        // requests that create copies count as two blobs. Halving the count ensures that we trigger the disruption
+        // even if every request is a copy
+        return new CountDown(between(1, request.getBlobCount() / 2));
+    }
+
     public static class TestPlugin extends Plugin implements RepositoryPlugin {
 
         static final String DISRUPTABLE_REPO_TYPE = "disruptable";