Skip to content

Commit 08057a9

Browse files
author
Rafał Hibner
committed
Merge branch 'ThrottledAsyncTaskSchedulerWaitForCallback' into combined2
2 parents d55677c + 23a887a commit 08057a9

86 files changed

Lines changed: 1744 additions & 1067 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,12 @@ ULIMIT_CORE=-1
4949
ALMALINUX=8
5050
ALPINE_LINUX=3.18
5151
DEBIAN=12
52-
FEDORA=39
52+
FEDORA=42
5353
UBUNTU=22.04
5454

5555
# Default versions for various dependencies
5656
CLANG_TOOLS=14
57-
CMAKE=3.25.0
57+
CMAKE=3.26.0
5858
CUDA=11.7.1
5959
DASK=latest
6060
DOTNET=8.0

.github/workflows/release_candidate.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ jobs:
6262
else
6363
version=$(grep '^set(ARROW_VERSION ' cpp/CMakeLists.txt | \
6464
grep -E -o '[0-9]+\.[0-9]+\.[0-9]+')
65-
rc_num=0
65+
rc_num=999
6666
git config user.name "github-actions[bot]"
6767
git config user.email "github-actions[bot]@users.noreply.github.com"
6868
git tag \
@@ -89,14 +89,16 @@ jobs:
8989
"dev/release/utils-create-release-tarball.sh ${VERSION} ${RC_NUM}" \
9090
apache-arrow-${VERSION}.tar.gz
9191
dev/release/utils-create-release-tarball.sh ${VERSION} ${RC_NUM}
92-
echo "RELEASE_TARBALL=apache-arrow-${VERSION}.tar.gz" >> ${GITHUB_ENV}
93-
dev/release/utils-generate-checksum.sh "apache-arrow-${VERSION}.tar.gz"
92+
RELEASE_TARBALL=apache-arrow-${VERSION}.tar.gz
93+
echo "RELEASE_TARBALL=${RELEASE_TARBALL}" >> ${GITHUB_ENV}
94+
dev/release/run-rat.sh "${RELEASE_TARBALL}"
95+
dev/release/utils-generate-checksum.sh "${RELEASE_TARBALL}"
9496
if [ -n "${ARROW_GPG_SECRET_KEY}" ]; then
9597
echo "${ARROW_GPG_SECRET_KEY}" | gpg --import
9698
gpg \
9799
--armor \
98100
--detach-sign \
99-
--local-user "${ARROW_GPG_SECRET_KEY}" \
101+
--local-user "${ARROW_GPG_KEY_UID}" \
100102
--output "${RELEASE_TARBALL}.asc" \
101103
"${RELEASE_TARBALL}"
102104
fi

.github/workflows/verify_rc.yml

Lines changed: 55 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,9 @@ env:
4141

