diff --git a/test/fixtures/minio-fixture/src/main/java/org/elasticsearch/test/fixtures/minio/MinioTestContainer.java b/test/fixtures/minio-fixture/src/main/java/org/elasticsearch/test/fixtures/minio/MinioTestContainer.java index 4221a7e92d20e..9470dc7a3bef4 100644 --- a/test/fixtures/minio-fixture/src/main/java/org/elasticsearch/test/fixtures/minio/MinioTestContainer.java +++ b/test/fixtures/minio-fixture/src/main/java/org/elasticsearch/test/fixtures/minio/MinioTestContainer.java @@ -15,10 +15,12 @@ public final class MinioTestContainer extends DockerEnvironmentAwareTestContainer { + // NB releases earlier than 2025-05-24 are buggy, see https://github.com/minio/minio/issues/21189, and #127166 for a workaround. + // However the 2025-05-24 release is also buggy, see https://github.com/minio/minio/issues/21377, and this has no workaround. + // Also https://github.com/minio/minio/issues/21456 seems to affect releases newer than 2025-05-24, see #131815 for workaround. + public static final String DOCKER_BASE_IMAGE = "minio/minio:RELEASE.2025-07-23T15-54-02Z"; + private static final int servicePort = 9000; - // NB releases earlier than 2025-05-24 are buggy, see https://github.com/minio/minio/issues/21189, and #127166 for a workaround - // However the 2025-05-24 release is also buggy, see https://github.com/minio/minio/issues/21377, and this has no workaround - public static final String DOCKER_BASE_IMAGE = "minio/minio:RELEASE.2025-06-13T11-33-47Z"; private final boolean enabled; public MinioTestContainer(boolean enabled, String accessKey, String secretKey, String bucketName) { diff --git a/x-pack/plugin/snapshot-repo-test-kit/qa/minio/src/javaRestTest/java/org/elasticsearch/repositories/blobstore/testkit/analyze/MinioRepositoryAnalysisRestIT.java b/x-pack/plugin/snapshot-repo-test-kit/qa/minio/src/javaRestTest/java/org/elasticsearch/repositories/blobstore/testkit/analyze/MinioRepositoryAnalysisRestIT.java index 481e9ec80ec94..199d30e986bb5 100644 --- a/x-pack/plugin/snapshot-repo-test-kit/qa/minio/src/javaRestTest/java/org/elasticsearch/repositories/blobstore/testkit/analyze/MinioRepositoryAnalysisRestIT.java +++ b/x-pack/plugin/snapshot-repo-test-kit/qa/minio/src/javaRestTest/java/org/elasticsearch/repositories/blobstore/testkit/analyze/MinioRepositoryAnalysisRestIT.java @@ -34,6 +34,11 @@ public class MinioRepositoryAnalysisRestIT extends AbstractRepositoryAnalysisRes .setting("s3.client.repository_test_kit.protocol", () -> "http") .setting("s3.client.repository_test_kit.endpoint", minioFixture::getAddress) .setting("xpack.security.enabled", "false") + // Skip listing of pre-existing uploads during a CAS because MinIO sometimes leaks them; also reduce the delay before proceeding + // TODO do not set these if running a MinIO version in which https://github.com/minio/minio/issues/21189 + // and https://github.com/minio/minio/issues/21456 are both fixed + .setting("repository_s3.compare_and_exchange.time_to_live", "-1") + .setting("repository_s3.compare_and_exchange.anti_contention_delay", "100ms") .setting("xpack.ml.enabled", "false") .build();