From 07873ac8094dd6d152a85c8ac47c0be2f47b7cae Mon Sep 17 00:00:00 2001 From: Dianjin Wang Date: Mon, 14 Sep 2026 17:24:32 +0800 Subject: [PATCH] Fix s3_plugin_e2e: dl.min.io no longer serves MinIO binaries MinIO archived the open-source Server and Client (mc) and stopped serving their binaries: every artifact under dl.min.io now returns HTTP 410 Gone. The s3_plugin_e2e test case downloads both, so it fails on the first curl. CI has not run since 2026-09-09, before the shutdown, so this has not gone red yet -- it breaks on the next run of that test case. Pin the final open-source releases from their GitHub release assets, which are still published, and verify each binary against the sha256sum MinIO publishes next to it. The previous code chmod +x'd an unverified download. Server RELEASE.2025-09-07T16-13-09Z, client RELEASE.2025-08-13T08-35-41Z. Both keep the minio/mc file names and the default minioadmin credentials, so the server startup, health probe and bucket setup are unchanged. The release/checksum values are plain shell variables rather than exported env: anything with a MINIO_ prefix would be read as configuration by the MinIO server started a few lines below. --- .github/workflows/cloudberry-backup-ci.yml | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cloudberry-backup-ci.yml b/.github/workflows/cloudberry-backup-ci.yml index 5fe3f75e..e1682155 100644 --- a/.github/workflows/cloudberry-backup-ci.yml +++ b/.github/workflows/cloudberry-backup-ci.yml @@ -351,7 +351,22 @@ jobs: make end_to_end 2>&1 | tee "${TEST_LOG_ROOT}/cloudberry-backup-end_to_end.log" ;; s3_plugin_e2e) - curl -fsSL https://dl.min.io/server/minio/release/linux-amd64/minio -o /tmp/minio + # dl.min.io now returns HTTP 410: MinIO archived the + # open-source Server and Client and no longer serves them from + # that host. The final open-source releases are still + # published as GitHub release assets, so pin them there and + # verify the checksums MinIO publishes next to each binary. + # + # These are plain shell variables on purpose: anything + # exported with a MINIO_ prefix would be picked up as + # configuration by the server started below. + minio_release="RELEASE.2025-09-07T16-13-09Z" + minio_sha256="7c5bd8512c6e966455b1d198209358b2d191c77a83ab377c4073281065fb855f" + mc_release="RELEASE.2025-08-13T08-35-41Z" + mc_sha256="01f866e9c5f9b87c2b09116fa5d7c06695b106242d829a8bb32990c00312e891" + + curl -fsSL "https://github.com/minio/minio/releases/download/${minio_release}/minio.linux-amd64.${minio_release}" -o /tmp/minio + echo "${minio_sha256} /tmp/minio" | sha256sum -c - chmod +x /tmp/minio mkdir -p /tmp/minio-data /tmp/minio server --address ":9000" /tmp/minio-data > "${TEST_LOG_ROOT}/minio.log" 2>&1 & @@ -362,7 +377,8 @@ jobs: sleep 1 done - curl -fsSL https://dl.min.io/client/mc/release/linux-amd64/mc -o /tmp/mc + curl -fsSL "https://github.com/minio/mc/releases/download/${mc_release}/mc.linux-amd64.${mc_release}" -o /tmp/mc + echo "${mc_sha256} /tmp/mc" | sha256sum -c - chmod +x /tmp/mc /tmp/mc alias set local http://127.0.0.1:9000 minioadmin minioadmin /tmp/mc mb --ignore-existing local/cloudberry-backup-s3-test