4242
jobs:
4343
target:
44+
name: Target
4445
runs-on: ubuntu-latest
45-
timeout: 5
46+
timeout-minutes: 5
4647
outputs:
4748
version: ${{ steps.detect.outputs.version }}
4849
rc: ${{ steps.detect.outputs.rc }}
@@ -54,10 +55,9 @@ jobs:
5455
run: |
5556
case "${GITHUB_EVENT_NAME}" in
5657
workflow_dispatch)
57-
tag="${{ input.rc_tag }}"
58+
tag="${{ inputs.rc_tag }}"
5859
;;
5960
pull_request)
60-
env | sort
6161
tag="$(gh release list \
6262
--jq '.[] | select(.isPrerelease) | .tagName' \
6363
--json tagName,isPrerelease \
@@ -75,8 +75,8 @@ jobs:
7575
echo "rc=${rc}" >> "${GITHUB_OUTPUT}"
7676
7777
apt:
78-
needs: target
7978
name: APT
79+
needs: target
8080
runs-on: ${{ matrix.runs-on }}
8181
timeout-minutes: 30
8282
strategy:
@@ -91,19 +91,41 @@ jobs:
9191
VERSION: ${{ needs.target.outputs.version }}
9292
steps:
9393
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
94+
with:
95+
fetch-depth: 0
9496
- name: Run
9597
run: |
9698
dev/release/verify-release-candidate.sh ${VERSION} ${RC}
9799
- name: Verify the previous version
100+
# TODO: We may re-enable this in the future.
101+
# There are some problems for now:
102+
# * We need to specify the previous versions for all
103+
# dependencies explicitly. For example, "apt install
104+
# libarrow-glib-dev=20.0.0-1" doesn't work. We need "apt
105+
# install libarrow-glib-dev=20.0.0-1
106+
# libarrow-acero-dev=20.0.0-1 libparquet-dev=20.0.0-1
107+
# gir1.2-arrow-1.0=20.0.0-1 libparquet-dev=20.0.0-1
108+
# libarrow-dev=20.0.0-1"
109+
continue-on-error: true
98110
run: |
99111
major_version=${VERSION%%.*}
100-
previous_major_version$((major_version - 1))
112+
previous_major_version=$((major_version - 1))
101113
previous_version=${previous_major_version}.0.0
102-
rc=0 # This number isn't used for APT verification
103-
dev/release/verify-release-candidate.sh ${previous_version} ${rc}
114+
previous_tag=apache-arrow-${previous_version}
115+
git checkout ${previous_tag}
116+
# This is workaround. dev/release/verify-release-candidate.sh
117+
# in < 21.0.0 doesn't accept 20.0.0 as the VERSION argument.
118+
# We can remove this workaround after 21.0.0 release.
119+
sed \
120+
-i \
121+
-e 's/^\(ensure_source_directory\)$/# \1/' \
122+
-e 's/^\(test_source_distribution\)$/# \1/' \
123+
dev/release/verify-release-candidate.sh
124+
dev/release/verify-release-candidate.sh ${previous_version}
104125
105126
binary:
106127
name: Binary
128+
needs: target
107129
runs-on: ubuntu-latest
108130
timeout-minutes: 30
109131
env:
@@ -118,6 +140,7 @@ jobs:
118140
119141
wheels-linux:
120142
name: Wheels Linux
143+
needs: target
121144
runs-on: ubuntu-latest
122145
timeout-minutes: 30
123146
strategy:
@@ -165,6 +188,7 @@ jobs:
165188
166189
wheels-macos:
167190
name: Wheels macOS
191+
needs: target
168192
runs-on: ${{ matrix.runs-on }}
169193
timeout-minutes: 30
170194
strategy:
@@ -187,6 +211,7 @@ jobs:
187211
188212
wheels-windows:
189213
name: Wheels Windows
214+
needs: target
190215
runs-on: windows-latest
191216
timeout-minutes: 45
192217
env:
@@ -215,6 +240,7 @@ jobs:
215240
216241
yum:
217242
name: Yum
243+
needs: target
218244
runs-on: ${{ matrix.runs-on }}
219245
timeout-minutes: 30
220246
strategy:
@@ -229,13 +255,32 @@ jobs:
229255
VERSION: ${{ needs.target.outputs.version }}
230256
steps:
231257
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
258+
with:
259+
fetch-depth: 0
232260
- name: Run
233261
run: |
234262
dev/release/verify-release-candidate.sh ${VERSION} ${RC}
235263
- name: Verify the previous version
264+
# TODO: We may re-enable this in the future.
265+
# There are some problems for now:
266+
# * x86_64: libLLVM.so.18.1 needed by gandiva2000-libs on AlmaLinux 9
267+
# * arm64: libarrow.so.2000.0.0: refers the
268+
# "std::condition_variable::wait(std::unique_lock<std::mutex>&)@GLIBCXX_3.4.30"
269+
# (not "...@@GLIBCXX_3.4.30" nor "...@GLIBCXX_3.4.11") symbol on
270+
# AmazonLinux 2023.
271+
continue-on-error: true
236272
run: |
237273
major_version=${VERSION%%.*}
238-
previous_major_version$((major_version - 1))
274+
previous_major_version=$((major_version - 1))
239275
previous_version=${previous_major_version}.0.0
240-
rc=0 # This number isn't used for Yum verification
241-
dev/release/verify-release-candidate.sh ${previous_version} ${rc}
276+
previous_tag=apache-arrow-${previous_version}
277+
git checkout ${previous_tag}
278+
# This is workaround. dev/release/verify-release-candidate.sh
279+
# in < 21.0.0 doesn't accept 20.0.0 as the VERSION argument.
280+
# We can remove this workaround after 21.0.0 release.
281+
sed \
282+
-i \
283+
-e 's/^\(ensure_source_directory\)$/# \1/' \
284+
-e 's/^\(test_source_distribution\)$/# \1/' \
285+
dev/release/verify-release-candidate.sh
286+
dev/release/verify-release-candidate.sh ${previous_version}

.pre-commit-config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,7 @@ repos:
329329
?^ci/scripts/install_spark\.sh$|
330330
?^ci/scripts/install_vcpkg\.sh$|
331331
?^ci/scripts/integration_arrow_build\.sh$|
332+
?^ci/scripts/integration_arrow\.sh$|
332333
?^ci/scripts/integration_dask\.sh$|
333334
?^ci/scripts/integration_spark\.sh$|
334335
?^ci/scripts/matlab_build\.sh$|

ci/docker/conda-cpp.dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ RUN /arrow/ci/scripts/install_minio.sh latest /opt/conda
2727
ARG python=3.10
2828

2929
# install the required conda packages into the test environment
30+
# use `mold` to work around issues with GNU `ld` (GH-47015).
3031
COPY ci/conda_env_cpp.txt \
3132
ci/conda_env_gandiva.txt \
3233
/arrow/ci/
@@ -36,6 +37,7 @@ RUN mamba install -q -y \
3637
compilers \
3738
doxygen \
3839
libnuma \
40+
mold \
3941
python=${python} \
4042
valgrind && \
4143
mamba clean --all --yes
@@ -73,6 +75,7 @@ ENV ARROW_ACERO=ON \
7375
ARROW_S3_MODULE=ON \
7476
ARROW_SUBSTRAIT=ON \
7577
ARROW_USE_CCACHE=ON \
78+
ARROW_USE_MOLD=ON \
7679
ARROW_WITH_BROTLI=ON \
7780
ARROW_WITH_BZ2=ON \
7881
ARROW_WITH_LZ4=ON \
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
# under the License.
1717

