What changed, and why it matters
This commit is a routine internal change to Bitcoin Core's continuous integration (CI) setup. It removes a standalone GitHub Actions job for running sanitizers (ASan, LSan, UBSan) and merges that same job into a shared CI matrix. There is no change to the actual Bitcoin node software, wallet code, or network behavior, and nothing in the commit suggests a security fix or vulnerability.
No security action needed. Treat as normal infrastructure/maintenance change.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff modifies .github/workflows/ci.yml only. It deletes the separate asan-lsan-ubsan-integer-no-depends-usdt job definition and adds an equivalent matrix entry under ci-matrix, using a Cirrus runner with an Ubuntu 24.04 fallback. The bpfcc tracing-tools enablement step is moved into the shared matrix steps with a conditional guard (env.CONTAINER_NAME == ‘ci_native_asan’). No source code, build scripts consumed by end users, or consensus/network logic is touched.
Changed components
.github/workflows/ci.ymlInspect captured patch +12 / −42
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 803cc2a1..ade29c1d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -412,48 +412,6 @@ jobs:
TEST_RUNNER_EXTRA: ${{ github.event_name != 'pull_request' && '--extended' || '' }}
run: py -3 test/functional/test_runner.py --jobs $NUMBER_OF_PROCESSORS --ci --quiet --tmpdirprefix="$RUNNER_TEMP" --combinedlogslen=99999999 --timeout-factor=$TEST_RUNNER_TIMEOUT_FACTOR $EXCLUDE $TEST_RUNNER_EXTRA
- asan-lsan-ubsan-integer-no-depends-usdt:
- name: 'ASan + LSan + UBSan + integer, no depends, USDT'
- runs-on: ubuntu-24.04 # has to match container in ci/test/00_setup_env_native_asan.sh for tracing tools
- if: ${{ vars.SKIP_BRANCH_PUSH != 'true' || github.event_name == 'pull_request' }}
- timeout-minutes: 120
- env:
- FILE_ENV: "./ci/test/00_setup_env_native_asan.sh"
- DANGER_CI_ON_HOST_FOLDERS: 1
- steps:
- - name: Checkout
- uses: actions/checkout@v5
-
- - name: Set CI directories
- run: |
- echo "CCACHE_DIR=${{ runner.temp }}/ccache_dir" >> "$GITHUB_ENV"
- echo "BASE_ROOT_DIR=${{ runner.temp }}" >> "$GITHUB_ENV"
- echo "BASE_BUILD_DIR=${{ runner.temp }}/build-asan" >> "$GITHUB_ENV"
-
- - name: Restore Ccache cache
- id: ccache-cache
- uses: actions/cache/restore@v4
- with:
- path: ${{ env.CCACHE_DIR }}
- key: ${{ github.job }}-ccache-${{ github.run_id }}
- restore-keys: ${{ github.job }}-ccache-
-
- - name: Enable bpfcc script
- # In the image build step, no external environment variables are available,
- # so any settings will need to be written to the settings env file:
- run: sed -i "s|\${INSTALL_BCC_TRACING_TOOLS}|true|g" ./ci/test/00_setup_env_native_asan.sh
-
- - name: CI script
- run: ./ci/test_run_all.sh
-
- - name: Save Ccache cache
- uses: actions/cache/save@v4
- if: github.event_name != 'pull_request' && steps.ccache-cache.outputs.cache-hit != 'true'
- with:
- path: ${{ env.CCACHE_DIR }}
- # https://github.com/actions/cache/blob/main/tips-and-workarounds.md#update-a-cache
- key: ${{ github.job }}-ccache-${{ github.run_id }}
-
ci-matrix:
name: ${{ matrix.name }}
needs: runners
@@ -475,6 +433,12 @@ jobs:
timeout-minutes: 120
file-env: './ci/test/00_setup_env_arm.sh'
+ - name: 'ASan + LSan + UBSan + integer, no depends, USDT'
+ cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-lg' # has to match container in ci/test/00_setup_env_native_asan.sh for tracing tools
+ fallback-runner: 'ubuntu-24.04'
+ timeout-minutes: 120
+ file-env: './ci/test/00_setup_env_native_asan.sh'
+
steps:
- name: Checkout
uses: actions/checkout@v5
@@ -491,6 +455,12 @@ jobs:
with:
use-cirrus: ${{ needs.runners.outputs.use-cirrus-runners }}
+ - name: Enable bpfcc script
+ if: ${{ env.CONTAINER_NAME == 'ci_native_asan' }}
+ # In the image build step, no external environment variables are available,
+ # so any settings will need to be written to the settings env file:
+ run: sed -i "s|\${INSTALL_BCC_TRACING_TOOLS}|true|g" ./ci/test/00_setup_env_native_asan.sh
+
- name: CI script
run: ./ci/test_run_all.sh
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.