mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-10 20:03:34 -03:00
2811f40f30
As mentioned in #26571, the task running the USDT interface tests
fail when run in docker. cc7335edc8
in #25528 added that the tests are run in a **VM** in Cirrus CI.
Running them locally in docker containers might not work:
- We use [bcc] as tracing toolkit which requires the kernel headers
to compile the BPF bytecode. As docker containers use the hosts
kernel and don't run their own, there is a potential for mismatches
between kernel headers available in the container and the host
kernel. This results in a failure loading the BPF byte code.
- Privilges are required to load the BPF byte code into the kernel.
Normally, the docker containers aren't run with these.
- We currently use an untrusted third-party PPA to install the
bpfcc-tools package on Ubuntu 22.04. Using this on a local dev
system could be a security risk.
To not hinder the ASan + LSan + UBSan part of the CI task, the USDT
tests are disabled on non-CirrusCI runs.
[bcc]: https://github.com/iovisor/bcc
26 lines
1.2 KiB
Bash
Executable file
26 lines
1.2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
#
|
|
# Copyright (c) 2019-2021 The Bitcoin Core developers
|
|
# Distributed under the MIT software license, see the accompanying
|
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
export LC_ALL=C.UTF-8
|
|
|
|
# Only install BCC tracing packages in Cirrus CI.
|
|
if [[ "${CIRRUS_CI}" == "true" ]]; then
|
|
# We install an up-to-date 'bpfcc-tools' package from an untrusted PPA.
|
|
# This can be dropped with the next Ubuntu or Debian release that includes up-to-date packages.
|
|
# See the if-then in ci/test/04_install.sh too.
|
|
export ADD_UNTRUSTED_BPFCC_PPA=true
|
|
export BPFCC_PACKAGE="bpfcc-tools"
|
|
else
|
|
export ADD_UNTRUSTED_BPFCC_PPA=false
|
|
export BPFCC_PACKAGE=""
|
|
fi
|
|
|
|
export CONTAINER_NAME=ci_native_asan
|
|
export PACKAGES="systemtap-sdt-dev clang llvm python3-zmq qtbase5-dev qttools5-dev-tools libevent-dev bsdmainutils libboost-dev libdb5.3++-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev libqrencode-dev libsqlite3-dev ${BPFCC_PACKAGE}"
|
|
export DOCKER_NAME_TAG=ubuntu:22.04
|
|
export NO_DEPENDS=1
|
|
export GOAL="install"
|
|
export BITCOIN_CONFIG="--enable-usdt --enable-zmq --with-incompatible-bdb --with-gui=qt5 CPPFLAGS='-DARENA_DEBUG -DDEBUG_LOCKORDER' --with-sanitizers=address,integer,undefined CC=clang CXX=clang++"
|