1818
ARG arch
19-
FROM ${arch}/fedora:39
19+
FROM ${arch}/fedora:42
2020
ARG arch
2121

2222
# install dependencies

ci/scripts/cpp_test.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,9 @@ fi
126126

127127
if [ "${ARROW_FUZZING}" == "ON" ]; then
128128
# Fuzzing regression tests
129+
# Some fuzz regression files may trigger huge memory allocations,
130+
# let the allocator return null instead of aborting.
131+
export ASAN_OPTIONS="$ASAN_OPTIONS allocator_may_return_null=1"
129132
"${binary_output_dir}/arrow-ipc-stream-fuzz" "${ARROW_TEST_DATA}"/arrow-ipc-stream/crash-*
130133
"${binary_output_dir}/arrow-ipc-stream-fuzz" "${ARROW_TEST_DATA}"/arrow-ipc-stream/*-testcase-*
131134
"${binary_output_dir}/arrow-ipc-file-fuzz" "${ARROW_TEST_DATA}"/arrow-ipc-file/*-testcase-*

ci/scripts/install_gcs_testbench.bat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
@echo on
1919

20-
set GCS_TESTBENCH_VERSION="v0.40.0"
20+
set GCS_TESTBENCH_VERSION="v0.55.0"
2121

2222
set PIPX_FLAGS=--verbose
2323
if NOT "%PIPX_PYTHON%"=="" (

ci/scripts/install_gcs_testbench.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ esac
3636

3737
version=$1
3838
if [[ "${version}" = "default" ]]; then
39-
version="v0.39.0"
39+
version="v0.55.0"
4040
fi
4141

4242
# The Python to install pipx with

ci/scripts/integration_arrow.sh

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,16 @@ build_dir=${2}
2424

2525
gold_dir=$arrow_dir/testing/data/arrow-ipc-stream/integration
2626

27-
: ${ARROW_INTEGRATION_CPP:=ON}
28-
: ${ARROW_INTEGRATION_CSHARP:=ON}
27+
: "${ARROW_INTEGRATION_CPP:=ON}"
28+
: "${ARROW_INTEGRATION_CSHARP:=ON}"
2929

30-
: ${ARCHERY_INTEGRATION_TARGET_IMPLEMENTATIONS:=cpp,csharp}
30+
: "${ARCHERY_INTEGRATION_TARGET_IMPLEMENTATIONS:=cpp,csharp}"
3131
export ARCHERY_INTEGRATION_TARGET_IMPLEMENTATIONS
3232

33-
. ${arrow_dir}/ci/scripts/util_log.sh
33+
. "${arrow_dir}/ci/scripts/util_log.sh"
3434

3535
github_actions_group_begin "Integration: Prepare: Archery"
36-
pip install -e $arrow_dir/dev/archery[integration]
36+
pip install -e "$arrow_dir/dev/archery[integration]"
3737
github_actions_group_end
3838

3939
github_actions_group_begin "Integration: Prepare: Dependencies"
@@ -58,16 +58,19 @@ export PYTHONFAULTHANDLER=1
5858
export GOMEMLIMIT=200MiB
5959
export GODEBUG=gctrace=1,clobberfree=1
6060

61+
ARCHERY_WITH_CPP=$([ "$ARROW_INTEGRATION_CPP" == "ON" ] && echo "1" || echo "0")
62+
ARCHERY_WITH_CSHARP=$([ "$ARROW_INTEGRATION_CSHARP" == "ON" ] && echo "1" || echo "0")
63+
6164
# Rust can be enabled by exporting ARCHERY_INTEGRATION_WITH_RUST=1
6265
time archery integration \
6366
--run-c-data \
6467
--run-ipc \
6568
--run-flight \
66-
--with-cpp=$([ "$ARROW_INTEGRATION_CPP" == "ON" ] && echo "1" || echo "0") \
67-
--with-csharp=$([ "$ARROW_INTEGRATION_CSHARP" == "ON" ] && echo "1" || echo "0") \
68-
--gold-dirs=$gold_dir/0.14.1 \
69-
--gold-dirs=$gold_dir/0.17.1 \
70-
--gold-dirs=$gold_dir/1.0.0-bigendian \
71-
--gold-dirs=$gold_dir/1.0.0-littleendian \
72-
--gold-dirs=$gold_dir/2.0.0-compression \
73-
--gold-dirs=$gold_dir/4.0.0-shareddict \
69+
--with-cpp="${ARCHERY_WITH_CPP}" \
70+
--with-csharp="${ARCHERY_WITH_CSHARP}"\
71+
--gold-dirs="$gold_dir/0.14.1" \
72+
--gold-dirs="$gold_dir/0.17.1" \
73+
--gold-dirs="$gold_dir/1.0.0-bigendian" \
74+
--gold-dirs="$gold_dir/1.0.0-littleendian" \
75+
--gold-dirs="$gold_dir/2.0.0-compression" \
76+
--gold-dirs="$gold_dir/4.0.0-shareddict" \

0 commit comments

Comments
 (0)