Crash when freeing user-provided buffer on filter callback

Hi there,

I have encountered the same problem with HDF 1.12.0, but not with 1.10.6. I added to the minimal C program from Crash when writing parallel compressed chunks to reproduce the problem. I hope this helps:

#include <stdlib.h>

#include <stdio.h>

#include <string.h>

​

#include "hdf5.h"

​

#define _MPI

//#define _DSET2

//#define _COMPRESS

#define _FILTER

​

#define NPROC 4

​

#define NDIM 2

#define CHUNK0 4

​

// Equivalent to original gist

// Works on 1.10.5 with patch, crashes on 1.10.5 vanilla and hangs on 1.10.6

#define CHUNK1 32768

#define NCHUNK1 32

​

// Works on 1.10.5 with and without patch and 1.10.6

//#define CHUNK1 256

//#define NCHUNK1 8192

​

// Works on 1.10.5 with and without patch and 1.10.6

//#define CHUNK1 512

//#define NCHUNK1 8192

​

// Crashes on 1.10.5 with and without patch, 1.10.6 and 1.12.0

//#define CHUNK1 256

//#define NCHUNK1 16384

​

// 3 dimensional example

//#define NDIM 3

//#define CHUNK0 16

//#define NCHUNK1 28

//#define CHUNK1 256

//#define NCHUNK2 4096/128

//#define CHUNK2 128

​

​

#ifdef _FILTER

#define TEST_FILTER 305

​

size_t

minimal_filter(unsigned int flags, size_t cd_nelmts,

           const unsigned int cd_values[], size_t nbytes,

           size_t *buf_size, void **buf)

{

    // memcpy the input buffer and free it

    void* out_buf = malloc(*buf_size);

    memcpy((char*)(*buf), out_buf, nbytes);

    free(*buf);

    *buf = out_buf;

    out_buf = NULL;

    return nbytes;

}

​

H5Z_class_t minimal_H5Filter[1] = {{

    H5Z_CLASS_T_VERS,

    (H5Z_filter_t)(TEST_FILTER),

    1, 1,

    "minimal test filter",

    NULL,

    NULL,

    (H5Z_func_t)(minimal_filter)

}};

#endif

​

​

