From 5be9a09d2dfe07b4e16a53722e5cb975197e4ea4 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 2 Sep 2026 15:22:55 +0000 Subject: [PATCH 1/5] fix(ci): run Build workflow on GitHub-hosted ubuntu-22.04 The fork has no self-hosted runners and Actions never registered a workflow run. Switch off the private runner label, add a pull_request trigger, install missing link deps (ibverbs, numa, ninja), and cap parallelism at nproc so a hosted runner can actually complete. Co-authored-by: Alexander Kolov --- .github/workflows/build.yml | 50 +++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 796445bb..81e29f87 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,14 +3,31 @@ name: Build on: push: branches: [ "main" ] + pull_request: + branches: [ "main" ] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true jobs: build: - runs-on: self-hosted # or `ubuntu-22.04` + # This fork has no self-hosted runners. Upstream's self-hosted pool is + # private, so jobs there sit in action_required. Use GitHub-hosted 22.04 + # to match the documented toolchain (clang-14, gcc-12, libprocps-dev). + runs-on: ubuntu-22.04 + timeout-minutes: 180 steps: - uses: actions/checkout@v4 + - name: Free disk space + run: | + sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc \ + /opt/hostedtoolcache/CodeQL /usr/local/share/powershell \ + /usr/share/swift + df -h + - name: Configure sccache-cache run: | echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV @@ -21,16 +38,33 @@ jobs: - name: Prepare run: | - sudo apt install -y cmake libuv1-dev liblz4-dev liblzma-dev libdouble-conversion-dev libprocps-dev libdwarf-dev libunwind-dev - sudo apt install -y libaio-dev libgflags-dev libgoogle-glog-dev libgtest-dev libgmock-dev clang-format-14 clang-14 clang-tidy-14 lld-14 - sudo apt install -y libgoogle-perftools-dev google-perftools libssl-dev ccache gcc-12 g++-12 libboost-all-dev meson rustc cargo - wget https://github.com/apple/foundationdb/releases/download/7.1.61/foundationdb-clients_7.1.61-1_amd64.deb && sudo dpkg -i foundationdb-clients_7.1.61-1_amd64.deb - git clone https://github.com/libfuse/libfuse.git libfuse -b fuse-3.16.2 --depth 1 && mkdir libfuse/build && cd libfuse/build && meson setup .. && ninja && sudo ninja install && cd ../.. && rm -rf libfuse + sudo apt-get update + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + cmake ninja-build meson pkg-config wget \ + libuv1-dev liblz4-dev liblzma-dev libdouble-conversion-dev \ + libprocps-dev libdwarf-dev libunwind-dev libaio-dev \ + libgflags-dev libgoogle-glog-dev libgtest-dev libgmock-dev \ + clang-format-14 clang-14 clang-tidy-14 lld-14 \ + libgoogle-perftools-dev google-perftools libssl-dev ccache \ + gcc-12 g++-12 libboost-all-dev rustc cargo \ + libibverbs-dev libnuma-dev python3-dev + wget -q https://github.com/apple/foundationdb/releases/download/7.1.61/foundationdb-clients_7.1.61-1_amd64.deb + sudo dpkg -i foundationdb-clients_7.1.61-1_amd64.deb + git clone https://github.com/libfuse/libfuse.git libfuse -b fuse-3.16.2 --depth 1 + cmake -E make_directory libfuse/build + meson setup libfuse/build libfuse + ninja -C libfuse/build + sudo ninja -C libfuse/build install + rm -rf libfuse git submodule update --init --recursive ./patches/apply.sh - name: Build run: | cargo build --release - cmake -S . -B build -DCMAKE_CXX_COMPILER=clang++-14 -DCMAKE_C_COMPILER=clang-14 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_EXPORT_COMPILE_COMMANDS=ON - cmake --build build -j 32 + cmake -S . -B build \ + -DCMAKE_CXX_COMPILER=clang++-14 \ + -DCMAKE_C_COMPILER=clang-14 \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_EXPORT_COMPILE_COMMANDS=ON + cmake --build build -j "$(nproc)" From 1e9f12adf543bfa757829a377ec1a6f94b482643 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 2 Sep 2026 15:28:49 +0000 Subject: [PATCH 2/5] fix(ci): stop sccache from breaking the libfuse meson build sccache-action exports CC="sccache cc". Meson 0.61 treats that as a single compiler name and fails immediately. Point CC/CXX at clang-14 and wrap only rustc with sccache. Co-authored-by: Alexander Kolov --- .github/workflows/build.yml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 81e29f87..13e8f01b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,17 +30,24 @@ jobs: - name: Configure sccache-cache run: | - echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV echo "SCCACHE_GHA_ENABLED=true" >> $GITHUB_ENV - name: Run sccache-cache uses: mozilla-actions/sccache-action@v0.0.4 + # sccache-action exports CC="sccache cc". Meson treats that as one + # compiler name and fails with "Compiler sccache cc can not compile + # programs." Force real compilers for C/C++; wrap only rustc. + - name: Use real C/C++ compilers + run: | + echo "CC=clang-14" >> $GITHUB_ENV + echo "CXX=clang++-14" >> $GITHUB_ENV + - name: Prepare run: | sudo apt-get update - sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ - cmake ninja-build meson pkg-config wget \ + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y \ + cmake ninja-build meson pkg-config wget build-essential \ libuv1-dev liblz4-dev liblzma-dev libdouble-conversion-dev \ libprocps-dev libdwarf-dev libunwind-dev libaio-dev \ libgflags-dev libgoogle-glog-dev libgtest-dev libgmock-dev \ @@ -60,6 +67,8 @@ jobs: ./patches/apply.sh - name: Build + env: + RUSTC_WRAPPER: sccache run: | cargo build --release cmake -S . -B build \ From 21f6476debdacf923eafd5665bda5cb08669b28f Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 2 Sep 2026 15:34:03 +0000 Subject: [PATCH 3/5] fix(ci): drop sccache so cargo is not blocked by a dead cache API sccache 0.17 failed to start because the GitHub Actions cache service returned HTTP 400. Remove the wrapper; Prepare already succeeded without it, and a cold compile does not need a remote cache. Co-authored-by: Alexander Kolov --- .github/workflows/build.yml | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 13e8f01b..1be07875 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,21 +28,6 @@ jobs: /usr/share/swift df -h - - name: Configure sccache-cache - run: | - echo "SCCACHE_GHA_ENABLED=true" >> $GITHUB_ENV - - - name: Run sccache-cache - uses: mozilla-actions/sccache-action@v0.0.4 - - # sccache-action exports CC="sccache cc". Meson treats that as one - # compiler name and fails with "Compiler sccache cc can not compile - # programs." Force real compilers for C/C++; wrap only rustc. - - name: Use real C/C++ compilers - run: | - echo "CC=clang-14" >> $GITHUB_ENV - echo "CXX=clang++-14" >> $GITHUB_ENV - - name: Prepare run: | sudo apt-get update @@ -59,7 +44,7 @@ jobs: sudo dpkg -i foundationdb-clients_7.1.61-1_amd64.deb git clone https://github.com/libfuse/libfuse.git libfuse -b fuse-3.16.2 --depth 1 cmake -E make_directory libfuse/build - meson setup libfuse/build libfuse + CC=clang-14 CXX=clang++-14 meson setup libfuse/build libfuse ninja -C libfuse/build sudo ninja -C libfuse/build install rm -rf libfuse @@ -67,8 +52,6 @@ jobs: ./patches/apply.sh - name: Build - env: - RUSTC_WRAPPER: sccache run: | cargo build --release cmake -S . -B build \ From 45e32712a41c0d07b38a1994c2ea442f58d3fd00 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 2 Sep 2026 16:09:45 +0000 Subject: [PATCH 4/5] fix(ci): cap compile parallelism and add swap to avoid OOM The hosted runner was SIGKILL'd (exit 143) while Arrow, Folly, RocksDB, and LevelDB compiled at once. Limit cargo/cmake/Arrow to 2 jobs and add 8G of swap on the 16GB runner. Co-authored-by: Alexander Kolov --- .github/workflows/build.yml | 14 +++++++++++++- cmake/ApacheArrow.cmake | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1be07875..5f5a95fe 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -51,7 +51,19 @@ jobs: git submodule update --init --recursive ./patches/apply.sh + # 16GB hosted runners OOM when Arrow + Folly + RocksDB compile together. + - name: Enable swap + run: | + sudo fallocate -l 8G /swapfile + sudo chmod 600 /swapfile + sudo mkswap /swapfile + sudo swapon /swapfile + free -h + - name: Build + env: + CMAKE_BUILD_PARALLEL_LEVEL: 2 + CARGO_BUILD_JOBS: 2 run: | cargo build --release cmake -S . -B build \ @@ -59,4 +71,4 @@ jobs: -DCMAKE_C_COMPILER=clang-14 \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_EXPORT_COMPILE_COMMANDS=ON - cmake --build build -j "$(nproc)" + cmake --build build --parallel 2 diff --git a/cmake/ApacheArrow.cmake b/cmake/ApacheArrow.cmake index 42da824f..610944f0 100644 --- a/cmake/ApacheArrow.cmake +++ b/cmake/ApacheArrow.cmake @@ -36,7 +36,7 @@ ExternalProject_Add( -DARROW_BUILD_EXAMPLES=OFF \ -DARROW_PARQUET=ON -DARROW_CSV=ON \ -DARROW_WITH_ZSTD=ON -DARROW_WITH_LZ4=ON -DARROW_WITH_ZLIB=ON" - BUILD_COMMAND bash -x -c "source thirdparty/export.sh && cmake --build . -j" + BUILD_COMMAND bash -x -c "source thirdparty/export.sh && cmake --build . -j \${CMAKE_BUILD_PARALLEL_LEVEL:-2}" INSTALL_COMMAND cmake --install . --prefix "${PREFIX}" BUILD_BYPRODUCTS "${ARROW_RELEASE_BUILD_DIR}/libarrow.a" From b68f92a3e3d060061a4ecbe8ae7053af7e7e657a Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 2 Sep 2026 16:16:17 +0000 Subject: [PATCH 5/5] fix(ci): create extra swap at /swapfile.ci fallocate on /swapfile failed with "Text file busy" because the ubuntu-22.04 runner already has that file active. Co-authored-by: Alexander Kolov --- .github/workflows/build.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5f5a95fe..dbed1f6f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -52,12 +52,14 @@ jobs: ./patches/apply.sh # 16GB hosted runners OOM when Arrow + Folly + RocksDB compile together. - - name: Enable swap + # /swapfile is already active on ubuntu-22.04 runners ("Text file busy"). + - name: Enable extra swap run: | - sudo fallocate -l 8G /swapfile - sudo chmod 600 /swapfile - sudo mkswap /swapfile - sudo swapon /swapfile + sudo rm -f /swapfile.ci + sudo fallocate -l 8G /swapfile.ci + sudo chmod 600 /swapfile.ci + sudo mkswap /swapfile.ci + sudo swapon /swapfile.ci free -h - name: Build