Skip to content

Commit 8936cbc

Browse files
Address review feedback from webknjaz
1 parent d48ff9a commit 8936cbc

1 file changed

Lines changed: 22 additions & 29 deletions

File tree

.github/workflows/reusable-san.yml

Lines changed: 22 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,10 @@ jobs:
2626
&& ' (free-threading)'
2727
|| ''
2828
}}
29-
strategy:
30-
fail-fast: false
31-
matrix:
32-
os: [ubuntu-26.04]
33-
openssl_ver: [3.5.4]
34-
runs-on: ${{ matrix.os }}
29+
runs-on: ubuntu-26.04
3530
timeout-minutes: 60
3631
env:
37-
OPENSSL_VER: ${{ matrix.openssl_ver }}
38-
MULTISSL_DIR: ${{ github.workspace }}/multissl
39-
OPENSSL_DIR: ${{ github.workspace }}/multissl/openssl/${{ matrix.openssl_ver }}
32+
OPENSSL_VER: 3.5.4
4033
steps:
4134
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
4235
with:
@@ -47,38 +40,38 @@ jobs:
4740
run: |
4841
sudo ./.github/workflows/posix-deps-apt.sh
4942
# On ubuntu-26.04 image, clang is clang-21 by default
50-
51-
if [ "${SANITIZER}" = "TSan" ]; then
52-
# Reduce ASLR to avoid TSan crashing
53-
sudo sysctl -w vm.mmap_rnd_bits=28
54-
fi
55-
56-
- name: Sanitizer option setup
57-
run: |
58-
if [ "${SANITIZER}" = "TSan" ]; then
59-
echo "TSAN_OPTIONS=${SAN_LOG_OPTION} suppressions=${GITHUB_WORKSPACE}/Tools/tsan/suppressions${{
60-
fromJSON(inputs.free-threading)
61-
&& '_free_threading'
62-
|| ''
63-
}}.txt handle_segv=0" >> "$GITHUB_ENV"
64-
else
65-
echo "UBSAN_OPTIONS=${SAN_LOG_OPTION} halt_on_error=1 suppressions=${GITHUB_WORKSPACE}/Tools/ubsan/suppressions.txt" >> "$GITHUB_ENV"
66-
fi
6743
echo "CC=clang" >> "$GITHUB_ENV"
6844
echo "CXX=clang++" >> "$GITHUB_ENV"
45+
- name: TSan option setup
46+
if: inputs.sanitizer == 'TSan'
47+
run: |
48+
# Reduce ASLR to avoid TSan crashing
49+
sudo sysctl -w vm.mmap_rnd_bits=28
50+
echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> "$GITHUB_ENV"
51+
echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> "$GITHUB_ENV"
52+
echo "TSAN_OPTIONS=${SAN_LOG_OPTION} suppressions=${GITHUB_WORKSPACE}/Tools/tsan/suppressions${{
53+
fromJSON(inputs.free-threading)
54+
&& '_free_threading'
55+
|| ''
56+
}}.txt handle_segv=0" >> "$GITHUB_ENV"
57+
env:
58+
SAN_LOG_OPTION: log_path=${{ github.workspace }}/san_log
59+
- name: UBSan option setup
60+
if: inputs.sanitizer != 'TSan'
61+
run: |
62+
echo "UBSAN_OPTIONS=${SAN_LOG_OPTION} halt_on_error=1 suppressions=${GITHUB_WORKSPACE}/Tools/ubsan/suppressions.txt" >> "$GITHUB_ENV"
6963
env:
70-
SANITIZER: ${{ inputs.sanitizer }}
7164
SAN_LOG_OPTION: log_path=${{ github.workspace }}/san_log
7265
- name: Add ccache to PATH
7366
run: |
7467
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
7568
- name: 'Restore OpenSSL build (TSan)'
7669
id: cache-openssl
77-
uses: actions/cache@v4
7870
if: inputs.sanitizer == 'TSan'
71+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
7972
with:
8073
path: ./multissl/openssl/${{ env.OPENSSL_VER }}
81-
key: ${{ matrix.os }}-multissl-openssl-tsan-${{ env.OPENSSL_VER }}
74+
key: ${{ env.IMAGE_OS_VERSION }}-multissl-openssl-tsan-${{ env.OPENSSL_VER }}
8275
- name: Install OpenSSL (TSan)
8376
if: steps.cache-openssl.outputs.cache-hit != 'true' && inputs.sanitizer == 'TSan'
8477
run: python3 Tools/ssl/multissltests.py --steps=library --base-directory "$MULTISSL_DIR" --openssl "$OPENSSL_VER" --system Linux --tsan

0 commit comments

Comments
 (0)