int main(int argc, char **argv) {

​

    int mpi_size = 1, mpi_rank = 0;

    hid_t fapl_id, file_id, dset_space, dcpl_id, ds, ds2, propid, mem_dspace, sel_dspace;

​

    fapl_id = H5Pcreate(H5P_FILE_ACCESS);

#ifdef _MPI

    MPI_Comm comm  = MPI_COMM_WORLD;

    MPI_Info info  = MPI_INFO_NULL;

​

    MPI_Init(&argc, &argv);

    MPI_Comm_size(comm, &mpi_size);

    MPI_Comm_rank(comm, &mpi_rank);

​

    H5Pset_fapl_mpio(fapl_id, comm, info);

#endif

​

    printf("MPI rank [%i/%i]\n", mpi_rank, mpi_size);

​

    printf("rank=%i creating file\n", mpi_rank);

    file_id = H5Fcreate("test1.h5", H5F_ACC_TRUNC, H5P_DEFAULT, fapl_id);

    H5Pclose(fapl_id);

​

    // Define total dataset size

#if NDIM==3

    hsize_t dset_dims[NDIM] = {NPROC * CHUNK0, CHUNK1 * NCHUNK1, CHUNK2 * NCHUNK2};

#elif NDIM==2

    hsize_t dset_dims[NDIM] = {NPROC * CHUNK0, CHUNK1 * NCHUNK1};

#else

   return 0;

#endif

    dset_space = H5Screate_simple (NDIM, dset_dims, NULL);

    dcpl_id = H5Pcreate(H5P_DATASET_CREATE);

​

#ifdef _FILTER

    // register and set minimal test filter

    herr_t status = H5Zregister(minimal_H5Filter);

    if (status < 0) {

        printf("Failed to register filter. code %i\n", status);

        return 1;

    }

    status = H5Pset_filter(dcpl_id, TEST_FILTER, 0, 0, NULL);

    if (status < 0) {

        printf("Failed to set filter. code %i\n", status);

        return 1;

    }

#endif

​

    // Set chunking and compression params

#if NDIM==3

    hsize_t chunk_dims[NDIM] = {CHUNK0, CHUNK1, CHUNK2};

#elif NDIM==2

    hsize_t chunk_dims[NDIM] = {CHUNK0, CHUNK1};

#else

    return 0;

#endif

    H5Pset_chunk(dcpl_id, NDIM, chunk_dims);

​

#ifdef _COMPRESS

    H5Pset_deflate(dcpl_id, 9);

#endif

​

    // Define selection

#if NDIM==3

    hsize_t sel_dims[NDIM] = {CHUNK0, CHUNK1 * NCHUNK1, CHUNK2 * NCHUNK2};

    hsize_t offset[NDIM] = {mpi_rank * sel_dims[0], 0, 0};

    printf("rank=%i creating selection [%llu:%llu, %llu:%llu, %llu:%llu]\n",

           mpi_rank, offset[0], offset[0] + sel_dims[0], offset[1], offset[1] + sel_dims[1], offset[2], offset[2] + sel_dims[2]);

#elif NDIM==2

    hsize_t sel_dims[NDIM] = {CHUNK0, CHUNK1 * NCHUNK1};

    hsize_t offset[NDIM] = {mpi_rank * sel_dims[0], 0};

    printf("rank=%i creating selection [%llu:%llu, %llu:%llu]\n",

           mpi_rank, offset[0], offset[0] + sel_dims[0], offset[1], offset[1] + sel_dims[1]);

#else

    return 0;

#endif

    sel_dspace = H5Screate_simple(NDIM, dset_dims, NULL);

    H5Sselect_hyperslab(sel_dspace, H5S_SELECT_SET,

                        offset, NULL, sel_dims, NULL);

​

    // Set the dspace for the input data

    mem_dspace = H5Screate_simple (NDIM, sel_dims, NULL);

​

    propid = H5Pcreate(H5P_DATASET_XFER);

#ifdef _MPI

    H5Pset_dxpl_mpio(propid, H5FD_MPIO_COLLECTIVE);

#endif

​

    // Create the dataset

    printf("rank=%i creating dataset1\n", mpi_rank);

    ds = H5Dcreate (file_id, "dset1", H5T_NATIVE_FLOAT, dset_space, H5P_DEFAULT, dcpl_id, H5P_DEFAULT);

​

    // Create array of data to write

    // Initialise with random data.

#if NDIM==3

    int totalsize = sel_dims[0] * sel_dims[1] * sel_dims[2];

#elif NDIM==2

    int totalsize = sel_dims[0] * sel_dims[1];

#else

    return 0;

#endif

    float *data = (float *)malloc(sizeof(float) * totalsize);

    for(int i = 0; i < totalsize; i++) {

        data[i] = (float)drand48();

    }

​

    printf("rank=%i writing dataset1\n", mpi_rank);

    H5Dwrite(ds, H5T_NATIVE_FLOAT, mem_dspace, sel_dspace, propid, data);

    printf("rank=%i finished writing dataset1\n", mpi_rank);

​

#ifdef _DSET2

    // Create the dataset

    printf("rank=%i creating dataset2\n", mpi_rank);

    ds2 = H5Dcreate (file_id, "dset2", H5T_NATIVE_FLOAT, dset_space, H5P_DEFAULT, dcpl_id, H5P_DEFAULT);

    

    // Generate new data and write

    printf("rank=%i writing dataset2\n", mpi_rank);

    for(int i = 0; i < totalsize; i++) {

        data[i] = drand48();

    }

    H5Dwrite(ds2, H5T_NATIVE_FLOAT, mem_dspace, sel_dspace, propid, data);

    

    H5Dclose(ds2);

#endif

​

    // Close down everything

    printf("rank=%i closing everything\n", mpi_rank);

    H5Dclose(ds);

    H5Sclose(dset_space);

    H5Sclose(sel_dspace);

    H5Sclose(mem_dspace);

    H5Pclose(dcpl_id);

    H5Pclose(propid);

    H5Fclose(file_id);

​

    free(data);

​

    MPI_Finalize();

    return 0;

 }

This is the output with the address sanitizer enabled:

MPI rank [0/4]

rank=0 creating file

MPI rank [1/4]

rank=1 creating file

MPI rank [2/4]

rank=2 creating file

MPI rank [3/4]

rank=3 creating file

rank=0 creating selection [0:16, 0:7168, 0:4096]

rank=0 creating dataset1

rank=1 creating selection [16:32, 0:7168, 0:4096]

rank=2 creating selection [32:48, 0:7168, 0:4096]

rank=3 creating selection [48:64, 0:7168, 0:4096]

rank=2 creating dataset1

rank=1 creating dataset1

