Skip to content

Commit

Permalink
resolve a few hdf5 asan issues related to cleanup during exceptions (#…
Browse files Browse the repository at this point in the history
…1304)

* resolve a few hdf5 asan issues related to cleanup during exception

* add alloc cleanup logic for hdf5 variable string case

* add lsan supressions file

* add gh actions asan build recipe for build w/ mpi

* gactemu
  • Loading branch information
cyrush authored Jul 20, 2024
1 parent 4e1149d commit 92e22b3
Show file tree
Hide file tree
Showing 7 changed files with 702 additions and 19 deletions.
116 changes: 116 additions & 0 deletions .github/workflows/build_conduit_clang_asan.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
name: build_conduit_clang_asan

on:
pull_request:
branches: [ develop ]

jobs:
build_basic:
name: Ubuntu Build Conduit Clang Asan
runs-on: ubuntu-latest
env:
CC: clang
CXX: clang++
MPICH_CC: clang
MPICH_CXX: clang++
CFLAGS: "-fsanitize=address -DNDEBUG"
CXXFLAGS: "-fsanitize=address -DNDEBUG"
steps:
- name: Install System Deps
run: |
sudo apt-get update -y
sudo apt-get install -y binutils \
clang \
llvm \
python3 \
perl \
git \
git-lfs \
curl \
wget \
tar \
unzip \
build-essential \
libncurses-dev \
libssl-dev \
libblas-dev \
liblapack-dev \
zlib1g-dev \
libgdbm-dev \
libreadline-dev \
libsqlite3-dev \
libbz2-dev \
mpich \
libmpich-dev \
cmake
- name: Checkout
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Build TPLs
run: |
env enable_mpi=OFF \
build_config=Debug \
enable_fortran=OFF \
enable_tests=OFF \
enable_verbose=OFF \
build_conduit=false \
build_jobs=4 \
prefix=tpls \
./scripts/build_conduit/build_conduit.sh
# - name: Configure Conduit (MPI)
# run: |
# cmake --version
# echo "**** Configuring Conduit"
# # Note: for system clang + mpich, we need to pass
# # mpi compiler wrappers are the c & cxx compilers
# cmake -S src \
# -B build \
# -C tpls/conduit-config.cmake \
# -DCMAKE_C_COMPILER=/usr/bin/mpicc \
# -DCMAKE_CXX_COMPILER=/usr/bin/mpicxx \
# -DENABLE_TESTS=ON \
# -DCMAKE_INSTALL_PREFIX=install
- name: Configure Conduit
run: |
cmake --version
echo "**** Configuring Conduit"
cmake -S src \
-B build \
-C tpls/conduit-config.cmake \
-DENABLE_TESTS=ON \
-DCMAKE_INSTALL_PREFIX=install
- name: Build Conduit
run: |
echo "**** Building Conduit"
cmake --build build -j4 --config Debug
- name: Run Conduit Unit Tests
run: |
echo "**** Conduit Unit Tests (asan)"
export ASAN_SYMBOLIZER_PATH=`which llvm-symbolizer`
export CWD=`pwd`
export LSAN_OPTIONS="suppressions=${CWD}/src/cmake/lsan.supp"
echo "ASAN_SYMBOLIZER_PATH=${ASAN_SYMBOLIZER_PATH}"
echo "LSAN_OPTIONS=${LSAN_OPTIONS}"
export CTEST_OUTPUT_ON_FAILURE=1
ctest --test-dir build
- name: Install Conduit
run: |
echo "**** Installing Conduit"
cmake --install build --config Debug
- name: Check Install
run: |
echo "**** Checking Conduit using-with-cmake example"
cd install/examples/conduit/using-with-cmake
cmake -S . -B build
cmake --build build --verbose -j4
./build/conduit_example
# - name: Check Install (MPI)
# run: |
# echo "**** Checking Conduit using-with-cmake-mpi example"
# export CC=/usr/bin/mpicc
# export CXX=/usr/bin/mpicxx
# cd install/examples/conduit/using-with-cmake-mpi
# cmake -S . -B build
# cmake --build build --verbose -j4
# mpiexec -n 2 ./build/conduit_mpi_example
2 changes: 1 addition & 1 deletion .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,9 @@ jobs:
strategy:
matrix:
python-version:
- '3.7'
- '3.8'
- '3.9'
- '3.10'
steps:
- uses: actions/setup-python@v2
with:
Expand Down
Loading

0 comments on commit 92e22b3

Please sign in to comment.