From d8722dffe49eb1674e69f40d3669f33fea5f48f9 Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Fri, 6 Jun 2025 16:16:43 +0000 Subject: [PATCH 01/19] Revert "chore: downgrade to rust 1.85.1 (#5194)" This reverts commit c45812358e58876ad9586c8b77d1399f070c01b5. --- .devcontainer/devcontainer.json | 2 +- .github/workflows-source/ci-main.yml | 4 +- .github/workflows-source/ci-pr-only.yml | 4 +- .github/workflows-source/release-testing.yml | 2 +- .github/workflows-source/schedule-daily.yml | 2 +- .github/workflows-source/schedule-hourly.yml | 2 +- .github/workflows/ci-main.yml | 16 ++-- .github/workflows/ci-pr-only.yml | 10 +- .github/workflows/pocket-ic-tests-windows.yml | 2 +- .../workflows/rate-limits-backend-release.yml | 2 +- .github/workflows/release-testing.yml | 12 +-- .github/workflows/rosetta-release.yml | 2 +- .../salt-sharing-canister-release.yml | 2 +- .github/workflows/schedule-daily.yml | 12 +-- .github/workflows/schedule-hourly.yml | 6 +- .github/workflows/schedule-rust-bench.yml | 2 +- .github/workflows/schedule-weekly.yml | 2 +- .github/workflows/system-tests-k8s.yml | 4 +- .../workflows/update-mainnet-revisions.yaml | 2 +- Cargo.Bazel.Fuzzing.json.lock | 2 +- Cargo.Bazel.json.lock | 2 +- WORKSPACE.bazel | 2 +- ci/container/TAG | 2 +- .../governance/canbench/canbench_results.yml | 82 ++++++----------- rs/pocket_ic_server/BUILD.bazel | 92 ++++++++++--------- rs/sns/init/src/lib.rs | 1 + rs/tests/driver/src/driver/constants.rs | 1 + rust-toolchain.toml | 2 +- 28 files changed, 128 insertions(+), 148 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 49dd9fa25350..dc4ba67d60f0 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,5 +1,5 @@ { - "image": "ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896", + "image": "ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e", "remoteUser": "ubuntu", "privileged": true, "runArgs": [ diff --git a/.github/workflows-source/ci-main.yml b/.github/workflows-source/ci-main.yml index 65d69530aeac..4fff133c46ff 100644 --- a/.github/workflows-source/ci-main.yml +++ b/.github/workflows-source/ci-main.yml @@ -34,7 +34,7 @@ env: anchors: image: &image - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e dind-large-setup: &dind-large-setup runs-on: labels: dind-large @@ -233,7 +233,7 @@ jobs: with: upload-artifacts: ${{ needs.config.outputs.release_build && needs.config.outputs.full_macos_build }} BAZEL_COMMAND: ${{ steps.cfg.outputs.build-command }} - BAZEL_TARGETS: //... + BAZEL_TARGETS: //rs/... //:upload-artifacts CLOUD_CREDENTIALS_CONTENT: ${{ secrets.CLOUD_CREDENTIALS_CONTENT }} GPG_PASSPHRASE: '' - name: Purge Bazel Output diff --git a/.github/workflows-source/ci-pr-only.yml b/.github/workflows-source/ci-pr-only.yml index 5e11039d9e1d..ef79437618c6 100644 --- a/.github/workflows-source/ci-pr-only.yml +++ b/.github/workflows-source/ci-pr-only.yml @@ -17,7 +17,7 @@ env: anchors: image: &image - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e dind-small-setup: &dind-small-setup timeout-minutes: 30 runs-on: @@ -109,7 +109,7 @@ jobs: runs-on: labels: dind-small container: - image: ghcr.io/dfinity/ic-build@sha256:994bfcba2fa5efbb52c515bb01e6e8a5828878d6528603e7133fb195bd2a6c89 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME if: ${{ github.event_name != 'merge_group' }} diff --git a/.github/workflows-source/release-testing.yml b/.github/workflows-source/release-testing.yml index c9e021b27856..9ae4cd1094a6 100644 --- a/.github/workflows-source/release-testing.yml +++ b/.github/workflows-source/release-testing.yml @@ -25,7 +25,7 @@ env: anchors: image: &image - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e dind-large-setup: &dind-large-setup runs-on: group: zh1 diff --git a/.github/workflows-source/schedule-daily.yml b/.github/workflows-source/schedule-daily.yml index dc433feccb20..c5005055b0ac 100644 --- a/.github/workflows-source/schedule-daily.yml +++ b/.github/workflows-source/schedule-daily.yml @@ -14,7 +14,7 @@ env: anchors: image: &image - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e dind-large-setup: &dind-large-setup runs-on: group: zh1 diff --git a/.github/workflows-source/schedule-hourly.yml b/.github/workflows-source/schedule-hourly.yml index 7096113cccb0..88c60a95adc9 100644 --- a/.github/workflows-source/schedule-hourly.yml +++ b/.github/workflows-source/schedule-hourly.yml @@ -14,7 +14,7 @@ env: anchors: image: &image - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e dind-large-setup: &dind-large-setup runs-on: labels: dind-large diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index 9f9c493a092c..c80c5a1f694a 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -106,7 +106,7 @@ jobs: name: Bazel Test All needs: [config] container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 90 @@ -206,7 +206,7 @@ jobs: with: upload-artifacts: ${{ needs.config.outputs.release_build && needs.config.outputs.full_macos_build }} BAZEL_COMMAND: ${{ steps.cfg.outputs.build-command }} - BAZEL_TARGETS: //... + BAZEL_TARGETS: //rs/... //:upload-artifacts CLOUD_CREDENTIALS_CONTENT: ${{ secrets.CLOUD_CREDENTIALS_CONTENT }} GPG_PASSPHRASE: '' - name: Purge Bazel Output @@ -324,7 +324,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 90 @@ -345,7 +345,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 90 @@ -366,7 +366,7 @@ jobs: runs-on: labels: dind-small container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e timeout-minutes: 30 steps: - name: Checkout @@ -397,7 +397,7 @@ jobs: needs: [config] name: Build IC container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 90 @@ -478,7 +478,7 @@ jobs: runs-on: labels: dind-small container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e timeout-minutes: 30 steps: - name: Checkout @@ -513,7 +513,7 @@ jobs: runs-on: labels: dind-small container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e timeout-minutes: 30 steps: - name: Checkout diff --git a/.github/workflows/ci-pr-only.yml b/.github/workflows/ci-pr-only.yml index 8c9c989f90f6..85db322d9bad 100644 --- a/.github/workflows/ci-pr-only.yml +++ b/.github/workflows/ci-pr-only.yml @@ -20,7 +20,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME if: ${{ github.event_name != 'merge_group' }} @@ -50,7 +50,7 @@ jobs: runs-on: labels: dind-small container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME if: ${{ github.event_name != 'merge_group' }} @@ -93,7 +93,7 @@ jobs: runs-on: labels: dind-small container: - image: ghcr.io/dfinity/ic-build@sha256:994bfcba2fa5efbb52c515bb01e6e8a5828878d6528603e7133fb195bd2a6c89 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME if: ${{ github.event_name != 'merge_group' }} @@ -128,7 +128,7 @@ jobs: runs-on: labels: dind-small container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME if: ${{ github.event_name != 'merge_group' }} @@ -189,7 +189,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME if: contains(github.event.pull_request.labels.*.name, 'CI_COVERAGE') diff --git a/.github/workflows/pocket-ic-tests-windows.yml b/.github/workflows/pocket-ic-tests-windows.yml index 61de00b511fb..d70f628b512b 100644 --- a/.github/workflows/pocket-ic-tests-windows.yml +++ b/.github/workflows/pocket-ic-tests-windows.yml @@ -17,7 +17,7 @@ jobs: bazel-build-pocket-ic: name: Bazel Build PocketIC container: - image: ghcr.io/dfinity/ic-build@sha256:994bfcba2fa5efbb52c515bb01e6e8a5828878d6528603e7133fb195bd2a6c89 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 90 diff --git a/.github/workflows/rate-limits-backend-release.yml b/.github/workflows/rate-limits-backend-release.yml index b6f87f429f7c..09aaf8300a17 100644 --- a/.github/workflows/rate-limits-backend-release.yml +++ b/.github/workflows/rate-limits-backend-release.yml @@ -33,7 +33,7 @@ jobs: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache -v /var/sysimage:/var/sysimage -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info diff --git a/.github/workflows/release-testing.yml b/.github/workflows/release-testing.yml index 06365ee72fd0..859d43fc4738 100644 --- a/.github/workflows/release-testing.yml +++ b/.github/workflows/release-testing.yml @@ -29,7 +29,7 @@ jobs: group: zh1 labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 180 # 3 hours @@ -51,7 +51,7 @@ jobs: group: zh1 labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 180 # 3 hours @@ -73,7 +73,7 @@ jobs: group: zh1 labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 90 @@ -95,7 +95,7 @@ jobs: group: zh1 labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 60 @@ -137,7 +137,7 @@ jobs: group: zh1 labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 180 # 3 hours @@ -165,7 +165,7 @@ jobs: group: zh1 labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 180 # 3 hours diff --git a/.github/workflows/rosetta-release.yml b/.github/workflows/rosetta-release.yml index 8fb2651b69d9..4c5a9cb38214 100644 --- a/.github/workflows/rosetta-release.yml +++ b/.github/workflows/rosetta-release.yml @@ -22,7 +22,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e steps: - name: Checkout uses: actions/checkout@v4 diff --git a/.github/workflows/salt-sharing-canister-release.yml b/.github/workflows/salt-sharing-canister-release.yml index 845e156e0abd..1018dc66c1d7 100644 --- a/.github/workflows/salt-sharing-canister-release.yml +++ b/.github/workflows/salt-sharing-canister-release.yml @@ -33,7 +33,7 @@ jobs: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache -v /var/sysimage:/var/sysimage -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info diff --git a/.github/workflows/schedule-daily.yml b/.github/workflows/schedule-daily.yml index 8eba417153a9..354c5714fc7f 100644 --- a/.github/workflows/schedule-daily.yml +++ b/.github/workflows/schedule-daily.yml @@ -13,7 +13,7 @@ jobs: bazel-test-bare-metal: name: Bazel Test Bare Metal container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 120 @@ -62,7 +62,7 @@ jobs: group: zh1 labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 720 # 12 hours @@ -83,7 +83,7 @@ jobs: group: zh1 labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 20 @@ -104,7 +104,7 @@ jobs: group: zh1 labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 480 @@ -139,7 +139,7 @@ jobs: group: zh1 labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 60 @@ -191,7 +191,7 @@ jobs: group: zh1 labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 120 diff --git a/.github/workflows/schedule-hourly.yml b/.github/workflows/schedule-hourly.yml index 037e46231ecd..126f59442c37 100644 --- a/.github/workflows/schedule-hourly.yml +++ b/.github/workflows/schedule-hourly.yml @@ -15,7 +15,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 120 @@ -35,7 +35,7 @@ jobs: bazel-system-test-hourly: name: Bazel System Tests Hourly container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 120 @@ -58,7 +58,7 @@ jobs: bazel-run-fuzzers-hourly: name: Bazel Run Fuzzers Hourly container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 120 diff --git a/.github/workflows/schedule-rust-bench.yml b/.github/workflows/schedule-rust-bench.yml index efe04b7f37d9..b41e725ac12f 100644 --- a/.github/workflows/schedule-rust-bench.yml +++ b/.github/workflows/schedule-rust-bench.yml @@ -25,7 +25,7 @@ jobs: # see linux-x86-64 runner group labels: rust-benchmarks container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e # running on bare metal machine using ubuntu user options: --user ubuntu -v /cache:/cache timeout-minutes: 720 # 12 hours diff --git a/.github/workflows/schedule-weekly.yml b/.github/workflows/schedule-weekly.yml index dd4cf371aae5..90a6d9c9ffaf 100644 --- a/.github/workflows/schedule-weekly.yml +++ b/.github/workflows/schedule-weekly.yml @@ -14,7 +14,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME -v /cache:/cache diff --git a/.github/workflows/system-tests-k8s.yml b/.github/workflows/system-tests-k8s.yml index 802b2b8ec540..4254e566bbf4 100644 --- a/.github/workflows/system-tests-k8s.yml +++ b/.github/workflows/system-tests-k8s.yml @@ -50,7 +50,7 @@ jobs: group: ln1 labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME -e KUBECONFIG --privileged --cgroupns host @@ -106,7 +106,7 @@ jobs: group: ln1 labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME -e KUBECONFIG --privileged --cgroupns host -v /cache:/cache timeout-minutes: 150 diff --git a/.github/workflows/update-mainnet-revisions.yaml b/.github/workflows/update-mainnet-revisions.yaml index 9d5a3be88f0b..3f3a91357368 100644 --- a/.github/workflows/update-mainnet-revisions.yaml +++ b/.github/workflows/update-mainnet-revisions.yaml @@ -40,7 +40,7 @@ jobs: labels: dind-small environment: CREATE_PR container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache -v /var/sysimage:/var/sysimage -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info steps: diff --git a/Cargo.Bazel.Fuzzing.json.lock b/Cargo.Bazel.Fuzzing.json.lock index 23ff62290788..a90d31f90173 100644 --- a/Cargo.Bazel.Fuzzing.json.lock +++ b/Cargo.Bazel.Fuzzing.json.lock @@ -1,5 +1,5 @@ { - "checksum": "64c49509d47ed140ddc08b3efc7bfa814c2266d019d75d0e2e5c8b07861b577e", + "checksum": "9ff61320857bd746ce4d3330820e8761dd7ba2c749dccb624d0ee5f034c7d541", "crates": { "abnf 0.12.0": { "name": "abnf", diff --git a/Cargo.Bazel.json.lock b/Cargo.Bazel.json.lock index f302e6ce75f8..82c585f15d2e 100644 --- a/Cargo.Bazel.json.lock +++ b/Cargo.Bazel.json.lock @@ -1,5 +1,5 @@ { - "checksum": "21430b16e8a299a0a20d265771513910a8fa53d6b3b1030a86ad10485eda72d8", + "checksum": "069db4deada6ba0cfeffec21cefcb52d6e5d924b70cb1f8dc0a41bfc965833df", "crates": { "abnf 0.12.0": { "name": "abnf", diff --git a/WORKSPACE.bazel b/WORKSPACE.bazel index 6bf2a9ba4bf9..787f7e3ca0ab 100644 --- a/WORKSPACE.bazel +++ b/WORKSPACE.bazel @@ -135,7 +135,7 @@ rust_register_toolchains( # The nightly version is required to compile fuzz tests from Bazel. # The version below is chosen so that it is in sync with the non-nightly version. versions = [ - "1.85.1", + "1.86.0", # Use the nightly version from the day before the branch. "nightly/2025-03-08", ], diff --git a/ci/container/TAG b/ci/container/TAG index 2dc90b5edbe7..d6834c440e00 100644 --- a/ci/container/TAG +++ b/ci/container/TAG @@ -1 +1 @@ -3426fa29677ab9de5778c28c093194f9a45946bfaa7b910d0fc0bfa893e2a13a +b0af592b06662401f438b8c9a84bf68cdb1a28ab8a534717a43cf00447e62df9 diff --git a/rs/nns/governance/canbench/canbench_results.yml b/rs/nns/governance/canbench/canbench_results.yml index e9046265f4d4..29f0a90811c7 100644 --- a/rs/nns/governance/canbench/canbench_results.yml +++ b/rs/nns/governance/canbench/canbench_results.yml @@ -1,151 +1,129 @@ benches: add_neuron_active_maximum_stable: total: - calls: 1 - instructions: 61868406 + instructions: 61309494 heap_increase: 0 stable_memory_increase: 0 scopes: {} add_neuron_active_typical_stable: total: - calls: 1 - instructions: 4434418 + instructions: 4393708 heap_increase: 0 stable_memory_increase: 0 scopes: {} add_neuron_inactive_maximum: total: - calls: 1 - instructions: 61868519 + instructions: 61309607 heap_increase: 0 stable_memory_increase: 0 scopes: {} add_neuron_inactive_typical: total: - calls: 1 - instructions: 4434531 + instructions: 4393821 heap_increase: 0 stable_memory_increase: 0 scopes: {} cascading_vote_stable_everything: total: - calls: 1 - instructions: 108525112 + instructions: 110859509 heap_increase: 0 stable_memory_increase: 128 scopes: {} centralized_following_all_stable: total: - calls: 1 - instructions: 42002784 + instructions: 42074044 heap_increase: 0 stable_memory_increase: 128 scopes: {} compute_ballots_for_new_proposal_with_stable_neurons: total: - calls: 1 - instructions: 1781426 + instructions: 1883927 heap_increase: 0 stable_memory_increase: 0 scopes: {} distribute_rewards_with_stable_neurons: total: - calls: 1 - instructions: 2769799 + instructions: 2721444 heap_increase: 0 stable_memory_increase: 256 scopes: {} draw_maturity_from_neurons_fund_stable: total: - calls: 1 - instructions: 7576878 + instructions: 7528856 heap_increase: 0 stable_memory_increase: 0 scopes: {} list_active_neurons_fund_neurons_stable: total: - calls: 1 - instructions: 2243478 + instructions: 2251535 heap_increase: 0 stable_memory_increase: 0 scopes: {} list_neurons_by_subaccount_stable: total: - calls: 1 - instructions: 66319497 - heap_increase: 5 + instructions: 66200934 + heap_increase: 3 stable_memory_increase: 0 scopes: {} list_neurons_stable: total: - calls: 1 - instructions: 67632700 - heap_increase: 9 + instructions: 67580812 + heap_increase: 4 stable_memory_increase: 0 scopes: {} list_proposals: total: - calls: 1 - instructions: 75889 + instructions: 76293 heap_increase: 0 stable_memory_increase: 0 scopes: {} list_ready_to_spawn_neuron_ids_stable: total: - calls: 1 - instructions: 37436771 + instructions: 37354868 heap_increase: 0 stable_memory_increase: 0 scopes: {} neuron_data_validation_stable: total: - calls: 1 - instructions: 207749441 + instructions: 203542322 heap_increase: 0 stable_memory_increase: 0 scopes: {} neuron_metrics_calculation_stable: total: - calls: 1 - instructions: 2718705 + instructions: 2722495 heap_increase: 0 stable_memory_increase: 0 scopes: {} range_neurons_performance: total: - calls: 1 - instructions: 55414913 + instructions: 55103800 heap_increase: 0 stable_memory_increase: 0 scopes: {} single_vote_all_stable: total: - calls: 1 - instructions: 279950 + instructions: 271542 heap_increase: 0 stable_memory_increase: 128 scopes: {} unstake_maturity_of_dissolved_neurons_stable: total: - calls: 1 - instructions: 64676407 + instructions: 64537233 heap_increase: 0 stable_memory_increase: 0 scopes: list_neuron_ids: - calls: 1 - instructions: 38802158 + instructions: 38800841 heap_increase: 0 stable_memory_increase: 0 unstake_maturity: - calls: 1 - instructions: 25872066 + instructions: 25734595 heap_increase: 0 stable_memory_increase: 0 update_recent_ballots_stable_memory: total: - calls: 1 - instructions: 143951 + instructions: 142807 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -158,29 +136,25 @@ benches: scopes: {} with_neuron_mut_all_sections_maximum_stable: total: - calls: 1 - instructions: 4469524 + instructions: 4414320 heap_increase: 0 stable_memory_increase: 0 scopes: {} with_neuron_mut_all_sections_typical_stable: total: - calls: 1 - instructions: 855886 + instructions: 855091 heap_increase: 0 stable_memory_increase: 0 scopes: {} with_neuron_mut_main_section_maximum_stable: total: - calls: 1 - instructions: 2448005 + instructions: 2440787 heap_increase: 0 stable_memory_increase: 0 scopes: {} with_neuron_mut_main_section_typical_stable: total: - calls: 1 - instructions: 410342 + instructions: 410417 heap_increase: 0 stable_memory_increase: 0 scopes: {} diff --git a/rs/pocket_ic_server/BUILD.bazel b/rs/pocket_ic_server/BUILD.bazel index c91c3b6971bd..981192d97690 100644 --- a/rs/pocket_ic_server/BUILD.bazel +++ b/rs/pocket_ic_server/BUILD.bazel @@ -175,50 +175,49 @@ rust_ic_test( deps = LIB_DEPENDENCIES + [":build_script"], ) -[ - rust_test( - name = name, - size = "medium", - srcs = [ - "tests/common.rs", - "tests/" + name + ".rs", - ], - aliases = {}, - data = [ - ":pocket-ic-server", - "//rs/registry/canister:registry-canister", - "@ii_dev_canister//file", - "@mozilla_root_ca_store//file", - ], - env = { - "RUST_TEST_THREADS": "2", - "POCKET_IC_BIN": "$(rootpath :pocket-ic-server)", - "REGISTRY_WASM": "$(rootpath //rs/registry/canister:registry-canister)", - "II_WASM": "$(rootpath @ii_dev_canister//file)", - "SSL_CERT_FILE": "$(rootpath @mozilla_root_ca_store//file)", - }, - tags = [ - "cpu:8", - # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. - # ---- test_http_gateway stdout ---- - # thread 'test_http_gateway' panicked at rs/pocket_ic_server/tests/test.rs:383:48: - # called `Result::unwrap()` on an `Err` value: reqwest::Error { - # kind: Request, url: "http://7tjcv-pp777-77776-qaaaa-cai.raw.localhost:49380/", - # source: hyper_util::client::legacy::Error( - # Connect, - # ConnectError("tcp connect error", Os { code: 1, kind: PermissionDenied, message: "Operation not permitted" }) - # ) - # } - "requires-network", - "test_macos", - ], - deps = TEST_DEPENDENCIES, - ) - for name in [ - "test", - "gateway", - ] -] +rust_test( + name = "test", + size = "medium", + srcs = [ + "tests/common.rs", + "tests/test.rs", + ], + aliases = {}, + data = [ + ":pocket-ic-server", + "//rs/registry/canister:registry-canister", + "@ii_dev_canister//file", + "@mozilla_root_ca_store//file", + ], + env = { + "RUST_TEST_THREADS": "2", + "POCKET_IC_BIN": "$(rootpath :pocket-ic-server)", + "REGISTRY_WASM": "$(rootpath //rs/registry/canister:registry-canister)", + "II_WASM": "$(rootpath @ii_dev_canister//file)", + "SSL_CERT_FILE": "$(rootpath @mozilla_root_ca_store//file)", + }, + tags = [ + "cpu:8", + # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. + # ---- test_http_gateway stdout ---- + # thread 'test_http_gateway' panicked at rs/pocket_ic_server/tests/test.rs:383:48: + # called `Result::unwrap()` on an `Err` value: reqwest::Error { + # kind: Request, url: "http://7tjcv-pp777-77776-qaaaa-cai.raw.localhost:49380/", + # source: hyper_util::client::legacy::Error( + # Connect, + # ConnectError("tcp connect error", Os { code: 1, kind: PermissionDenied, message: "Operation not permitted" }) + # ) + # } + "requires-network", + "test_macos", + ], + # We temporarily disable the test on x86_64-darwin because the hyper HTTP client runs into issues on that platform. + target_compatible_with = select({ + "@platforms//os:osx": ["@platforms//cpu:arm64"], + "//conditions:default": [], + }), + deps = TEST_DEPENDENCIES, +) rust_test( name = "spec_test", @@ -274,5 +273,10 @@ rust_test( "requires-network", "test_macos", ], + # We temporarily disable the test on x86_64-darwin because the hyper HTTP client runs into issues on that platform. + target_compatible_with = select({ + "@platforms//os:osx": ["@platforms//cpu:arm64"], + "//conditions:default": [], + }), deps = TEST_DEPENDENCIES, ) diff --git a/rs/sns/init/src/lib.rs b/rs/sns/init/src/lib.rs index 09e9a9178e31..aba2e3710a07 100644 --- a/rs/sns/init/src/lib.rs +++ b/rs/sns/init/src/lib.rs @@ -918,6 +918,7 @@ impl SnsInitPayload { self.join_validation_results(&validation_fns) } + #[allow(clippy::manual_ok_err)] fn join_validation_results( &self, validation_fns: &[Result<(), String>], diff --git a/rs/tests/driver/src/driver/constants.rs b/rs/tests/driver/src/driver/constants.rs index 6765130f1308..592ce878850d 100644 --- a/rs/tests/driver/src/driver/constants.rs +++ b/rs/tests/driver/src/driver/constants.rs @@ -1,5 +1,6 @@ use std::time::Duration; +#[allow(clippy::doc_overindented_list_items)] /// New directory structure: /// /// - dependencies/ diff --git a/rust-toolchain.toml b/rust-toolchain.toml index d9ccfb3fccb8..57a2a3be179d 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "1.85.1" +channel = "1.86.0" targets = ["wasm32-unknown-unknown"] profile = "default" components = ["rls"] From bd85ace2639a3cf8f786bf67d4a015fc88afb9b0 Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Fri, 6 Jun 2025 16:21:26 +0000 Subject: [PATCH 02/19] fix --- Cargo.Bazel.Fuzzing.json.lock | 2 +- Cargo.Bazel.json.lock | 2 +- rs/pocket_ic_server/BUILD.bazel | 10 ---------- 3 files changed, 2 insertions(+), 12 deletions(-) diff --git a/Cargo.Bazel.Fuzzing.json.lock b/Cargo.Bazel.Fuzzing.json.lock index a90d31f90173..e3f9f90f5cb9 100644 --- a/Cargo.Bazel.Fuzzing.json.lock +++ b/Cargo.Bazel.Fuzzing.json.lock @@ -1,5 +1,5 @@ { - "checksum": "9ff61320857bd746ce4d3330820e8761dd7ba2c749dccb624d0ee5f034c7d541", + "checksum": "504f135182b6befe64ed63e18b1225f421780549af25bc81e9219b71262205b9", "crates": { "abnf 0.12.0": { "name": "abnf", diff --git a/Cargo.Bazel.json.lock b/Cargo.Bazel.json.lock index 82c585f15d2e..278cb80110f3 100644 --- a/Cargo.Bazel.json.lock +++ b/Cargo.Bazel.json.lock @@ -1,5 +1,5 @@ { - "checksum": "069db4deada6ba0cfeffec21cefcb52d6e5d924b70cb1f8dc0a41bfc965833df", + "checksum": "56902356db856bba44e5964ea8bc73476e1fb74937b94a5b5a00fd40a7b79ace", "crates": { "abnf 0.12.0": { "name": "abnf", diff --git a/rs/pocket_ic_server/BUILD.bazel b/rs/pocket_ic_server/BUILD.bazel index 981192d97690..efcd224c44fe 100644 --- a/rs/pocket_ic_server/BUILD.bazel +++ b/rs/pocket_ic_server/BUILD.bazel @@ -211,11 +211,6 @@ rust_test( "requires-network", "test_macos", ], - # We temporarily disable the test on x86_64-darwin because the hyper HTTP client runs into issues on that platform. - target_compatible_with = select({ - "@platforms//os:osx": ["@platforms//cpu:arm64"], - "//conditions:default": [], - }), deps = TEST_DEPENDENCIES, ) @@ -273,10 +268,5 @@ rust_test( "requires-network", "test_macos", ], - # We temporarily disable the test on x86_64-darwin because the hyper HTTP client runs into issues on that platform. - target_compatible_with = select({ - "@platforms//os:osx": ["@platforms//cpu:arm64"], - "//conditions:default": [], - }), deps = TEST_DEPENDENCIES, ) From d9673268d2d6d50832586c7f0509b939ae3e7765 Mon Sep 17 00:00:00 2001 From: IDX GitHub Automation <> Date: Fri, 6 Jun 2025 16:22:19 +0000 Subject: [PATCH 03/19] IDX GitHub Automation --- .github/workflows/ci-main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index c80c5a1f694a..a6320597073b 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -284,7 +284,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:efe6edcd9a9e169843a02f91af98b29514c00cda858ad6612cda28b231b80896 + image: ghcr.io/dfinity/ic-build@sha256:797497ee4e9e5f06466eafa85cf8882ad9522d4fe27e9d97bfccee98e346065e options: >- -e NODE_NAME --privileged --cgroupns host -v /cache:/cache timeout-minutes: 90 From 35b2503aa80373e0986ad1d606aca21ec31c359e Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Fri, 6 Jun 2025 17:00:21 +0000 Subject: [PATCH 04/19] bazel run //rs/nns/governance:governance-canbench_update --- .../governance/canbench/canbench_results.yml | 82 ++++++++++++------- 1 file changed, 54 insertions(+), 28 deletions(-) diff --git a/rs/nns/governance/canbench/canbench_results.yml b/rs/nns/governance/canbench/canbench_results.yml index 29f0a90811c7..b7f4c1188655 100644 --- a/rs/nns/governance/canbench/canbench_results.yml +++ b/rs/nns/governance/canbench/canbench_results.yml @@ -1,129 +1,151 @@ benches: add_neuron_active_maximum_stable: total: - instructions: 61309494 + calls: 1 + instructions: 61314505 heap_increase: 0 stable_memory_increase: 0 scopes: {} add_neuron_active_typical_stable: total: - instructions: 4393708 + calls: 1 + instructions: 4394702 heap_increase: 0 stable_memory_increase: 0 scopes: {} add_neuron_inactive_maximum: total: - instructions: 61309607 + calls: 1 + instructions: 61314618 heap_increase: 0 stable_memory_increase: 0 scopes: {} add_neuron_inactive_typical: total: - instructions: 4393821 + calls: 1 + instructions: 4394815 heap_increase: 0 stable_memory_increase: 0 scopes: {} cascading_vote_stable_everything: total: - instructions: 110859509 + calls: 1 + instructions: 108033346 heap_increase: 0 stable_memory_increase: 128 scopes: {} centralized_following_all_stable: total: - instructions: 42074044 + calls: 1 + instructions: 41876993 heap_increase: 0 stable_memory_increase: 128 scopes: {} compute_ballots_for_new_proposal_with_stable_neurons: total: - instructions: 1883927 + calls: 1 + instructions: 1845820 heap_increase: 0 stable_memory_increase: 0 scopes: {} distribute_rewards_with_stable_neurons: total: - instructions: 2721444 + calls: 1 + instructions: 2813921 heap_increase: 0 stable_memory_increase: 256 scopes: {} draw_maturity_from_neurons_fund_stable: total: - instructions: 7528856 + calls: 1 + instructions: 7547321 heap_increase: 0 stable_memory_increase: 0 scopes: {} list_active_neurons_fund_neurons_stable: total: - instructions: 2251535 + calls: 1 + instructions: 2252766 heap_increase: 0 stable_memory_increase: 0 scopes: {} list_neurons_by_subaccount_stable: total: - instructions: 66200934 - heap_increase: 3 + calls: 1 + instructions: 65853191 + heap_increase: 5 stable_memory_increase: 0 scopes: {} list_neurons_stable: total: - instructions: 67580812 - heap_increase: 4 + calls: 1 + instructions: 66811976 + heap_increase: 9 stable_memory_increase: 0 scopes: {} list_proposals: total: - instructions: 76293 + calls: 1 + instructions: 78145 heap_increase: 0 stable_memory_increase: 0 scopes: {} list_ready_to_spawn_neuron_ids_stable: total: - instructions: 37354868 + calls: 1 + instructions: 37693856 heap_increase: 0 stable_memory_increase: 0 scopes: {} neuron_data_validation_stable: total: - instructions: 203542322 + calls: 1 + instructions: 207728828 heap_increase: 0 stable_memory_increase: 0 scopes: {} neuron_metrics_calculation_stable: total: - instructions: 2722495 + calls: 1 + instructions: 2727791 heap_increase: 0 stable_memory_increase: 0 scopes: {} range_neurons_performance: total: - instructions: 55103800 + calls: 1 + instructions: 55016409 heap_increase: 0 stable_memory_increase: 0 scopes: {} single_vote_all_stable: total: - instructions: 271542 + calls: 1 + instructions: 278977 heap_increase: 0 stable_memory_increase: 128 scopes: {} unstake_maturity_of_dissolved_neurons_stable: total: - instructions: 64537233 + calls: 1 + instructions: 64951686 heap_increase: 0 stable_memory_increase: 0 scopes: list_neuron_ids: - instructions: 38800841 + calls: 1 + instructions: 39071820 heap_increase: 0 stable_memory_increase: 0 unstake_maturity: - instructions: 25734595 + calls: 1 + instructions: 25877683 heap_increase: 0 stable_memory_increase: 0 update_recent_ballots_stable_memory: total: - instructions: 142807 + calls: 1 + instructions: 143444 heap_increase: 0 stable_memory_increase: 0 scopes: {} @@ -136,25 +158,29 @@ benches: scopes: {} with_neuron_mut_all_sections_maximum_stable: total: - instructions: 4414320 + calls: 1 + instructions: 4436380 heap_increase: 0 stable_memory_increase: 0 scopes: {} with_neuron_mut_all_sections_typical_stable: total: - instructions: 855091 + calls: 1 + instructions: 851438 heap_increase: 0 stable_memory_increase: 0 scopes: {} with_neuron_mut_main_section_maximum_stable: total: - instructions: 2440787 + calls: 1 + instructions: 2431630 heap_increase: 0 stable_memory_increase: 0 scopes: {} with_neuron_mut_main_section_typical_stable: total: - instructions: 410417 + calls: 1 + instructions: 408945 heap_increase: 0 stable_memory_increase: 0 scopes: {} From 60561ee435358e545a6c871aa016ccfad4c8209c Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Fri, 6 Jun 2025 17:07:59 +0000 Subject: [PATCH 05/19] fix bad merge --- rs/pocket_ic_server/BUILD.bazel | 82 ++++++++++++++++++--------------- 1 file changed, 44 insertions(+), 38 deletions(-) diff --git a/rs/pocket_ic_server/BUILD.bazel b/rs/pocket_ic_server/BUILD.bazel index efcd224c44fe..c91c3b6971bd 100644 --- a/rs/pocket_ic_server/BUILD.bazel +++ b/rs/pocket_ic_server/BUILD.bazel @@ -175,44 +175,50 @@ rust_ic_test( deps = LIB_DEPENDENCIES + [":build_script"], ) -rust_test( - name = "test", - size = "medium", - srcs = [ - "tests/common.rs", - "tests/test.rs", - ], - aliases = {}, - data = [ - ":pocket-ic-server", - "//rs/registry/canister:registry-canister", - "@ii_dev_canister//file", - "@mozilla_root_ca_store//file", - ], - env = { - "RUST_TEST_THREADS": "2", - "POCKET_IC_BIN": "$(rootpath :pocket-ic-server)", - "REGISTRY_WASM": "$(rootpath //rs/registry/canister:registry-canister)", - "II_WASM": "$(rootpath @ii_dev_canister//file)", - "SSL_CERT_FILE": "$(rootpath @mozilla_root_ca_store//file)", - }, - tags = [ - "cpu:8", - # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. - # ---- test_http_gateway stdout ---- - # thread 'test_http_gateway' panicked at rs/pocket_ic_server/tests/test.rs:383:48: - # called `Result::unwrap()` on an `Err` value: reqwest::Error { - # kind: Request, url: "http://7tjcv-pp777-77776-qaaaa-cai.raw.localhost:49380/", - # source: hyper_util::client::legacy::Error( - # Connect, - # ConnectError("tcp connect error", Os { code: 1, kind: PermissionDenied, message: "Operation not permitted" }) - # ) - # } - "requires-network", - "test_macos", - ], - deps = TEST_DEPENDENCIES, -) +[ + rust_test( + name = name, + size = "medium", + srcs = [ + "tests/common.rs", + "tests/" + name + ".rs", + ], + aliases = {}, + data = [ + ":pocket-ic-server", + "//rs/registry/canister:registry-canister", + "@ii_dev_canister//file", + "@mozilla_root_ca_store//file", + ], + env = { + "RUST_TEST_THREADS": "2", + "POCKET_IC_BIN": "$(rootpath :pocket-ic-server)", + "REGISTRY_WASM": "$(rootpath //rs/registry/canister:registry-canister)", + "II_WASM": "$(rootpath @ii_dev_canister//file)", + "SSL_CERT_FILE": "$(rootpath @mozilla_root_ca_store//file)", + }, + tags = [ + "cpu:8", + # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. + # ---- test_http_gateway stdout ---- + # thread 'test_http_gateway' panicked at rs/pocket_ic_server/tests/test.rs:383:48: + # called `Result::unwrap()` on an `Err` value: reqwest::Error { + # kind: Request, url: "http://7tjcv-pp777-77776-qaaaa-cai.raw.localhost:49380/", + # source: hyper_util::client::legacy::Error( + # Connect, + # ConnectError("tcp connect error", Os { code: 1, kind: PermissionDenied, message: "Operation not permitted" }) + # ) + # } + "requires-network", + "test_macos", + ], + deps = TEST_DEPENDENCIES, + ) + for name in [ + "test", + "gateway", + ] +] rust_test( name = "spec_test", From 23ae798b2ce32a58d061a112d0834bda5612283d Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Fri, 6 Jun 2025 17:09:20 +0000 Subject: [PATCH 06/19] fix bad merge --- .github/workflows-source/ci-main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows-source/ci-main.yml b/.github/workflows-source/ci-main.yml index 4fff133c46ff..f727008b27c3 100644 --- a/.github/workflows-source/ci-main.yml +++ b/.github/workflows-source/ci-main.yml @@ -233,7 +233,7 @@ jobs: with: upload-artifacts: ${{ needs.config.outputs.release_build && needs.config.outputs.full_macos_build }} BAZEL_COMMAND: ${{ steps.cfg.outputs.build-command }} - BAZEL_TARGETS: //rs/... //:upload-artifacts + BAZEL_TARGETS: //... CLOUD_CREDENTIALS_CONTENT: ${{ secrets.CLOUD_CREDENTIALS_CONTENT }} GPG_PASSPHRASE: '' - name: Purge Bazel Output From ae38240e5ad73f8fce106f40600ae1a1b9ff6234 Mon Sep 17 00:00:00 2001 From: IDX GitHub Automation <> Date: Fri, 6 Jun 2025 17:09:49 +0000 Subject: [PATCH 07/19] IDX GitHub Automation --- .github/workflows/ci-main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index a6320597073b..9c01cceaf3ec 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -206,7 +206,7 @@ jobs: with: upload-artifacts: ${{ needs.config.outputs.release_build && needs.config.outputs.full_macos_build }} BAZEL_COMMAND: ${{ steps.cfg.outputs.build-command }} - BAZEL_TARGETS: //rs/... //:upload-artifacts + BAZEL_TARGETS: //... CLOUD_CREDENTIALS_CONTENT: ${{ secrets.CLOUD_CREDENTIALS_CONTENT }} GPG_PASSPHRASE: '' - name: Purge Bazel Output From 7615de485dcc174252d4f2fc57470b7e051eb7d5 Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Fri, 6 Jun 2025 18:24:44 +0000 Subject: [PATCH 08/19] updates --- .../ledger/canbench_results/canbench_u256.yml | 32 +++++++++---------- .../ledger/canbench_results/canbench_u64.yml | 32 +++++++++---------- .../governance/canbench/canbench_results.yml | 5 +-- 3 files changed, 35 insertions(+), 34 deletions(-) diff --git a/rs/ledger_suite/icrc1/ledger/canbench_results/canbench_u256.yml b/rs/ledger_suite/icrc1/ledger/canbench_results/canbench_u256.yml index 527323a8cacb..cace26b5988d 100644 --- a/rs/ledger_suite/icrc1/ledger/canbench_results/canbench_u256.yml +++ b/rs/ledger_suite/icrc1/ledger/canbench_results/canbench_u256.yml @@ -2,70 +2,70 @@ benches: bench_icrc1_transfers: total: calls: 1 - instructions: 54208424997 - heap_increase: 264 + instructions: 53957592938 + heap_increase: 262 stable_memory_increase: 256 scopes: icrc103_get_allowances: calls: 1 - instructions: 6483457 + instructions: 6461504 heap_increase: 0 stable_memory_increase: 0 icrc1_transfer: calls: 1 - instructions: 12963223748 + instructions: 12893898527 heap_increase: 31 stable_memory_increase: 0 icrc2_approve: calls: 1 - instructions: 19300687184 - heap_increase: 29 + instructions: 19152557060 + heap_increase: 28 stable_memory_increase: 128 icrc2_transfer_from: calls: 1 - instructions: 21236203907 - heap_increase: 4 + instructions: 21201605303 + heap_increase: 3 stable_memory_increase: 0 icrc3_get_blocks: calls: 1 - instructions: 9190204 + instructions: 9165418 heap_increase: 0 stable_memory_increase: 0 post_upgrade: calls: 1 - instructions: 352007549 + instructions: 352112436 heap_increase: 71 stable_memory_increase: 0 pre_upgrade: calls: 1 - instructions: 149185789 + instructions: 148162008 heap_increase: 129 stable_memory_increase: 128 upgrade: calls: 1 - instructions: 501196007 + instructions: 500277250 heap_increase: 200 stable_memory_increase: 128 bench_upgrade_baseline: total: calls: 1 - instructions: 8682162 + instructions: 8684853 heap_increase: 129 stable_memory_increase: 128 scopes: post_upgrade: calls: 1 - instructions: 8603917 + instructions: 8605945 heap_increase: 0 stable_memory_increase: 0 pre_upgrade: calls: 1 - instructions: 75356 + instructions: 76034 heap_increase: 129 stable_memory_increase: 128 upgrade: calls: 1 - instructions: 8681238 + instructions: 8683934 heap_increase: 129 stable_memory_increase: 128 version: 0.1.15 diff --git a/rs/ledger_suite/icrc1/ledger/canbench_results/canbench_u64.yml b/rs/ledger_suite/icrc1/ledger/canbench_results/canbench_u64.yml index fed3330fcf8a..fb1b31f892fb 100644 --- a/rs/ledger_suite/icrc1/ledger/canbench_results/canbench_u64.yml +++ b/rs/ledger_suite/icrc1/ledger/canbench_results/canbench_u64.yml @@ -2,70 +2,70 @@ benches: bench_icrc1_transfers: total: calls: 1 - instructions: 52219592379 + instructions: 52171062385 heap_increase: 264 stable_memory_increase: 256 scopes: icrc103_get_allowances: calls: 1 - instructions: 5777551 + instructions: 5829030 heap_increase: 0 stable_memory_increase: 0 icrc1_transfer: calls: 1 - instructions: 12317346166 - heap_increase: 31 + instructions: 12300532105 + heap_increase: 34 stable_memory_increase: 0 icrc2_approve: calls: 1 - instructions: 18526480608 - heap_increase: 29 + instructions: 18485004502 + heap_increase: 25 stable_memory_increase: 128 icrc2_transfer_from: calls: 1 - instructions: 20671784720 - heap_increase: 3 + instructions: 20677961391 + heap_increase: 4 stable_memory_increase: 0 icrc3_get_blocks: calls: 1 - instructions: 8587147 + instructions: 8531422 heap_increase: 0 stable_memory_increase: 0 post_upgrade: calls: 1 - instructions: 352225413 + instructions: 356188654 heap_increase: 72 stable_memory_increase: 0 pre_upgrade: calls: 1 - instructions: 149186048 + instructions: 149066669 heap_increase: 129 stable_memory_increase: 128 upgrade: calls: 1 - instructions: 501414271 + instructions: 505258055 heap_increase: 201 stable_memory_increase: 128 bench_upgrade_baseline: total: calls: 1 - instructions: 8683032 + instructions: 8688159 heap_increase: 129 stable_memory_increase: 128 scopes: post_upgrade: calls: 1 - instructions: 8603759 + instructions: 8608230 heap_increase: 0 stable_memory_increase: 0 pre_upgrade: calls: 1 - instructions: 76384 + instructions: 77055 heap_increase: 129 stable_memory_increase: 128 upgrade: calls: 1 - instructions: 8682108 + instructions: 8687240 heap_increase: 129 stable_memory_increase: 128 version: 0.1.15 diff --git a/rs/sns/governance/canbench/canbench_results.yml b/rs/sns/governance/canbench/canbench_results.yml index a9c567e968f8..02508154c4b6 100644 --- a/rs/sns/governance/canbench/canbench_results.yml +++ b/rs/sns/governance/canbench/canbench_results.yml @@ -1,8 +1,9 @@ benches: bench_example: total: - instructions: 4738 + calls: 1 + instructions: 5640 heap_increase: 0 stable_memory_increase: 0 scopes: {} -version: 0.1.8 +version: 0.1.15 From cab85106c4764a52a0a898d85787249117c08106 Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Fri, 6 Jun 2025 18:27:50 +0000 Subject: [PATCH 09/19] trigger From 588b4be0f26838bea2fb0e6c90243949188ce6e2 Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Fri, 6 Jun 2025 23:07:43 +0000 Subject: [PATCH 10/19] experiment --- bazel/BUILD.bazel | 8 ++++++++ packages/pocket-ic/BUILD.bazel | 21 +++++++++++++++++++++ rs/pocket_ic_server/BUILD.bazel | 14 ++++++++++++++ 3 files changed, 43 insertions(+) diff --git a/bazel/BUILD.bazel b/bazel/BUILD.bazel index 943cedfa0af4..4e1b31b1d47e 100644 --- a/bazel/BUILD.bazel +++ b/bazel/BUILD.bazel @@ -67,6 +67,14 @@ config_setting( }, ) +config_setting( + name = "x86_64-darwin", + constraint_values = [ + "@platforms//os:osx", + "@platforms//cpu:x86_64", + ], +) + string_flag( name = "timeout_value", build_setting_default = "10m", diff --git a/packages/pocket-ic/BUILD.bazel b/packages/pocket-ic/BUILD.bazel index 9e65b25c087a..8f6a05dd50a5 100644 --- a/packages/pocket-ic/BUILD.bazel +++ b/packages/pocket-ic/BUILD.bazel @@ -83,6 +83,13 @@ rust_test_suite( "TEST_WASM": "$(rootpath //packages/pocket-ic/test_canister:test_canister.wasm.gz)", }, proc_macro_deps = MACRO_DEPENDENCIES, + rustc_flags = select({ + "//bazel:x86_64-darwin": [ + "-C", + "opt-level=0", + ], + "//conditions:default": [], + }), tags = [ "cpu:16", # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. @@ -106,6 +113,13 @@ rust_test_suite( "SSL_CERT_FILE": "$(rootpath @mozilla_root_ca_store//file)", }, proc_macro_deps = MACRO_DEPENDENCIES, + rustc_flags = select({ + "//bazel:x86_64-darwin": [ + "-C", + "opt-level=0", + ], + "//conditions:default": [], + }), tags = [ # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. # Failed to crate http gateway: Failed to bind to address 127.0.0.1:0: Operation not permitted (os error 1) @@ -130,6 +144,13 @@ rust_test_suite( "TEST_WASM": "$(rootpath //packages/pocket-ic/test_canister:test_canister.wasm.gz)", }, proc_macro_deps = MACRO_DEPENDENCIES, + rustc_flags = select({ + "//bazel:x86_64-darwin": [ + "-C", + "opt-level=0", + ], + "//conditions:default": [], + }), tags = [ "cpu:16", # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. diff --git a/rs/pocket_ic_server/BUILD.bazel b/rs/pocket_ic_server/BUILD.bazel index c91c3b6971bd..08823711866c 100644 --- a/rs/pocket_ic_server/BUILD.bazel +++ b/rs/pocket_ic_server/BUILD.bazel @@ -197,6 +197,13 @@ rust_ic_test( "II_WASM": "$(rootpath @ii_dev_canister//file)", "SSL_CERT_FILE": "$(rootpath @mozilla_root_ca_store//file)", }, + rustc_flags = select({ + "//bazel:x86_64-darwin": [ + "-C", + "opt-level=0", + ], + "//conditions:default": [], + }), tags = [ "cpu:8", # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. @@ -268,6 +275,13 @@ rust_test( "BTC_WASM": "$(rootpath @btc_canister//file)", "SSL_CERT_FILE": "$(rootpath @mozilla_root_ca_store//file)", }, + rustc_flags = select({ + "//bazel:x86_64-darwin": [ + "-C", + "opt-level=0", + ], + "//conditions:default": [], + }), tags = [ # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. # Failed to crate http gateway: Failed to bind to address 127.0.0.1:0: Operation not permitted (os error 1) From edc80f3c6eb2e9d72ac07b7b7f9abb73d6120610 Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Fri, 6 Jun 2025 23:18:24 +0000 Subject: [PATCH 11/19] abstract --- bazel/defs.bzl | 15 +++++++++++++++ packages/pocket-ic/BUILD.bazel | 17 +++-------------- rs/pocket_ic_server/BUILD.bazel | 18 +++--------------- 3 files changed, 21 insertions(+), 29 deletions(-) diff --git a/bazel/defs.bzl b/bazel/defs.bzl index dc348f7aec16..0e05de0965fa 100644 --- a/bazel/defs.bzl +++ b/bazel/defs.bzl @@ -7,6 +7,21 @@ load("//publish:defs.bzl", "release_nostrip_binary") _COMPRESS_CONCURRENCY = 16 +# TODO: rust >= 1.86.0 in contains / triggers a bug in the Apple linker on x86_64-darwin which causes incorrect code generation. +# Full context in: https://github.com/rust-lang/rust/issues/140686#issuecomment-2869525604. +# LLVM has a workaround: https://github.com/rust-lang/llvm-project/pull/181 that they merged and rustc will integrate it soon. +# +# Until then, it appears that the bug is only triggered on release builds with `opt-level=2`. +# Until we’ve upgraded to the newest rustc (for which we’ll probably need to wait for a new rules_rust version) +# we will run the macos tests with `opt-level=0` to avoid the bug. +workaround_apple_linker_bug = select({ + "//bazel:x86_64-darwin": [ + "-C", + "opt-level=0", + ], + "//conditions:default": [], +}) + def _compress_resources(_os, _input_size): """ The function returns resource hints to bazel so it can properly schedule actions. diff --git a/packages/pocket-ic/BUILD.bazel b/packages/pocket-ic/BUILD.bazel index 8f6a05dd50a5..3e79bad75d0c 100644 --- a/packages/pocket-ic/BUILD.bazel +++ b/packages/pocket-ic/BUILD.bazel @@ -1,4 +1,5 @@ load("@rules_rust//rust:defs.bzl", "rust_doc_test", "rust_library", "rust_test", "rust_test_suite") +load("//bazel:defs.bzl", "workaround_apple_linker_bug") package(default_visibility = ["//visibility:public"]) @@ -113,13 +114,7 @@ rust_test_suite( "SSL_CERT_FILE": "$(rootpath @mozilla_root_ca_store//file)", }, proc_macro_deps = MACRO_DEPENDENCIES, - rustc_flags = select({ - "//bazel:x86_64-darwin": [ - "-C", - "opt-level=0", - ], - "//conditions:default": [], - }), + rustc_flags = workaround_apple_linker_bug, tags = [ # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. # Failed to crate http gateway: Failed to bind to address 127.0.0.1:0: Operation not permitted (os error 1) @@ -144,13 +139,7 @@ rust_test_suite( "TEST_WASM": "$(rootpath //packages/pocket-ic/test_canister:test_canister.wasm.gz)", }, proc_macro_deps = MACRO_DEPENDENCIES, - rustc_flags = select({ - "//bazel:x86_64-darwin": [ - "-C", - "opt-level=0", - ], - "//conditions:default": [], - }), + rustc_flags = workaround_apple_linker_bug, tags = [ "cpu:16", # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. diff --git a/rs/pocket_ic_server/BUILD.bazel b/rs/pocket_ic_server/BUILD.bazel index 08823711866c..ac895d43101b 100644 --- a/rs/pocket_ic_server/BUILD.bazel +++ b/rs/pocket_ic_server/BUILD.bazel @@ -1,6 +1,6 @@ load("@rules_rust//cargo:defs.bzl", "cargo_build_script") load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_library", "rust_test") -load("//bazel:defs.bzl", "rust_ic_test") +load("//bazel:defs.bzl", "rust_ic_test", "workaround_apple_linker_bug") BUILD_DEPENDENCIES = [] @@ -197,13 +197,7 @@ rust_ic_test( "II_WASM": "$(rootpath @ii_dev_canister//file)", "SSL_CERT_FILE": "$(rootpath @mozilla_root_ca_store//file)", }, - rustc_flags = select({ - "//bazel:x86_64-darwin": [ - "-C", - "opt-level=0", - ], - "//conditions:default": [], - }), + rustc_flags = workaround_apple_linker_bug, tags = [ "cpu:8", # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. @@ -275,13 +269,7 @@ rust_test( "BTC_WASM": "$(rootpath @btc_canister//file)", "SSL_CERT_FILE": "$(rootpath @mozilla_root_ca_store//file)", }, - rustc_flags = select({ - "//bazel:x86_64-darwin": [ - "-C", - "opt-level=0", - ], - "//conditions:default": [], - }), + rustc_flags = workaround_apple_linker_bug, tags = [ # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. # Failed to crate http gateway: Failed to bind to address 127.0.0.1:0: Operation not permitted (os error 1) From f2ba967c4eff5e631051074ffc4d9570f5eb8a1c Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Fri, 6 Jun 2025 23:22:32 +0000 Subject: [PATCH 12/19] renames --- bazel/defs.bzl | 2 +- packages/pocket-ic/BUILD.bazel | 14 ++++---------- rs/pocket_ic_server/BUILD.bazel | 6 +++--- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/bazel/defs.bzl b/bazel/defs.bzl index 0e05de0965fa..4da3ee733146 100644 --- a/bazel/defs.bzl +++ b/bazel/defs.bzl @@ -14,7 +14,7 @@ _COMPRESS_CONCURRENCY = 16 # Until then, it appears that the bug is only triggered on release builds with `opt-level=2`. # Until we’ve upgraded to the newest rustc (for which we’ll probably need to wait for a new rules_rust version) # we will run the macos tests with `opt-level=0` to avoid the bug. -workaround_apple_linker_bug = select({ +rustc_flags_fixing_apple_linker_bug = select({ "//bazel:x86_64-darwin": [ "-C", "opt-level=0", diff --git a/packages/pocket-ic/BUILD.bazel b/packages/pocket-ic/BUILD.bazel index 3e79bad75d0c..655a21a16fbf 100644 --- a/packages/pocket-ic/BUILD.bazel +++ b/packages/pocket-ic/BUILD.bazel @@ -1,5 +1,5 @@ load("@rules_rust//rust:defs.bzl", "rust_doc_test", "rust_library", "rust_test", "rust_test_suite") -load("//bazel:defs.bzl", "workaround_apple_linker_bug") +load("//bazel:defs.bzl", "rustc_flags_fixing_apple_linker_bug") package(default_visibility = ["//visibility:public"]) @@ -84,13 +84,7 @@ rust_test_suite( "TEST_WASM": "$(rootpath //packages/pocket-ic/test_canister:test_canister.wasm.gz)", }, proc_macro_deps = MACRO_DEPENDENCIES, - rustc_flags = select({ - "//bazel:x86_64-darwin": [ - "-C", - "opt-level=0", - ], - "//conditions:default": [], - }), + rustc_flags = rustc_flags_fixing_apple_linker_bug, tags = [ "cpu:16", # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. @@ -114,7 +108,7 @@ rust_test_suite( "SSL_CERT_FILE": "$(rootpath @mozilla_root_ca_store//file)", }, proc_macro_deps = MACRO_DEPENDENCIES, - rustc_flags = workaround_apple_linker_bug, + rustc_flags = rustc_flags_fixing_apple_linker_bug, tags = [ # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. # Failed to crate http gateway: Failed to bind to address 127.0.0.1:0: Operation not permitted (os error 1) @@ -139,7 +133,7 @@ rust_test_suite( "TEST_WASM": "$(rootpath //packages/pocket-ic/test_canister:test_canister.wasm.gz)", }, proc_macro_deps = MACRO_DEPENDENCIES, - rustc_flags = workaround_apple_linker_bug, + rustc_flags = rustc_flags_fixing_apple_linker_bug, tags = [ "cpu:16", # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. diff --git a/rs/pocket_ic_server/BUILD.bazel b/rs/pocket_ic_server/BUILD.bazel index ac895d43101b..50fc81c27865 100644 --- a/rs/pocket_ic_server/BUILD.bazel +++ b/rs/pocket_ic_server/BUILD.bazel @@ -1,6 +1,6 @@ load("@rules_rust//cargo:defs.bzl", "cargo_build_script") load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_library", "rust_test") -load("//bazel:defs.bzl", "rust_ic_test", "workaround_apple_linker_bug") +load("//bazel:defs.bzl", "rust_ic_test", "rustc_flags_fixing_apple_linker_bug") BUILD_DEPENDENCIES = [] @@ -197,7 +197,7 @@ rust_ic_test( "II_WASM": "$(rootpath @ii_dev_canister//file)", "SSL_CERT_FILE": "$(rootpath @mozilla_root_ca_store//file)", }, - rustc_flags = workaround_apple_linker_bug, + rustc_flags = rustc_flags_fixing_apple_linker_bug, tags = [ "cpu:8", # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. @@ -269,7 +269,7 @@ rust_test( "BTC_WASM": "$(rootpath @btc_canister//file)", "SSL_CERT_FILE": "$(rootpath @mozilla_root_ca_store//file)", }, - rustc_flags = workaround_apple_linker_bug, + rustc_flags = rustc_flags_fixing_apple_linker_bug, tags = [ # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. # Failed to crate http gateway: Failed to bind to address 127.0.0.1:0: Operation not permitted (os error 1) From 325be719dbf347dbbae7ea4bc5b09e52d4537cd2 Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Fri, 6 Jun 2025 23:23:15 +0000 Subject: [PATCH 13/19] doc --- bazel/defs.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bazel/defs.bzl b/bazel/defs.bzl index 4da3ee733146..c5b34af6a9c0 100644 --- a/bazel/defs.bzl +++ b/bazel/defs.bzl @@ -7,7 +7,7 @@ load("//publish:defs.bzl", "release_nostrip_binary") _COMPRESS_CONCURRENCY = 16 -# TODO: rust >= 1.86.0 in contains / triggers a bug in the Apple linker on x86_64-darwin which causes incorrect code generation. +# TODO: rust >= 1.86.0 contains / triggers a bug in the Apple linker on x86_64-darwin which causes incorrect code generation. # Full context in: https://github.com/rust-lang/rust/issues/140686#issuecomment-2869525604. # LLVM has a workaround: https://github.com/rust-lang/llvm-project/pull/181 that they merged and rustc will integrate it soon. # From f98c4a349d70b496fd3681f8124416d339cb6cc5 Mon Sep 17 00:00:00 2001 From: Martin Raszyk Date: Sat, 7 Jun 2025 08:41:49 +0200 Subject: [PATCH 14/19] fix(PocketIC): tests binding HTTP gateway to invalid backend --- rs/pocket_ic_server/src/state_api/state.rs | 9 +- rs/pocket_ic_server/tests/gateway.rs | 97 +++++++++------------- 2 files changed, 43 insertions(+), 63 deletions(-) diff --git a/rs/pocket_ic_server/src/state_api/state.rs b/rs/pocket_ic_server/src/state_api/state.rs index fe7995660056..d4279ebc4aab 100644 --- a/rs/pocket_ic_server/src/state_api/state.rs +++ b/rs/pocket_ic_server/src/state_api/state.rs @@ -73,6 +73,9 @@ const MIN_OPERATION_DELAY: Duration = Duration::from_millis(100); // The minimum delay between consecutive attempts to read the graph in auto progress mode. const READ_GRAPH_DELAY: Duration = Duration::from_millis(100); +// Produced by the HTTP gateway upon HTTP errors from the backend. +const UPSTREAM_ERROR: &str = "upstream error"; + pub const STATE_LABEL_HASH_SIZE: usize = 16; /// Uniquely identifies a state. @@ -625,7 +628,7 @@ impl ApiState { ); proxy(Url::parse(&url).unwrap(), request, &client) .await - .map_err(|_| ErrorCause("error: upstream_error".to_string())) + .map_err(|_| ErrorCause(UPSTREAM_ERROR.to_string())) } let https_config = if let Some(ref https_config) = http_gateway_config.https_config { @@ -666,8 +669,8 @@ impl ApiState { .unwrap(); time::timeout(DEFAULT_SYNC_WAIT_DURATION, agent.fetch_root_key()) .await - .map_err(|_| format!("Timed out fetching root key from {}", replica_url))? - .map_err(|e| e.to_string())?; + .map_err(|_| format!("{}: timeout", UPSTREAM_ERROR))? + .map_err(|e| format!("{}: {}", UPSTREAM_ERROR, e))?; let handle = Handle::new(); let axum_handle = handle.clone(); diff --git a/rs/pocket_ic_server/tests/gateway.rs b/rs/pocket_ic_server/tests/gateway.rs index 481110829d46..b12d03e5e9e6 100644 --- a/rs/pocket_ic_server/tests/gateway.rs +++ b/rs/pocket_ic_server/tests/gateway.rs @@ -432,70 +432,47 @@ fn test_unresponsive_gateway_backend() { // Test that trying to bind the HTTP gateway to an invalid backend fails gracefully. #[test] -fn test_gateway_backend_invalid_replica_url() { +fn test_gateway_invalid_forward_to() { // Start a private server instance. let (server_url, _) = start_server_helper(None, None, false, false); - let create_gateway_endpoint = server_url.join("http_gateway").unwrap(); - let backend_url = "http://240.0.0.0"; - let http_gateway_config = HttpGatewayConfig { - ip_addr: None, - port: None, - forward_to: HttpGatewayBackend::Replica(backend_url.to_string()), - domains: None, - https_config: None, - }; - let client = Client::new(); - let res = client - .post(create_gateway_endpoint) - .json(&http_gateway_config) - .send() - .unwrap() - .json::() - .unwrap(); - match res { - CreateHttpGatewayResponse::Created(_info) => { - panic!("Suceeded to create http gateway!") - } - CreateHttpGatewayResponse::Error { message } => { - #[cfg(not(target_os = "macos"))] - assert!(message.contains(&format!("Timed out fetching root key from {}", backend_url))); - #[cfg(target_os = "macos")] - assert!(message.contains(&format!("An error happened during communication with the replica: error sending request for url ({}/api/v2/status)", backend_url))); - } - }; -} - -#[test] -fn test_gateway_backend_invalid_pocketic_instance() { - // Start a private server instance. - let (server_url, _) = start_server_helper(None, None, false, false); - - let create_gateway_endpoint = server_url.join("http_gateway").unwrap(); + let invalid_backend_url = "http://240.0.0.0"; let invalid_instance_id = 42; - let http_gateway_config = HttpGatewayConfig { - ip_addr: None, - port: None, - forward_to: HttpGatewayBackend::PocketIcInstance(invalid_instance_id), - domains: None, - https_config: None, - }; - let client = Client::new(); - let res = client - .post(create_gateway_endpoint) - .json(&http_gateway_config) - .send() - .unwrap() - .json::() - .unwrap(); - match res { - CreateHttpGatewayResponse::Created(_info) => { - panic!("Suceeded to create http gateway!") - } - CreateHttpGatewayResponse::Error { message } => { - assert!(message.contains("Instance not found")); - } - }; + for (forward_to, expected_err) in [ + ( + HttpGatewayBackend::Replica(invalid_backend_url.to_string()), + "upstream error", + ), + ( + HttpGatewayBackend::PocketIcInstance(invalid_instance_id), + "Instance not found", + ), + ] { + let http_gateway_config = HttpGatewayConfig { + ip_addr: None, + port: None, + forward_to, + domains: None, + https_config: None, + }; + let client = Client::new(); + let create_gateway_endpoint = server_url.join("http_gateway").unwrap(); + let res = client + .post(create_gateway_endpoint) + .json(&http_gateway_config) + .send() + .unwrap() + .json::() + .unwrap(); + match res { + CreateHttpGatewayResponse::Created(_info) => { + panic!("Suceeded to create http gateway!") + } + CreateHttpGatewayResponse::Error { message } => { + assert!(message.contains(expected_err)); + } + }; + } } // Test that trying to bind the HTTP gateway to the same port twice fails gracefully. From e7843c02291d658957656db51e8ea38a30745df2 Mon Sep 17 00:00:00 2001 From: Martin Raszyk Date: Sat, 7 Jun 2025 08:47:24 +0200 Subject: [PATCH 15/19] error messages --- rs/pocket_ic_server/src/state_api/state.rs | 6 +++--- rs/pocket_ic_server/tests/gateway.rs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/rs/pocket_ic_server/src/state_api/state.rs b/rs/pocket_ic_server/src/state_api/state.rs index d4279ebc4aab..35766e1f248e 100644 --- a/rs/pocket_ic_server/src/state_api/state.rs +++ b/rs/pocket_ic_server/src/state_api/state.rs @@ -74,7 +74,7 @@ const MIN_OPERATION_DELAY: Duration = Duration::from_millis(100); const READ_GRAPH_DELAY: Duration = Duration::from_millis(100); // Produced by the HTTP gateway upon HTTP errors from the backend. -const UPSTREAM_ERROR: &str = "upstream error"; +const UPSTREAM_ERROR: &str = "error: upstream_error"; pub const STATE_LABEL_HASH_SIZE: usize = 16; @@ -669,8 +669,8 @@ impl ApiState { .unwrap(); time::timeout(DEFAULT_SYNC_WAIT_DURATION, agent.fetch_root_key()) .await - .map_err(|_| format!("{}: timeout", UPSTREAM_ERROR))? - .map_err(|e| format!("{}: {}", UPSTREAM_ERROR, e))?; + .map_err(|_| format!("{} (timeout)", UPSTREAM_ERROR))? + .map_err(|e| format!("{} ({})", UPSTREAM_ERROR, e))?; let handle = Handle::new(); let axum_handle = handle.clone(); diff --git a/rs/pocket_ic_server/tests/gateway.rs b/rs/pocket_ic_server/tests/gateway.rs index b12d03e5e9e6..d67790d84b07 100644 --- a/rs/pocket_ic_server/tests/gateway.rs +++ b/rs/pocket_ic_server/tests/gateway.rs @@ -441,7 +441,7 @@ fn test_gateway_invalid_forward_to() { for (forward_to, expected_err) in [ ( HttpGatewayBackend::Replica(invalid_backend_url.to_string()), - "upstream error", + "error: upstream_error", ), ( HttpGatewayBackend::PocketIcInstance(invalid_instance_id), From bd1d938b78a81a3034e6164bc57d2e5c8e93683a Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Sat, 7 Jun 2025 11:24:10 +0000 Subject: [PATCH 16/19] wip --- Cargo.Bazel.Fuzzing.json.lock | 20 +++++++++++++++++++- Cargo.Bazel.json.lock | 20 +++++++++++++++++++- bazel/external_crates.bzl | 8 ++++++++ 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/Cargo.Bazel.Fuzzing.json.lock b/Cargo.Bazel.Fuzzing.json.lock index e3f9f90f5cb9..0ffe82f68759 100644 --- a/Cargo.Bazel.Fuzzing.json.lock +++ b/Cargo.Bazel.Fuzzing.json.lock @@ -1,5 +1,5 @@ { - "checksum": "504f135182b6befe64ed63e18b1225f421780549af25bc81e9219b71262205b9", + "checksum": "810e1cedfbe2974258947d7bdf173d3438cadc60f0abeb72e51f1435f17fe842", "crates": { "abnf 0.12.0": { "name": "abnf", @@ -31506,6 +31506,15 @@ "selects": {} }, "edition": "2018", + "rustc_flags": { + "common": [], + "selects": { + "x86_64-apple-darwin": [ + "-C", + "opt-level=0" + ] + } + }, "version": "0.14.27" }, "license": "MIT", @@ -31612,6 +31621,15 @@ "selects": {} }, "edition": "2021", + "rustc_flags": { + "common": [], + "selects": { + "x86_64-apple-darwin": [ + "-C", + "opt-level=0" + ] + } + }, "version": "1.6.0" }, "license": "MIT", diff --git a/Cargo.Bazel.json.lock b/Cargo.Bazel.json.lock index 278cb80110f3..6963d8e99124 100644 --- a/Cargo.Bazel.json.lock +++ b/Cargo.Bazel.json.lock @@ -1,5 +1,5 @@ { - "checksum": "56902356db856bba44e5964ea8bc73476e1fb74937b94a5b5a00fd40a7b79ace", + "checksum": "5063d0cb0c55333e16aad0a7cf3d2fee586026f58e4483b205c4598585892172", "crates": { "abnf 0.12.0": { "name": "abnf", @@ -31354,6 +31354,15 @@ "selects": {} }, "edition": "2018", + "rustc_flags": { + "common": [], + "selects": { + "x86_64-apple-darwin": [ + "-C", + "opt-level=0" + ] + } + }, "version": "0.14.27" }, "license": "MIT", @@ -31460,6 +31469,15 @@ "selects": {} }, "edition": "2021", + "rustc_flags": { + "common": [], + "selects": { + "x86_64-apple-darwin": [ + "-C", + "opt-level=0" + ] + } + }, "version": "1.6.0" }, "license": "MIT", diff --git a/bazel/external_crates.bzl b/bazel/external_crates.bzl index f37676ce1915..8d08d3edd41a 100644 --- a/bazel/external_crates.bzl +++ b/bazel/external_crates.bzl @@ -24,6 +24,14 @@ BUILD_INFO_REV = "701a696844fba5c87df162fbbc1ccef96f27c9d7" def external_crates_repository(name, cargo_lockfile, lockfile, sanitizers_enabled): CRATE_ANNOTATIONS = { + # TODO: rust >= 1.86.0 contains / triggers a bug in the Apple linker on x86_64-darwin which causes incorrect code generation in the hyper library. + # Full context in: https://github.com/rust-lang/rust/issues/140686#issuecomment-2869525604. + # LLVM has a workaround: https://github.com/rust-lang/llvm-project/pull/181 that they merged and rustc will integrate it soon. + # + # Until then, it appears that the bug is only triggered on release builds with `opt-level=2`. + # Until we’ve upgraded to the newest rustc (for which we’ll probably need to wait for a new rules_rust version) + # we will run the macos tests with `opt-level=0` to avoid the bug. + "hyper": [crate.annotation(rustc_flags = crate.select([], {"x86_64-apple-darwin": ["-C", "opt-level=0"]}))], "openssl-sys": [crate.annotation( build_script_data = [ "@openssl//:gen_dir", From e53c38316a2c507ff6400d510427d5f96d2d474d Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Sat, 7 Jun 2025 14:37:19 +0200 Subject: [PATCH 17/19] rm --- bazel/BUILD.bazel | 8 -------- bazel/defs.bzl | 15 --------------- packages/pocket-ic/BUILD.bazel | 4 ---- rs/pocket_ic_server/BUILD.bazel | 4 +--- 4 files changed, 1 insertion(+), 30 deletions(-) diff --git a/bazel/BUILD.bazel b/bazel/BUILD.bazel index 4e1b31b1d47e..943cedfa0af4 100644 --- a/bazel/BUILD.bazel +++ b/bazel/BUILD.bazel @@ -67,14 +67,6 @@ config_setting( }, ) -config_setting( - name = "x86_64-darwin", - constraint_values = [ - "@platforms//os:osx", - "@platforms//cpu:x86_64", - ], -) - string_flag( name = "timeout_value", build_setting_default = "10m", diff --git a/bazel/defs.bzl b/bazel/defs.bzl index c5b34af6a9c0..dc348f7aec16 100644 --- a/bazel/defs.bzl +++ b/bazel/defs.bzl @@ -7,21 +7,6 @@ load("//publish:defs.bzl", "release_nostrip_binary") _COMPRESS_CONCURRENCY = 16 -# TODO: rust >= 1.86.0 contains / triggers a bug in the Apple linker on x86_64-darwin which causes incorrect code generation. -# Full context in: https://github.com/rust-lang/rust/issues/140686#issuecomment-2869525604. -# LLVM has a workaround: https://github.com/rust-lang/llvm-project/pull/181 that they merged and rustc will integrate it soon. -# -# Until then, it appears that the bug is only triggered on release builds with `opt-level=2`. -# Until we’ve upgraded to the newest rustc (for which we’ll probably need to wait for a new rules_rust version) -# we will run the macos tests with `opt-level=0` to avoid the bug. -rustc_flags_fixing_apple_linker_bug = select({ - "//bazel:x86_64-darwin": [ - "-C", - "opt-level=0", - ], - "//conditions:default": [], -}) - def _compress_resources(_os, _input_size): """ The function returns resource hints to bazel so it can properly schedule actions. diff --git a/packages/pocket-ic/BUILD.bazel b/packages/pocket-ic/BUILD.bazel index 655a21a16fbf..9e65b25c087a 100644 --- a/packages/pocket-ic/BUILD.bazel +++ b/packages/pocket-ic/BUILD.bazel @@ -1,5 +1,4 @@ load("@rules_rust//rust:defs.bzl", "rust_doc_test", "rust_library", "rust_test", "rust_test_suite") -load("//bazel:defs.bzl", "rustc_flags_fixing_apple_linker_bug") package(default_visibility = ["//visibility:public"]) @@ -84,7 +83,6 @@ rust_test_suite( "TEST_WASM": "$(rootpath //packages/pocket-ic/test_canister:test_canister.wasm.gz)", }, proc_macro_deps = MACRO_DEPENDENCIES, - rustc_flags = rustc_flags_fixing_apple_linker_bug, tags = [ "cpu:16", # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. @@ -108,7 +106,6 @@ rust_test_suite( "SSL_CERT_FILE": "$(rootpath @mozilla_root_ca_store//file)", }, proc_macro_deps = MACRO_DEPENDENCIES, - rustc_flags = rustc_flags_fixing_apple_linker_bug, tags = [ # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. # Failed to crate http gateway: Failed to bind to address 127.0.0.1:0: Operation not permitted (os error 1) @@ -133,7 +130,6 @@ rust_test_suite( "TEST_WASM": "$(rootpath //packages/pocket-ic/test_canister:test_canister.wasm.gz)", }, proc_macro_deps = MACRO_DEPENDENCIES, - rustc_flags = rustc_flags_fixing_apple_linker_bug, tags = [ "cpu:16", # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. diff --git a/rs/pocket_ic_server/BUILD.bazel b/rs/pocket_ic_server/BUILD.bazel index 50fc81c27865..c91c3b6971bd 100644 --- a/rs/pocket_ic_server/BUILD.bazel +++ b/rs/pocket_ic_server/BUILD.bazel @@ -1,6 +1,6 @@ load("@rules_rust//cargo:defs.bzl", "cargo_build_script") load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_library", "rust_test") -load("//bazel:defs.bzl", "rust_ic_test", "rustc_flags_fixing_apple_linker_bug") +load("//bazel:defs.bzl", "rust_ic_test") BUILD_DEPENDENCIES = [] @@ -197,7 +197,6 @@ rust_ic_test( "II_WASM": "$(rootpath @ii_dev_canister//file)", "SSL_CERT_FILE": "$(rootpath @mozilla_root_ca_store//file)", }, - rustc_flags = rustc_flags_fixing_apple_linker_bug, tags = [ "cpu:8", # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. @@ -269,7 +268,6 @@ rust_test( "BTC_WASM": "$(rootpath @btc_canister//file)", "SSL_CERT_FILE": "$(rootpath @mozilla_root_ca_store//file)", }, - rustc_flags = rustc_flags_fixing_apple_linker_bug, tags = [ # TODO: remove 'requires-network' tag when the root cause for sporadic error below on Apple Silicon is identified and fixed. # Failed to crate http gateway: Failed to bind to address 127.0.0.1:0: Operation not permitted (os error 1) From efa79f5016e76753dfb575b17330f794d9a9a3ec Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Sat, 7 Jun 2025 15:40:52 +0000 Subject: [PATCH 18/19] docs --- bazel/external_crates.bzl | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/bazel/external_crates.bzl b/bazel/external_crates.bzl index 8d08d3edd41a..6bcaf424f3c5 100644 --- a/bazel/external_crates.bzl +++ b/bazel/external_crates.bzl @@ -24,13 +24,19 @@ BUILD_INFO_REV = "701a696844fba5c87df162fbbc1ccef96f27c9d7" def external_crates_repository(name, cargo_lockfile, lockfile, sanitizers_enabled): CRATE_ANNOTATIONS = { - # TODO: rust >= 1.86.0 contains / triggers a bug in the Apple linker on x86_64-darwin which causes incorrect code generation in the hyper library. - # Full context in: https://github.com/rust-lang/rust/issues/140686#issuecomment-2869525604. - # LLVM has a workaround: https://github.com/rust-lang/llvm-project/pull/181 that they merged and rustc will integrate it soon. + # The upgrade to rust-1.86.0 in https://github.com/dfinity/ic/commit/d1dc4c2dc813c70611425749551c5ac40c8d5e40 + # was initially reverted since it caused the `//rs/pocket_ic_server:...` and `//packages/pocket-ic:...` tests + # to fail on x86_64-apple-darwin. # - # Until then, it appears that the bug is only triggered on release builds with `opt-level=2`. + # We have now debugged this failure and it turns out this is due to a bug in the apple linker that causes bad + # code to be generated for the `hyper` HTTP client crate used in both the pocket-ic library and server. + # (Full context [here](https://github.com/rust-lang/rust/issues/140686#issuecomment-2869525604)). + # LLVM has a [workaround](https://github.com/rust-lang/llvm-project/pull/181) that they merged and + # rustc will integrate it soon. + # + # Until then, it appears that the bug is only triggered when building with the default `opt-level=2`. # Until we’ve upgraded to the newest rustc (for which we’ll probably need to wait for a new rules_rust version) - # we will run the macos tests with `opt-level=0` to avoid the bug. + # we will build the `hyper` crate with `opt-level=0` (I tried `opt-level=1` but that results in the same failure). "hyper": [crate.annotation(rustc_flags = crate.select([], {"x86_64-apple-darwin": ["-C", "opt-level=0"]}))], "openssl-sys": [crate.annotation( build_script_data = [ From ad7d02b13b35dbcea3e325087207a4536e725dae Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Sat, 7 Jun 2025 19:21:43 +0000 Subject: [PATCH 19/19] trigger