This is an automated email from the ASF dual-hosted git repository.
raulcd pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/main by this push:
new a0d2885b10 GH-49930: [CI][C++] Pin MinGW MSYS2 packages to unblock CI
(#49931)
a0d2885b10 is described below
commit a0d2885b101acb439f7f79ec2237028974e74e64
Author: tadeja <[email protected]>
AuthorDate: Thu May 7 16:18:56 2026 +0200
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 <[email protected]>
Signed-off-by: Raúl Cumplido <[email protected]>
---
.github/workflows/cpp.yml | 37 ++++++++++++++++++++++++++++++++++++-
1 file changed, 36 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/cpp.yml b/.github/workflows/cpp.yml
index 51fb5ead5d..b2acdab3fd 100644
--- a/.github/workflows/cpp.yml
+++ b/.github/workflows/cpp.yml
@@ -366,6 +366,40 @@ jobs:
- name: Setup MSYS2
shell: msys2 {0}
run: ci/scripts/msys2_setup.sh cpp
+ - name: Pin MSYS2 packages
+ # Temporary workaround for #49930: gcc 16 surfaces a cluster of 5
+ # MINGW64 test failures. Pinning gcc-libs to 15.2 (and C++ packages
+ # rebuilt against gcc-libs 16.1, for ABI compatibility) avoids all
+ # of them. #49272/#49462 cover one (arrow-json-test); the other 4
+ # (async-utility-test, threading-utility-test, dataset-writer-test
+ # `bad_weak_ptr`, dataset-file-test) need separate fixes — see #49930.
+ # Remove once all 5 pass on current upstream MSYS2 without these pins
+ if: matrix.msystem_upper == 'MINGW64'
+ shell: msys2 {0}
+ run: |
+ set -ex
+ base="https://repo.msys2.org/mingw/mingw64"
+ urls=(
+ "$base/mingw-w64-x86_64-gcc-libs-15.2.0-14-any.pkg.tar.zst"
+ "$base/mingw-w64-x86_64-gcc-15.2.0-14-any.pkg.tar.zst"
+ "$base/mingw-w64-x86_64-aws-crt-cpp-0.38.4-1-any.pkg.tar.zst"
+ "$base/mingw-w64-x86_64-boost-libs-1.91.0-1-any.pkg.tar.zst"
+ "$base/mingw-w64-x86_64-boost-1.91.0-1-any.pkg.tar.zst"
+ "$base/mingw-w64-x86_64-ccache-4.13.2-1-any.pkg.tar.zst"
+ "$base/mingw-w64-x86_64-clang-libs-22.1.4-1-any.pkg.tar.zst"
+ "$base/mingw-w64-x86_64-clang-22.1.4-1-any.pkg.tar.zst"
+ "$base/mingw-w64-x86_64-cmake-4.3.2-2-any.pkg.tar.zst"
+ "$base/mingw-w64-x86_64-icu-78.3-1-any.pkg.tar.zst"
+ "$base/mingw-w64-x86_64-llvm-libs-22.1.4-1-any.pkg.tar.zst"
+ "$base/mingw-w64-x86_64-llvm-tools-22.1.4-1-any.pkg.tar.zst"
+ "$base/mingw-w64-x86_64-llvm-22.1.4-1-any.pkg.tar.zst"
+ "$base/mingw-w64-x86_64-tbb-2022.3.0-1-any.pkg.tar.zst"
+ "$base/mingw-w64-x86_64-thrift-0.22.0-1-any.pkg.tar.zst"
+ "$base/mingw-w64-x86_64-zstd-1.5.7-1-any.pkg.tar.zst"
+ "$base/mingw-w64-x86_64-gflags-2.2.2-7-any.pkg.tar.zst"
+ "$base/mingw-w64-x86_64-aws-sdk-cpp-1.11.479-1-any.pkg.tar.zst"
+ )
+ pacman -U --noconfirm "${urls[@]}"
- name: Cache ccache
uses: actions/cache@v5
with:
@@ -386,12 +420,13 @@ jobs:
# https://github.com/apache/arrow/issues/48593
ci/scripts/download_tz_database.sh
- name: Download MinIO
+ # Match the version pinned in ci/scripts/install_minio.sh.
shell: msys2 {0}
run: |
mkdir -p /usr/local/bin
wget \
--output-document /usr/local/bin/minio.exe \
-
https://dl.min.io/server/minio/release/windows-amd64/archive/minio.RELEASE.2024-09-13T20-26-02Z
+
https://dl.min.io/server/minio/release/windows-amd64/archive/minio.RELEASE.2025-01-20T14-49-07Z
chmod +x /usr/local/bin/minio.exe
- name: Set up Python
uses: actions/setup-python@v6