diff --git a/scripts/ci/cmake/ci-fedora-asan.cmake b/scripts/ci/cmake/ci-fedora-asan.cmake index bc80a0454c055eb593d26e9ae136a620b61399b5..acb8f27c66e72d07a7b6bb312a4b8cedf5cbd5a8 100644 --- a/scripts/ci/cmake/ci-fedora-asan.cmake +++ b/scripts/ci/cmake/ci-fedora-asan.cmake @@ -1,20 +1,18 @@ # Client maintainer: chuck.atkins@kitware.com -set(ENV{CC} gcc) -set(ENV{CXX} g++) -set(ENV{FC} gfortran) -set(ASAN_FLAGS "-fsanitize=address -pthread") +set(ENV{CC} clang) +set(ENV{CXX} clang++) +set(ASAN_FLAGS "-fsanitize=address -fno-omit-frame-pointer -pthread") set(ENV{CFLAGS} "${ASAN_FLAGS}") set(ENV{CXXFLAGS} "${ASAN_FLAGS}") set(ENV{FFLAGS} "${ASAN_FLAGS}") set(dashboard_cache " +ADIOS2_USE_Fortran:STRING=OFF ADIOS2_USE_HDF5:STRING=ON ADIOS2_USE_MPI:STRING=OFF ADIOS2_USE_Python:STRING=OFF - -HDF5_C_COMPILER_EXECUTABLE:FILEPATH=/usr/bin/h5cc -HDF5_DIFF_EXECUTABLE:FILEPATH=/usr/bin/h5diff +ADIOS2_USE_ZFP:STRING=ON ") set(dashboard_track "Analysis") diff --git a/scripts/ci/images/fedora-asan/Dockerfile b/scripts/ci/images/fedora-asan/Dockerfile index 3d2e1a5c1b8fafe5e4534f92f7b61cd1c8f97785..e77f058d22f97cfc372cda7a01bdf7ca37b70ea4 100644 --- a/scripts/ci/images/fedora-asan/Dockerfile +++ b/scripts/ci/images/fedora-asan/Dockerfile @@ -3,6 +3,19 @@ FROM ornladios/adios2:fedora-sanitizers-base # Install core dev packages RUN dnf -y install libasan python3-devel python3-numpy hdf5-devel +# Install ZFP +WORKDIR /opt/zfp +RUN curl -L https://github.com/LLNL/zfp/releases/download/0.5.5/zfp-0.5.5.tar.gz | tar -xvz && \ + mkdir build && \ + cd build && \ + cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/zfp/0.5.5 ../zfp-0.5.5 && \ + make -j$(grep -c '^processor' /proc/cpuinfo) install && \ + cd .. && \ + rm -rf zfp-0.5.5 build +ENV PATH=/opt/zfp/0.5.5/bin:${PATH} \ + LD_LIBRARY_PATH=/opt/zfp/0.5.5/lib64:${LD_LIBRARY_PATH} \ + CMAKE_PREFIX_PATH=/opt/zfp/0.5.5:${CMAKE_PREFIX_PATH} + # Misc cleanup RUN dnf clean all && \ rm -rfv /tmp/* /var/cache/dnf diff --git a/source/adios2/operator/compress/CompressZFP.cpp b/source/adios2/operator/compress/CompressZFP.cpp index 87f821fd3c916b55f363cc1834186e2e87f3c988..d720f4d0db0c6a6f2c3fce475d87a5ea724dc314 100644 --- a/source/adios2/operator/compress/CompressZFP.cpp +++ b/source/adios2/operator/compress/CompressZFP.cpp @@ -63,6 +63,7 @@ size_t CompressZFP::Compress(const void *dataIn, const Dims &dimensions, zfp_field_free(field); zfp_stream_close(stream); + stream_close(bitstream); return sizeOut; } diff --git a/source/adios2/toolkit/sst/cp/ffs_zfp.c b/source/adios2/toolkit/sst/cp/ffs_zfp.c index 76a133b13f963f68fafc9de749f4d44bf862b4a0..7f4737a2d01764f1692151c096fa7a279ce77f98 100644 --- a/source/adios2/toolkit/sst/cp/ffs_zfp.c +++ b/source/adios2/toolkit/sst/cp/ffs_zfp.c @@ -153,6 +153,7 @@ extern char *FFS_ZFPCompress(SstStream Stream, const size_t DimCount, size_t sizeOut = zfp_compress(stream, field); zfp_field_free(field); zfp_stream_close(stream); + stream_close(bitstream); *ByteCountP = sizeOut; return bufferOut; }