rank=3 creating dataset1

=================================================================

==135802==ERROR: AddressSanitizer: attempting free on address which was not malloc()-ed: 0x2afbfd586830 in thread T0

=================================================================

==135803==ERROR: AddressSanitizer: attempting free on address which was not malloc()-ed: 0x2b5022fa9830 in thread T0

=================================================================

=================================================================

==135805==ERROR: AddressSanitizer: attempting free on address which was not malloc()-ed: 0x2b9116cf3830 in thread T0

==135804==ERROR: AddressSanitizer: attempting free on address which was not malloc()-ed: 0x2b2d6adf3830 in thread T0

    #0 0x2afbf0f9d487 in free (/cvmfs/soft.computecanada.ca/nix/var/nix/profiles/16.09/lib/libasan.so.5+0x106487)

    #1 0x428c4e in minimal_filter /scratch/rickn/test_hdf5/test_filter.c:35

    #2 0x739ef3 in H5Z_pipeline /scratch/rickn/hdf5/src/H5Z.c:1366

    #0 0x2b2d5e80c487 in free (/cvmfs/soft.computecanada.ca/nix/var/nix/profiles/16.09/lib/libasan.so.5+0x106487)

    #0 0x2b910a707487 in free (/cvmfs/soft.computecanada.ca/nix/var/nix/profiles/16.09/lib/libasan.so.5+0x106487)

    #0 0x2b50169bc487 in free (/cvmfs/soft.computecanada.ca/nix/var/nix/profiles/16.09/lib/libasan.so.5+0x106487)

    #1 0x428c4e in minimal_filter /scratch/rickn/test_hdf5/test_filter.c:35

    #1 0x428c4e in minimal_filter /scratch/rickn/test_hdf5/test_filter.c:35

    #1 0x428c4e in minimal_filter /scratch/rickn/test_hdf5/test_filter.c:35

    #2 0x739ef3 in H5Z_pipeline /scratch/rickn/hdf5/src/H5Z.c:1366

    #2 0x739ef3 in H5Z_pipeline /scratch/rickn/hdf5/src/H5Z.c:1366

    #2 0x739ef3 in H5Z_pipeline /scratch/rickn/hdf5/src/H5Z.c:1366

    #3 0x789f89 in H5D__chunk_allocate /scratch/rickn/hdf5/src/H5Dchunk.c:4473

    #3 0x789f89 in H5D__chunk_allocate /scratch/rickn/hdf5/src/H5Dchunk.c:4473

    #3 0x789f89 in H5D__chunk_allocate /scratch/rickn/hdf5/src/H5Dchunk.c:4473

    #3 0x789f89 in H5D__chunk_allocate /scratch/rickn/hdf5/src/H5Dchunk.c:4473

    #4 0x4ae27f in H5D__init_storage /scratch/rickn/hdf5/src/H5Dint.c:2473

    #5 0x4b3d31 in H5D__alloc_storage /scratch/rickn/hdf5/src/H5Dint.c:2386

    #6 0x4bc06e in H5D__layout_oh_create /scratch/rickn/hdf5/src/H5Dlayout.c:507

    #7 0x4ad1c4 in H5D__update_oh_info /scratch/rickn/hdf5/src/H5Dint.c:1070

    #8 0x4afa39 in H5D__create /scratch/rickn/hdf5/src/H5Dint.c:1373

    #9 0x79e984 in H5O__dset_create /scratch/rickn/hdf5/src/H5Doh.c:300

    #4 0x4ae27f in H5D__init_storage /scratch/rickn/hdf5/src/H5Dint.c:2473

    #4 0x4ae27f in H5D__init_storage /scratch/rickn/hdf5/src/H5Dint.c:2473

    #4 0x4ae27f in H5D__init_storage /scratch/rickn/hdf5/src/H5Dint.c:2473

    #5 0x4b3d31 in H5D__alloc_storage /scratch/rickn/hdf5/src/H5Dint.c:2386

    #5 0x4b3d31 in H5D__alloc_storage /scratch/rickn/hdf5/src/H5Dint.c:2386

    #5 0x4b3d31 in H5D__alloc_storage /scratch/rickn/hdf5/src/H5Dint.c:2386

    #6 0x4bc06e in H5D__layout_oh_create /scratch/rickn/hdf5/src/H5Dlayout.c:507

    #6 0x4bc06e in H5D__layout_oh_create /scratch/rickn/hdf5/src/H5Dlayout.c:507

    #6 0x4bc06e in H5D__layout_oh_create /scratch/rickn/hdf5/src/H5Dlayout.c:507

    #7 0x4ad1c4 in H5D__update_oh_info /scratch/rickn/hdf5/src/H5Dint.c:1070

    #8 0x4afa39 in H5D__create /scratch/rickn/hdf5/src/H5Dint.c:1373

    #7 0x4ad1c4 in H5D__update_oh_info /scratch/rickn/hdf5/src/H5Dint.c:1070

    #8 0x4afa39 in H5D__create /scratch/rickn/hdf5/src/H5Dint.c:1373

    #7 0x4ad1c4 in H5D__update_oh_info /scratch/rickn/hdf5/src/H5Dint.c:1070

    #10 0x5b62df in H5O_obj_create /scratch/rickn/hdf5/src/H5Oint.c:2521

    #8 0x4afa39 in H5D__create /scratch/rickn/hdf5/src/H5Dint.c:1373

    #9 0x79e984 in H5O__dset_create /scratch/rickn/hdf5/src/H5Doh.c:300

    #9 0x79e984 in H5O__dset_create /scratch/rickn/hdf5/src/H5Doh.c:300

    #9 0x79e984 in H5O__dset_create /scratch/rickn/hdf5/src/H5Doh.c:300

    #10 0x5b62df in H5O_obj_create /scratch/rickn/hdf5/src/H5Oint.c:2521

    #11 0x57ef66 in H5L__link_cb /scratch/rickn/hdf5/src/H5L.c:1850

    #10 0x5b62df in H5O_obj_create /scratch/rickn/hdf5/src/H5Oint.c:2521

    #10 0x5b62df in H5O_obj_create /scratch/rickn/hdf5/src/H5Oint.c:2521

    #12 0x540a49 in H5G__traverse_real /scratch/rickn/hdf5/src/H5Gtraverse.c:629

    #13 0x5416c8 in H5G_traverse /scratch/rickn/hdf5/src/H5Gtraverse.c:854

    #14 0x5781d7 in H5L__create_real /scratch/rickn/hdf5/src/H5L.c:2044

    #15 0x580cfd in H5L_link_object /scratch/rickn/hdf5/src/H5L.c:1803

    #16 0x4aed95 in H5D__create_named /scratch/rickn/hdf5/src/H5Dint.c:410

    #17 0x728b3d in H5VL__native_dataset_create /scratch/rickn/hdf5/src/H5VLnative_dataset.c:74

    #11 0x57ef66 in H5L__link_cb /scratch/rickn/hdf5/src/H5L.c:1850

    #11 0x57ef66 in H5L__link_cb /scratch/rickn/hdf5/src/H5L.c:1850

    #11 0x57ef66 in H5L__link_cb /scratch/rickn/hdf5/src/H5L.c:1850

    #12 0x540a49 in H5G__traverse_real /scratch/rickn/hdf5/src/H5Gtraverse.c:629

    #12 0x540a49 in H5G__traverse_real /scratch/rickn/hdf5/src/H5Gtraverse.c:629

    #13 0x5416c8 in H5G_traverse /scratch/rickn/hdf5/src/H5Gtraverse.c:854

    #14 0x5781d7 in H5L__create_real /scratch/rickn/hdf5/src/H5L.c:2044

    #13 0x5416c8 in H5G_traverse /scratch/rickn/hdf5/src/H5Gtraverse.c:854

    #12 0x540a49 in H5G__traverse_real /scratch/rickn/hdf5/src/H5Gtraverse.c:629

    #15 0x580cfd in H5L_link_object /scratch/rickn/hdf5/src/H5L.c:1803

    #14 0x5781d7 in H5L__create_real /scratch/rickn/hdf5/src/H5L.c:2044

    #15 0x580cfd in H5L_link_object /scratch/rickn/hdf5/src/H5L.c:1803

    #16 0x4aed95 in H5D__create_named /scratch/rickn/hdf5/src/H5Dint.c:410

    #13 0x5416c8 in H5G_traverse /scratch/rickn/hdf5/src/H5Gtraverse.c:854

    #16 0x4aed95 in H5D__create_named /scratch/rickn/hdf5/src/H5Dint.c:410

    #14 0x5781d7 in H5L__create_real /scratch/rickn/hdf5/src/H5L.c:2044

    #15 0x580cfd in H5L_link_object /scratch/rickn/hdf5/src/H5L.c:1803

    #16 0x4aed95 in H5D__create_named /scratch/rickn/hdf5/src/H5Dint.c:410

    #17 0x728b3d in H5VL__native_dataset_create /scratch/rickn/hdf5/src/H5VLnative_dataset.c:74

    #17 0x728b3d in H5VL__native_dataset_create /scratch/rickn/hdf5/src/H5VLnative_dataset.c:74

    #17 0x728b3d in H5VL__native_dataset_create /scratch/rickn/hdf5/src/H5VLnative_dataset.c:74

    #18 0x708ac5 in H5VL__dataset_create /scratch/rickn/hdf5/src/H5VLcallback.c:1834

    #19 0x7115ae in H5VL_dataset_create /scratch/rickn/hdf5/src/H5VLcallback.c:1868

    #20 0x4a3322 in H5Dcreate2 /scratch/rickn/hdf5/src/H5D.c:150

    #21 0x4295bd in main /scratch/rickn/test_hdf5/test_filter.c:122

    #22 0x2afbf28ac2df in __libc_start_main (/cvmfs/soft.computecanada.ca/nix/store/63pk88rnmkzjblpxydvrmskkc8ci7cx6-glibc-2.24/lib/libc.so.6+0x202df)

    #23 0x428b09 in _start (/scratch/rickn/test_hdf5/testh5+0x428b09)

