Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix memory leak from CompressZFP. #1977

Merged
merged 4 commits into from
Feb 21, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 5 additions & 7 deletions scripts/ci/cmake/ci-fedora-asan.cmake
Original file line number Diff line number Diff line change
@@ -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")
Expand Down
13 changes: 13 additions & 0 deletions scripts/ci/images/fedora-asan/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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
1 change: 1 addition & 0 deletions source/adios2/operator/compress/CompressZFP.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down
1 change: 1 addition & 0 deletions source/adios2/toolkit/sst/cp/ffs_zfp.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down