Skip to content

Address sanitizer bug with HDF5 i/o

There seems to be an issue when running parallel-hdf5 1.10.3 with the sanitizer on.

Using master with these modules: module load gnu_comp/7.3.0 intel_mpi/2018 metis/5.1.0 parallel_hdf5/1.10.3 gsl fftw/3.3.7 parmetis/4.0.3

Configuring with the address sanitizer ./configure --enable-deubgging-checks --enable-debug --enable-sanitizer

and running over MPI mpirun -np 4 ../swift_mpi eagle_6.yml -s -c -G -S -a -t 4 -v 1

leads to

[0000] [00002.9] engine_init_particles: Running initial fake time-step.
[0000] [00019.1] engine_dump_snapshot: Dumping snapshot at a=9.090909e-01
[0000] [00019.1] write_output_parallel: Snapshot and internal units match. No conversion needed.
ASAN:DEADLYSIGNAL
=================================================================
==21458==ERROR: AddressSanitizer: SEGV on unknown address 0x608000295e40 (pc 0x7fed35c8c115 bp 0x000000000110 sp 0x7ffd71b82388 T0)
==21458==The signal is caused by a READ memory access.
    #0 0x7fed35c8c114 in __I_MPI___intel_ssse3_rep_memcpy (/cosma/local/Intel/Parallel_Studio_XE_2018/compilers_and_libraries_2018.2.199/linux/mpi/intel64/lib/libmpifort.so.12+0xe5114)
    #1 0x7fed34ff1835 in ADIOI_NFS_WriteStrided (/cosma/local/Intel/Parallel_Studio_XE_2018/compilers_and_libraries_2018.2.199/linux/mpi/intel64/lib/libmpi.so.12+0xcf835)
    #2 0x7fed34ffb183 in ADIOI_GEN_WriteStridedColl (/cosma/local/Intel/Parallel_Studio_XE_2018/compilers_and_libraries_2018.2.199/linux/mpi/intel64/lib/libmpi.so.12+0xd9183)
    #3 0x7fed35412f4b in MPIOI_File_write_all (/cosma/local/Intel/Parallel_Studio_XE_2018/compilers_and_libraries_2018.2.199/linux/mpi/intel64/lib/libmpi.so.12+0x4f0f4b)
    #4 0x7fed35413fc4 in MPI_File_write_at_all (/cosma/local/Intel/Parallel_Studio_XE_2018/compilers_and_libraries_2018.2.199/linux/mpi/intel64/lib/libmpi.so.12+0x4f1fc4)
    #5 0x7fed377231e2 in H5FD_mpio_write (/cosma/local/parallel-hdf5//gnu_7.3.0_intel_mpi_2018/1.10.3/lib/libhdf5.so.103+0x3101e2)
    #6 0x7fed3752cd08 in H5FD_write (/cosma/local/parallel-hdf5//gnu_7.3.0_intel_mpi_2018/1.10.3/lib/libhdf5.so.103+0x119d08)
    #7 0x7fed3750a9f3 in H5F__accum_write (/cosma/local/parallel-hdf5//gnu_7.3.0_intel_mpi_2018/1.10.3/lib/libhdf5.so.103+0xf79f3)
    #8 0x7fed376105b9 in H5PB_write (/cosma/local/parallel-hdf5//gnu_7.3.0_intel_mpi_2018/1.10.3/lib/libhdf5.so.103+0x1fd5b9)
    #9 0x7fed3751560a in H5F_block_write (/cosma/local/parallel-hdf5//gnu_7.3.0_intel_mpi_2018/1.10.3/lib/libhdf5.so.103+0x10260a)
    #10 0x7fed37718162 in H5C_apply_candidate_list (/cosma/local/parallel-hdf5//gnu_7.3.0_intel_mpi_2018/1.10.3/lib/libhdf5.so.103+0x305162)
    #11 0x7fed37715630 in H5AC__run_sync_point (/cosma/local/parallel-hdf5//gnu_7.3.0_intel_mpi_2018/1.10.3/lib/libhdf5.so.103+0x302630)
    #12 0x7fed3771677a in H5AC__flush_entries (/cosma/local/parallel-hdf5//gnu_7.3.0_intel_mpi_2018/1.10.3/lib/libhdf5.so.103+0x30377a)
    #13 0x7fed37476c19 in H5AC_flush (/cosma/local/parallel-hdf5//gnu_7.3.0_intel_mpi_2018/1.10.3/lib/libhdf5.so.103+0x63c19)
    #14 0x7fed3750e470 in H5F__flush_phase2.part.2 (/cosma/local/parallel-hdf5//gnu_7.3.0_intel_mpi_2018/1.10.3/lib/libhdf5.so.103+0xfb470)
    #15 0x7fed3751020f in H5F__dest (/cosma/local/parallel-hdf5//gnu_7.3.0_intel_mpi_2018/1.10.3/lib/libhdf5.so.103+0xfd20f)
    #16 0x7fed375110fd in H5F_try_close (/cosma/local/parallel-hdf5//gnu_7.3.0_intel_mpi_2018/1.10.3/lib/libhdf5.so.103+0xfe0fd)
    #17 0x7fed37511432 in H5F__close_cb (/cosma/local/parallel-hdf5//gnu_7.3.0_intel_mpi_2018/1.10.3/lib/libhdf5.so.103+0xfe432)
    #18 0x7fed3758a0d6 in H5I_dec_ref (/cosma/local/parallel-hdf5//gnu_7.3.0_intel_mpi_2018/1.10.3/lib/libhdf5.so.103+0x1770d6)
    #19 0x7fed3758a23b in H5I_dec_app_ref (/cosma/local/parallel-hdf5//gnu_7.3.0_intel_mpi_2018/1.10.3/lib/libhdf5.so.103+0x17723b)
    #20 0x7fed37510ea9 in H5F__close (/cosma/local/parallel-hdf5//gnu_7.3.0_intel_mpi_2018/1.10.3/lib/libhdf5.so.103+0xfdea9)
    #21 0x7fed375064ad in H5Fclose (/cosma/local/parallel-hdf5//gnu_7.3.0_intel_mpi_2018/1.10.3/lib/libhdf5.so.103+0xf34ad)
    #22 0x50d176 in write_output_parallel /cosma5/data/dp004/jlvc76/SWIFT/master/swiftsim/src/parallel_io.c:1424
    #23 0x4aa399 in engine_dump_snapshot /cosma5/data/dp004/jlvc76/SWIFT/master/swiftsim/src/engine.c:6238
    #24 0x40a5d6 in main /cosma5/data/dp004/jlvc76/SWIFT/master/swiftsim/examples/main.c:993
    #25 0x7fed3475cc04 in __libc_start_main (/lib64/libc.so.6+0x21c04)
    #26 0x40d77b  (/cosma5/data/dp004/jlvc76/SWIFT/master/swiftsim/examples/swift_mpi+0x40d77b)
Edited by Matthieu Schaller
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information