0x2afbfd586830 is located 48 bytes inside of 2097208-byte region [0x2afbfd586800,0x2afbfd786838)

allocated by thread T0 here:

    #0 0x2afbf0f9d838 in malloc (/cvmfs/soft.computecanada.ca/nix/var/nix/profiles/16.09/lib/libasan.so.5+0x106838)

    #18 0x708ac5 in H5VL__dataset_create /scratch/rickn/hdf5/src/H5VLcallback.c:1834

    #1 0x5903a1 in H5MM_malloc /scratch/rickn/hdf5/src/H5MM.c:292

    #19 0x7115ae in H5VL_dataset_create /scratch/rickn/hdf5/src/H5VLcallback.c:1868

    #18 0x708ac5 in H5VL__dataset_create /scratch/rickn/hdf5/src/H5VLcallback.c:1834

    #2 0x77bc3f in H5D__chunk_mem_alloc /scratch/rickn/hdf5/src/H5Dchunk.c:1404

    #19 0x7115ae in H5VL_dataset_create /scratch/rickn/hdf5/src/H5VLcallback.c:1868

    #18 0x708ac5 in H5VL__dataset_create /scratch/rickn/hdf5/src/H5VLcallback.c:1834

    #19 0x7115ae in H5VL_dataset_create /scratch/rickn/hdf5/src/H5VLcallback.c:1868

    #3 0x79de6d in H5D__fill_init /scratch/rickn/hdf5/src/H5Dfill.c:525

    #4 0x789e9a in H5D__chunk_allocate /scratch/rickn/hdf5/src/H5Dchunk.c:4437

    #5 0x4ae27f in H5D__init_storage /scratch/rickn/hdf5/src/H5Dint.c:2473

    #6 0x4b3d31 in H5D__alloc_storage /scratch/rickn/hdf5/src/H5Dint.c:2386

    #7 0x4bc06e in H5D__layout_oh_create /scratch/rickn/hdf5/src/H5Dlayout.c:507

    #8 0x4ad1c4 in H5D__update_oh_info /scratch/rickn/hdf5/src/H5Dint.c:1070

    #9 0x4afa39 in H5D__create /scratch/rickn/hdf5/src/H5Dint.c:1373

    #10 0x79e984 in H5O__dset_create /scratch/rickn/hdf5/src/H5Doh.c:300

    #20 0x4a3322 in H5Dcreate2 /scratch/rickn/hdf5/src/H5D.c:150

    #11 0x5b62df in H5O_obj_create /scratch/rickn/hdf5/src/H5Oint.c:2521

    #12 0x57ef66 in H5L__link_cb /scratch/rickn/hdf5/src/H5L.c:1850

    #13 0x540a49 in H5G__traverse_real /scratch/rickn/hdf5/src/H5Gtraverse.c:629

    #20 0x4a3322 in H5Dcreate2 /scratch/rickn/hdf5/src/H5D.c:150

    #21 0x4295bd in main /scratch/rickn/test_hdf5/test_filter.c:122

    #14 0x5416c8 in H5G_traverse /scratch/rickn/hdf5/src/H5Gtraverse.c:854

    #15 0x5781d7 in H5L__create_real /scratch/rickn/hdf5/src/H5L.c:2044

    #21 0x4295bd in main /scratch/rickn/test_hdf5/test_filter.c:122

    #22 0x2b50182cb2df in __libc_start_main (/cvmfs/soft.computecanada.ca/nix/store/63pk88rnmkzjblpxydvrmskkc8ci7cx6-glibc-2.24/lib/libc.so.6+0x202df)

    #22 0x2b2d6011b2df in __libc_start_main (/cvmfs/soft.computecanada.ca/nix/store/63pk88rnmkzjblpxydvrmskkc8ci7cx6-glibc-2.24/lib/libc.so.6+0x202df)

    #23 0x428b09 in _start (/scratch/rickn/test_hdf5/testh5+0x428b09)

