Skip to content

Commit a0d2885

Browse files
authored
GH-49930: [CI][C++] Pin MinGW MSYS2 packages to unblock CI (#49931)
### Rationale for this change Temporary workaround for #49930! Both MinGW jobs fail every run since 2026 April 30 from two MSYS2 updates: 1. MINGW64: `gcc 15.2 -> 16.1` deterministically breaks 4 tests (`arrow-async-utility-test`, `arrow-threading-utility-test`, `arrow-dataset-dataset-writer-test`, `arrow-dataset-file-test`) See #49930 for per-test status (and the connection to #49272/#49462). 2. MINGW64 and CLANG64: `arrow-s3fs-test` fails - `aws-sdk-cpp 1.11.479 -> 1.11.801` stopped sending `Content-Md5` on `DeleteObjects`, but bundled MinIO `RELEASE.2024-09-13` still requires it. ### What changes are included in this PR? a) Workaround for 1.: new temporary `Pin MSYS2 packages` step on MINGW64 (CLANG64 is unaffected). Pins `gcc-libs` to 15.2 plus C++ packages for ABI compatibility. **Removable** when all #49930-tracked failures pass on current upstream MSYS2. b) Resolves 2.: bump bundled MinIO to `RELEASE.2025-01-20T14-49-07Z` to match `ci/scripts/install_minio.sh` (per review). See further discussion about migrating from MinIO in #47908 ### Are these changes tested? CI [failing without pins](https://github.com/apache/arrow/actions/runs/25442601074/job/74637722454) -> [passing](https://github.com/apache/arrow/actions/runs/25479824734/job/74761254697) ### Are there any user-facing changes? No * GitHub Issue: #49930 Authored-by: Tadeja Kadunc <tadeja.kadunc@gmail.com> Signed-off-by: Raúl Cumplido <raulcumplido@gmail.com>
1 parent 7339a29 commit a0d2885

1 file changed

Lines changed: 36 additions & 1 deletion

File tree

.github/workflows/cpp.yml

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,40 @@ jobs:
366366
- name: Setup MSYS2
367367
shell: msys2 {0}
368368
run: ci/scripts/msys2_setup.sh cpp
369+
- name: Pin MSYS2 packages
370+
# Temporary workaround for #49930: gcc 16 surfaces a cluster of 5
371+
# MINGW64 test failures. Pinning gcc-libs to 15.2 (and C++ packages
372+
# rebuilt against gcc-libs 16.1, for ABI compatibility) avoids all
373+
# of them. #49272/#49462 cover one (arrow-json-test); the other 4
374+
# (async-utility-test, threading-utility-test, dataset-writer-test
375+
# `bad_weak_ptr`, dataset-file-test) need separate fixes — see #49930.
376+
# Remove once all 5 pass on current upstream MSYS2 without these pins
377+
if: matrix.msystem_upper == 'MINGW64'
378+
shell: msys2 {0}
379+
run: |
380+
set -ex
381+
base="https://repo.msys2.org/mingw/mingw64"
382+
urls=(
383+
"$base/mingw-w64-x86_64-gcc-libs-15.2.0-14-any.pkg.tar.zst"
384+
"$base/mingw-w64-x86_64-gcc-15.2.0-14-any.pkg.tar.zst"
385+
"$base/mingw-w64-x86_64-aws-crt-cpp-0.38.4-1-any.pkg.tar.zst"
386+
"$base/mingw-w64-x86_64-boost-libs-1.91.0-1-any.pkg.tar.zst"
387+
"$base/mingw-w64-x86_64-boost-1.91.0-1-any.pkg.tar.zst"
388+
"$base/mingw-w64-x86_64-ccache-4.13.2-1-any.pkg.tar.zst"
389+
"$base/mingw-w64-x86_64-clang-libs-22.1.4-1-any.pkg.tar.zst"
390+
"$base/mingw-w64-x86_64-clang-22.1.4-1-any.pkg.tar.zst"
391+
"$base/mingw-w64-x86_64-cmake-4.3.2-2-any.pkg.tar.zst"
392+
"$base/mingw-w64-x86_64-icu-78.3-1-any.pkg.tar.zst"
393+
"$base/mingw-w64-x86_64-llvm-libs-22.1.4-1-any.pkg.tar.zst"
394+
"$base/mingw-w64-x86_64-llvm-tools-22.1.4-1-any.pkg.tar.zst"
395+
"$base/mingw-w64-x86_64-llvm-22.1.4-1-any.pkg.tar.zst"
396+
"$base/mingw-w64-x86_64-tbb-2022.3.0-1-any.pkg.tar.zst"
397+
"$base/mingw-w64-x86_64-thrift-0.22.0-1-any.pkg.tar.zst"
398+
"$base/mingw-w64-x86_64-zstd-1.5.7-1-any.pkg.tar.zst"
399+
"$base/mingw-w64-x86_64-gflags-2.2.2-7-any.pkg.tar.zst"
400+
"$base/mingw-w64-x86_64-aws-sdk-cpp-1.11.479-1-any.pkg.tar.zst"
401+
)
402+
pacman -U --noconfirm "${urls[@]}"
369403
- name: Cache ccache
370404
uses: actions/cache@v5
371405
with:
@@ -386,12 +420,13 @@ jobs:
386420
# https://github.com/apache/arrow/issues/48593
387421
ci/scripts/download_tz_database.sh
388422
- name: Download MinIO
423+
# Match the version pinned in ci/scripts/install_minio.sh.
389424
shell: msys2 {0}
390425
run: |
391426
mkdir -p /usr/local/bin
392427
wget \
393428
--output-document /usr/local/bin/minio.exe \
394-
https://dl.min.io/server/minio/release/windows-amd64/archive/minio.RELEASE.2024-09-13T20-26-02Z
429+
https://dl.min.io/server/minio/release/windows-amd64/archive/minio.RELEASE.2025-01-20T14-49-07Z
395430
chmod +x /usr/local/bin/minio.exe
396431
- name: Set up Python
397432
uses: actions/setup-python@v6

0 commit comments

Comments
 (0)