From 2d5a5b45eb87307ca67870e2f2acd7ddfa1eb5c0 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Wed, 26 Feb 2025 04:14:06 -0500 Subject: [PATCH 1/2] Put back ubuntu-24.04-arm and test heavily again Since the known issue looks like it has been fixed by switching the runners to different virtual machines. This repeats experiment 3 as well as doing a comparable experiment for the 32-bit containerized test, which had also failed to run some commands in Docker, where it was unclear if it was somehow related or a separate problem. --- .github/workflows/arm-segv-experiment.yml | 101 ++++++++++++++++++++++ .github/workflows/ci.yml | 4 +- 2 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/arm-segv-experiment.yml diff --git a/.github/workflows/arm-segv-experiment.yml b/.github/workflows/arm-segv-experiment.yml new file mode 100644 index 00000000000..00c01c3ff0f --- /dev/null +++ b/.github/workflows/arm-segv-experiment.yml @@ -0,0 +1,101 @@ +name: AArch64 SIGSEGV experiment + +on: push + +jobs: + test-fast: + strategy: + matrix: + num-high: [ 0, 1, 2, 3 ] + os-ver: [ '22.04', '24.04' ] + channel: [ stable, beta ] # `gix-macros::macros momo::ux` currently fails on `nightly`. + get-rust-by: [ rt-action, curl-sh ] + get-nextest-by: [ i-action, cargo-qi ] + num-low: [ 0, 1, 2, 3 ] + + fail-fast: false + + runs-on: ubuntu-${{ matrix.os-ver }}-arm + + steps: + - uses: actions/checkout@v4 + - if: matrix.get-rust-by == 'rt-action' + uses: dtolnay/rust-toolchain@master + with: + toolchain: ${{ matrix.channel }} + - if: matrix.get-rust-by == 'curl-sh' + name: Install Rust via sh.rustup.rs + run: | + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | + sh -s -- -y --default-toolchain ${{ matrix.channel }} + echo "PATH=$HOME/.cargo/bin:$PATH" >> "$GITHUB_ENV" + # - uses: Swatinem/rust-cache@v2 + - if: matrix.get-nextest-by == 'i-action' + uses: taiki-e/install-action@v2 + with: + tool: nextest + - if: matrix.get-nextest-by == 'cargo-qi' + name: Install nextest with quickinstall/binstall + run: | + cargo install cargo-quickinstall + cargo quickinstall cargo-binstall + cargo quickinstall cargo-nextest + - name: Test (nextest) + env: + GIX_TEST_CREATE_ARCHIVES_EVEN_ON_CI: '1' + run: cargo nextest run --workspace --no-fail-fast + - name: Doctest + run: cargo test --workspace --doc --no-fail-fast + - name: Check that tracked archives are up to date + run: git diff --exit-code # If this fails, the fix is usually to commit a regenerated archive. + + test-32bit: + strategy: + matrix: + container-arch: [ arm32v7 ] + num-high: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] + os-ver: [ '22.04', '24.04' ] + num-low: [0, 1, 2, 3, 4, 5, 6, 7] + include: + - container-arch: arm32v7 + runner-arch: arm64 + toolchain: stable-armv7-unknown-linux-gnueabihf + + fail-fast: false + + runs-on: ubuntu-${{ matrix.os-ver }}-arm + + container: ${{ matrix.container-arch }}/debian:stable-slim + + steps: + - name: Prerequisites + run: | + prerequisites=( + build-essential + ca-certificates + cmake + curl + git + jq + libssl-dev + libstdc++6:${{ matrix.runner-arch }} # To support external 64-bit Node.js for actions. + pkgconf + ) + dpkg --add-architecture ${{ matrix.runner-arch }} + apt-get update + apt-get install --no-install-recommends -y -- "${prerequisites[@]}" + shell: bash + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + with: + # Avoid possible misdetection based on the 64-bit running kernel. + toolchain: ${{ matrix.toolchain }} + - uses: taiki-e/install-action@v2 + with: + tool: nextest + - name: Make `system` scope nonempty for "GitInstallation" tests + run: git config --system gitoxide.imaginary.arbitraryVariable arbitraryValue + - name: Test (nextest) + env: + GIX_TEST_IGNORE_ARCHIVES: '1' + run: cargo nextest run --workspace --no-fail-fast diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4780750f644..f89a60b2cfa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -135,7 +135,7 @@ jobs: - windows-latest - macos-latest - ubuntu-latest - - ubuntu-22.04-arm + - ubuntu-24.04-arm runs-on: ${{ matrix.os }} @@ -209,7 +209,7 @@ jobs: toolchain: stable-i686-unknown-linux-gnu - container-arch: arm32v7 runner-arch: arm64 - runner-os: ubuntu-22.04-arm + runner-os: ubuntu-24.04-arm toolchain: stable-armv7-unknown-linux-gnueabihf runs-on: ${{ matrix.runner-os }} From 90f86815e18d2d547e6801ca9ed910c80f01e5b7 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Wed, 26 Feb 2025 21:27:40 -0500 Subject: [PATCH 2/2] Remove heavy experiment; keep ubuntu-24.04-arm --- .github/workflows/arm-segv-experiment.yml | 101 ---------------------- 1 file changed, 101 deletions(-) delete mode 100644 .github/workflows/arm-segv-experiment.yml diff --git a/.github/workflows/arm-segv-experiment.yml b/.github/workflows/arm-segv-experiment.yml deleted file mode 100644 index 00c01c3ff0f..00000000000 --- a/.github/workflows/arm-segv-experiment.yml +++ /dev/null @@ -1,101 +0,0 @@ -name: AArch64 SIGSEGV experiment - -on: push - -jobs: - test-fast: - strategy: - matrix: - num-high: [ 0, 1, 2, 3 ] - os-ver: [ '22.04', '24.04' ] - channel: [ stable, beta ] # `gix-macros::macros momo::ux` currently fails on `nightly`. - get-rust-by: [ rt-action, curl-sh ] - get-nextest-by: [ i-action, cargo-qi ] - num-low: [ 0, 1, 2, 3 ] - - fail-fast: false - - runs-on: ubuntu-${{ matrix.os-ver }}-arm - - steps: - - uses: actions/checkout@v4 - - if: matrix.get-rust-by == 'rt-action' - uses: dtolnay/rust-toolchain@master - with: - toolchain: ${{ matrix.channel }} - - if: matrix.get-rust-by == 'curl-sh' - name: Install Rust via sh.rustup.rs - run: | - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | - sh -s -- -y --default-toolchain ${{ matrix.channel }} - echo "PATH=$HOME/.cargo/bin:$PATH" >> "$GITHUB_ENV" - # - uses: Swatinem/rust-cache@v2 - - if: matrix.get-nextest-by == 'i-action' - uses: taiki-e/install-action@v2 - with: - tool: nextest - - if: matrix.get-nextest-by == 'cargo-qi' - name: Install nextest with quickinstall/binstall - run: | - cargo install cargo-quickinstall - cargo quickinstall cargo-binstall - cargo quickinstall cargo-nextest - - name: Test (nextest) - env: - GIX_TEST_CREATE_ARCHIVES_EVEN_ON_CI: '1' - run: cargo nextest run --workspace --no-fail-fast - - name: Doctest - run: cargo test --workspace --doc --no-fail-fast - - name: Check that tracked archives are up to date - run: git diff --exit-code # If this fails, the fix is usually to commit a regenerated archive. - - test-32bit: - strategy: - matrix: - container-arch: [ arm32v7 ] - num-high: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] - os-ver: [ '22.04', '24.04' ] - num-low: [0, 1, 2, 3, 4, 5, 6, 7] - include: - - container-arch: arm32v7 - runner-arch: arm64 - toolchain: stable-armv7-unknown-linux-gnueabihf - - fail-fast: false - - runs-on: ubuntu-${{ matrix.os-ver }}-arm - - container: ${{ matrix.container-arch }}/debian:stable-slim - - steps: - - name: Prerequisites - run: | - prerequisites=( - build-essential - ca-certificates - cmake - curl - git - jq - libssl-dev - libstdc++6:${{ matrix.runner-arch }} # To support external 64-bit Node.js for actions. - pkgconf - ) - dpkg --add-architecture ${{ matrix.runner-arch }} - apt-get update - apt-get install --no-install-recommends -y -- "${prerequisites[@]}" - shell: bash - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@stable - with: - # Avoid possible misdetection based on the 64-bit running kernel. - toolchain: ${{ matrix.toolchain }} - - uses: taiki-e/install-action@v2 - with: - tool: nextest - - name: Make `system` scope nonempty for "GitInstallation" tests - run: git config --system gitoxide.imaginary.arbitraryVariable arbitraryValue - - name: Test (nextest) - env: - GIX_TEST_IGNORE_ARCHIVES: '1' - run: cargo nextest run --workspace --no-fail-fast