0x2b2d6adf3830 is located 48 bytes inside of 2097208-byte region [0x2b2d6adf3800,0x2b2d6aff3838)

    #23 0x428b09 in _start (/scratch/rickn/test_hdf5/testh5+0x428b09)

    #16 0x580cfd in H5L_link_object /scratch/rickn/hdf5/src/H5L.c:1803

    #17 0x4aed95 in H5D__create_named /scratch/rickn/hdf5/src/H5Dint.c:410

    #18 0x728b3d in H5VL__native_dataset_create /scratch/rickn/hdf5/src/H5VLnative_dataset.c:74

    #20 0x4a3322 in H5Dcreate2 /scratch/rickn/hdf5/src/H5D.c:150

    #21 0x4295bd in main /scratch/rickn/test_hdf5/test_filter.c:122

    #22 0x2b910c0162df in __libc_start_main (/cvmfs/soft.computecanada.ca/nix/store/63pk88rnmkzjblpxydvrmskkc8ci7cx6-glibc-2.24/lib/libc.so.6+0x202df)

allocated by thread T0 here:

    #0 0x2b2d5e80c838 in malloc (/cvmfs/soft.computecanada.ca/nix/var/nix/profiles/16.09/lib/libasan.so.5+0x106838)

0x2b5022fa9830 is located 48 bytes inside of 2097208-byte region [0x2b5022fa9800,0x2b50231a9838)

