ci: Enable experimental kernel stuff in TSan task
What changed, and why it matters
This commit changes only the Bitcoin Core continuous integration (CI) test configuration. It turns on additional experimental kernel-related build options for the ThreadSanitizer (TSan) test job and switches it to use the developer-mode build preset. There is no change to the actual Bitcoin node code that users run, and nothing in the commit suggests a security vulnerability or fix.
No security action required. Treat as a normal CI/test coverage change.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch modifies .github/workflows/ci.yml to rename the CI job from ‘TSan, depends, no gui’ to ‘TSan’ and updates ci/test/00_setup_env_native_tsan.sh to use --preset=dev-mode while enabling bitcoin-chainstate, libbitcoinkernel, and kernel-test experimental components. It keeps the GUI disabled and retains the ThreadSanitizer and debug lock-contention flags. This is purely a CI/test-matrix configuration change.
Changed components
Bitcoin Core CI configuration (GitHub Actions)ThreadSanitizer (TSan) test environment scriptInspect captured patch +7 / −3
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index a24f0afd..ce3129a7 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -528,7 +528,7 @@ jobs:
timeout-minutes: 120
file-env: './ci/test/00_setup_env_native_tidy.sh'
- - name: 'TSan, depends, no gui'
+ - name: 'TSan'
cirrus-runner: 'ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md'
fallback-runner: 'ubuntu-24.04'
timeout-minutes: 120
diff --git a/ci/test/00_setup_env_native_tsan.sh b/ci/test/00_setup_env_native_tsan.sh
index bf4b6841..b0429ce8 100755
--- a/ci/test/00_setup_env_native_tsan.sh
+++ b/ci/test/00_setup_env_native_tsan.sh
@@ -16,6 +16,10 @@ export PIP_PACKAGES="--break-system-packages pycapnp"
export DEP_OPTS="CC=clang CXX=clang++ CXXFLAGS='${LIBCXX_FLAGS}' NO_QT=1"
export GOAL="install"
export CI_LIMIT_STACK_SIZE=1
-export BITCOIN_CONFIG="-DWITH_ZMQ=ON -DSANITIZERS=thread \
--DAPPEND_CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKCONTENTION -D_LIBCPP_REMOVE_TRANSITIVE_INCLUDES'"
+export BITCOIN_CONFIG="\
+ --preset=dev-mode \
+ -DBUILD_GUI=OFF \
+ -DSANITIZERS=thread \
+ -DAPPEND_CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKCONTENTION -D_LIBCPP_REMOVE_TRANSITIVE_INCLUDES' \
+"
export USE_INSTRUMENTED_LIBCPP="Thread"
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.