allocated by thread T0 here:

    #19 0x708ac5 in H5VL__dataset_create /scratch/rickn/hdf5/src/H5VLcallback.c:1834

    #20 0x7115ae in H5VL_dataset_create /scratch/rickn/hdf5/src/H5VLcallback.c:1868

    #21 0x4a3322 in H5Dcreate2 /scratch/rickn/hdf5/src/H5D.c:150

    #22 0x4295bd in main /scratch/rickn/test_hdf5/test_filter.c:122

    #0 0x2b50169bc838 in malloc (/cvmfs/soft.computecanada.ca/nix/var/nix/profiles/16.09/lib/libasan.so.5+0x106838)

    #23 0x428b09 in _start (/scratch/rickn/test_hdf5/testh5+0x428b09)

0x2b9116cf3830 is located 48 bytes inside of 2097208-byte region [0x2b9116cf3800,0x2b9116ef3838)

    #1 0x5903a1 in H5MM_malloc /scratch/rickn/hdf5/src/H5MM.c:292

    #2 0x77bc3f in H5D__chunk_mem_alloc /scratch/rickn/hdf5/src/H5Dchunk.c:1404

    #23 0x2afbf28ac2df in __libc_start_main (/cvmfs/soft.computecanada.ca/nix/store/63pk88rnmkzjblpxydvrmskkc8ci7cx6-glibc-2.24/lib/libc.so.6+0x202df)

SUMMARY: AddressSanitizer: bad-free (/cvmfs/soft.computecanada.ca/nix/var/nix/profiles/16.09/lib/libasan.so.5+0x106487) in free

allocated by thread T0 here:

    #1 0x5903a1 in H5MM_malloc /scratch/rickn/hdf5/src/H5MM.c:292

    #2 0x77bc3f in H5D__chunk_mem_alloc /scratch/rickn/hdf5/src/H5Dchunk.c:1404

==135802==ABORTING

    #0 0x2b910a707838 in malloc (/cvmfs/soft.computecanada.ca/nix/var/nix/profiles/16.09/lib/libasan.so.5+0x106838)

    #1 0x5903a1 in H5MM_malloc /scratch/rickn/hdf5/src/H5MM.c:292

    #2 0x77bc3f in H5D__chunk_mem_alloc /scratch/rickn/hdf5/src/H5Dchunk.c:1404

    #3 0x79de6d in H5D__fill_init /scratch/rickn/hdf5/src/H5Dfill.c:525

    #4 0x789e9a in H5D__chunk_allocate /scratch/rickn/hdf5/src/H5Dchunk.c:4437

    #5 0x4ae27f in H5D__init_storage /scratch/rickn/hdf5/src/H5Dint.c:2473

    #3 0x79de6d in H5D__fill_init /scratch/rickn/hdf5/src/H5Dfill.c:525

    #6 0x4b3d31 in H5D__alloc_storage /scratch/rickn/hdf5/src/H5Dint.c:2386

    #4 0x789e9a in H5D__chunk_allocate /scratch/rickn/hdf5/src/H5Dchunk.c:4437

    #7 0x4bc06e in H5D__layout_oh_create /scratch/rickn/hdf5/src/H5Dlayout.c:507

    #5 0x4ae27f in H5D__init_storage /scratch/rickn/hdf5/src/H5Dint.c:2473

    #8 0x4ad1c4 in H5D__update_oh_info /scratch/rickn/hdf5/src/H5Dint.c:1070

    #9 0x4afa39 in H5D__create /scratch/rickn/hdf5/src/H5Dint.c:1373

    #6 0x4b3d31 in H5D__alloc_storage /scratch/rickn/hdf5/src/H5Dint.c:2386

    #7 0x4bc06e in H5D__layout_oh_create /scratch/rickn/hdf5/src/H5Dlayout.c:507

    #8 0x4ad1c4 in H5D__update_oh_info /scratch/rickn/hdf5/src/H5Dint.c:1070

    #9 0x4afa39 in H5D__create /scratch/rickn/hdf5/src/H5Dint.c:1373

    #10 0x79e984 in H5O__dset_create /scratch/rickn/hdf5/src/H5Doh.c:300

    #11 0x5b62df in H5O_obj_create /scratch/rickn/hdf5/src/H5Oint.c:2521

    #12 0x57ef66 in H5L__link_cb /scratch/rickn/hdf5/src/H5L.c:1850

    #3 0x79de6d in H5D__fill_init /scratch/rickn/hdf5/src/H5Dfill.c:525

    #4 0x789e9a in H5D__chunk_allocate /scratch/rickn/hdf5/src/H5Dchunk.c:4437

    #5 0x4ae27f in H5D__init_storage /scratch/rickn/hdf5/src/H5Dint.c:2473

    #10 0x79e984 in H5O__dset_create /scratch/rickn/hdf5/src/H5Doh.c:300

    #11 0x5b62df in H5O_obj_create /scratch/rickn/hdf5/src/H5Oint.c:2521

    #12 0x57ef66 in H5L__link_cb /scratch/rickn/hdf5/src/H5L.c:1850

    #13 0x540a49 in H5G__traverse_real /scratch/rickn/hdf5/src/H5Gtraverse.c:629

    #13 0x540a49 in H5G__traverse_real /scratch/rickn/hdf5/src/H5Gtraverse.c:629

    #14 0x5416c8 in H5G_traverse /scratch/rickn/hdf5/src/H5Gtraverse.c:854

    #15 0x5781d7 in H5L__create_real /scratch/rickn/hdf5/src/H5L.c:2044

    #16 0x580cfd in H5L_link_object /scratch/rickn/hdf5/src/H5L.c:1803

    #6 0x4b3d31 in H5D__alloc_storage /scratch/rickn/hdf5/src/H5Dint.c:2386

    #14 0x5416c8 in H5G_traverse /scratch/rickn/hdf5/src/H5Gtraverse.c:854

    #15 0x5781d7 in H5L__create_real /scratch/rickn/hdf5/src/H5L.c:2044

    #16 0x580cfd in H5L_link_object /scratch/rickn/hdf5/src/H5L.c:1803

    #17 0x4aed95 in H5D__create_named /scratch/rickn/hdf5/src/H5Dint.c:410

    #18 0x728b3d in H5VL__native_dataset_create /scratch/rickn/hdf5/src/H5VLnative_dataset.c:74

    #19 0x708ac5 in H5VL__dataset_create /scratch/rickn/hdf5/src/H5VLcallback.c:1834

    #17 0x4aed95 in H5D__create_named /scratch/rickn/hdf5/src/H5Dint.c:410

    #18 0x728b3d in H5VL__native_dataset_create /scratch/rickn/hdf5/src/H5VLnative_dataset.c:74

    #19 0x708ac5 in H5VL__dataset_create /scratch/rickn/hdf5/src/H5VLcallback.c:1834

    #20 0x7115ae in H5VL_dataset_create /scratch/rickn/hdf5/src/H5VLcallback.c:1868

    #21 0x4a3322 in H5Dcreate2 /scratch/rickn/hdf5/src/H5D.c:150

    #22 0x4295bd in main /scratch/rickn/test_hdf5/test_filter.c:122

    #7 0x4bc06e in H5D__layout_oh_create /scratch/rickn/hdf5/src/H5Dlayout.c:507

    #8 0x4ad1c4 in H5D__update_oh_info /scratch/rickn/hdf5/src/H5Dint.c:1070

    #9 0x4afa39 in H5D__create /scratch/rickn/hdf5/src/H5Dint.c:1373

    #10 0x79e984 in H5O__dset_create /scratch/rickn/hdf5/src/H5Doh.c:300

    #11 0x5b62df in H5O_obj_create /scratch/rickn/hdf5/src/H5Oint.c:2521

    #12 0x57ef66 in H5L__link_cb /scratch/rickn/hdf5/src/H5L.c:1850

    #23 0x2b2d6011b2df in __libc_start_main (/cvmfs/soft.computecanada.ca/nix/store/63pk88rnmkzjblpxydvrmskkc8ci7cx6-glibc-2.24/lib/libc.so.6+0x202df)

    #20 0x7115ae in H5VL_dataset_create /scratch/rickn/hdf5/src/H5VLcallback.c:1868

    #13 0x540a49 in H5G__traverse_real /scratch/rickn/hdf5/src/H5Gtraverse.c:629

    #14 0x5416c8 in H5G_traverse /scratch/rickn/hdf5/src/H5Gtraverse.c:854

    #15 0x5781d7 in H5L__create_real /scratch/rickn/hdf5/src/H5L.c:2044

    #16 0x580cfd in H5L_link_object /scratch/rickn/hdf5/src/H5L.c:1803

    #17 0x4aed95 in H5D__create_named /scratch/rickn/hdf5/src/H5Dint.c:410

    #18 0x728b3d in H5VL__native_dataset_create /scratch/rickn/hdf5/src/H5VLnative_dataset.c:74

    #19 0x708ac5 in H5VL__dataset_create /scratch/rickn/hdf5/src/H5VLcallback.c:1834

    #20 0x7115ae in H5VL_dataset_create /scratch/rickn/hdf5/src/H5VLcallback.c:1868

SUMMARY: AddressSanitizer: bad-free (/cvmfs/soft.computecanada.ca/nix/var/nix/profiles/16.09/lib/libasan.so.5+0x106487) in free

==135804==ABORTING

    #21 0x4a3322 in H5Dcreate2 /scratch/rickn/hdf5/src/H5D.c:150

    #22 0x4295bd in main /scratch/rickn/test_hdf5/test_filter.c:122

    #23 0x2b50182cb2df in __libc_start_main (/cvmfs/soft.computecanada.ca/nix/store/63pk88rnmkzjblpxydvrmskkc8ci7cx6-glibc-2.24/lib/libc.so.6+0x202df)

SUMMARY: AddressSanitizer: bad-free (/cvmfs/soft.computecanada.ca/nix/var/nix/profiles/16.09/lib/libasan.so.5+0x106487) in free

    #21 0x4a3322 in H5Dcreate2 /scratch/rickn/hdf5/src/H5D.c:150

==135803==ABORTING

    #22 0x4295bd in main /scratch/rickn/test_hdf5/test_filter.c:122

    #23 0x2b910c0162df in __libc_start_main (/cvmfs/soft.computecanada.ca/nix/store/63pk88rnmkzjblpxydvrmskkc8ci7cx6-glibc-2.24/lib/libc.so.6+0x202df)

SUMMARY: AddressSanitizer: bad-free (/cvmfs/soft.computecanada.ca/nix/var/nix/profiles/16.09/lib/libasan.so.5+0x106487) in free

==135805==ABORTING

--------------------------------------------------------------------------

Primary job  terminated normally, but 1 process returned

a non-zero exit code. Per user-direction, the job has been aborted.

--------------------------------------------------------------------------

--------------------------------------------------------------------------

mpirun detected that one or more processes exited with non-zero status, thus causing

the job to be terminated. The first process to do so was:

  Process name: [[9035,1],0]

  Exit code:    1

--------------------------------------------------------------------------

Cheers,
Rick