Dave,

Could you please send an example program to our Helpdesk 
([email protected]<mailto:[email protected]>)? This will speedup the 
investigation.

Thank you!

Elena
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Elena Pourmal  The HDF Group  http://hdfgroup.org
1800 So. Oak St., Suite 203, Champaign IL 61820
217.531.6112
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~




On Apr 20, 2016, at 12:47 PM, Dave Craig 
<[email protected]<mailto:[email protected]>> wrote:

The assertion occurs when using the HDF5 v1.8.16 Thread Safe with Zlib and the 
H5_term_library() function is called after having closed a file which contains 
a chunked, non-compressed Armadillo Matrix of doubles (i.e., arma::mat).

The assertion does not occur when using the HDF5 v1.8.16 Thread Safe without 
Zlib and the H5_term_library() function is called after having closed a file 
which contains a chunked, non-compressed Armadillo Matrix of doubles (i.e., 
arma::mat).

The H5 file is created with the ‘H5F_CLOSE_STRONG’ property


GDB dump:


Program received signal SIGABRT, Aborted.

0x0000003ca7032625 in raise () from /lib64/libc.so.6
(gdb) up
#1  0x0000003ca7033e05 in abort () from /lib64/libc.so.6
(gdb)
#2  0x0000003ca702b74e in __assert_fail_base () from /lib64/libc.so.6
(gdb)
#3  0x0000003ca702b810 in __assert_fail () from /lib64/libc.so.6
(gdb)
#4  0x00007ffff7584e1c in H5T_conv_struct_free (priv=0xab6e30) at H5Tconv.c:1845
1845                HDassert(status >= 0);
(gdb)
#5  0x00007ffff7587180 in H5T__conv_struct_opt (src_id=-1, dst_id=-1, 
cdata=0xab2410, nelmts=0, buf_stride=0, bkg_stride=0,
    _buf=0x0, _bkg=0x0, dxpl_id=167772168) at H5Tconv.c:2458
2458                cdata->priv = H5T_conv_struct_free((H5T_conv_struct_t 
*)(cdata->priv));
(gdb)
#6  0x00007ffff7564c0f in H5T_term_interface () at H5T.c:1410
1410                    if((path->func)((hid_t)FAIL, (hid_t)FAIL, 
&(path->cdata), (size_t)0,
(gdb)
#7  0x00007ffff7279134 in H5_term_library () at H5.c:289
289             pending += DOWN(T);
(gdb)
#8  0x00007ffff727b082 in H5close () at H5.c:859
859         H5_term_library();
(gdb)
#9  0x00007ffff6fffa5f in H5::H5Library::termH5cpp() ()
   from 
/local/mnt/workspace/pcereck/ra_comp/pensim/ThirdParty/hdf5/hdf5-1.8.16/thread.safe.with.zlib/lib/libhdf5_cpp.so.11
(gdb) up
#10 0x0000003ca7035ebd in __cxa_finalize () from /lib64/libc.so.6
(gdb)
#11 0x00007ffff6ffc1e6 in __do_global_dtors_aux ()
   from 
/local/mnt/workspace/pcereck/ra_comp/pensim/ThirdParty/hdf5/hdf5-1.8.16/thread.safe.with.zlib/lib/libhdf5_cpp.so.11
(gdb)


Here is the H5T_conv_struct_free() function (the assert on line 1845 is 
highlighted):

static H5T_conv_struct_t *
H5T_conv_struct_free(H5T_conv_struct_t *priv)
{
    int         *src2dst = priv->src2dst;
    hid_t       *src_memb_id = priv->src_memb_id,
                *dst_memb_id = priv->dst_memb_id;
    unsigned    i;

    FUNC_ENTER_NOAPI_NOINIT_NOERR

    for(i = 0; i < priv->src_nmembs; i++)
        if(src2dst[i] >= 0) {
            int status;

            status = H5I_dec_ref(src_memb_id[i]);
            HDassert(status >= 0);
            status = H5I_dec_ref(dst_memb_id[src2dst[i]]);
            HDassert(status >= 0);
        } /* end if */

    H5MM_xfree(src2dst);
    H5MM_xfree(src_memb_id);
    H5MM_xfree(dst_memb_id);
    H5MM_xfree(priv->memb_path);

    FUNC_LEAVE_NOAPI((H5T_conv_struct_t *)H5MM_xfree(priv))
} /* end H5T_conv_struct_free() */

_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]<mailto:[email protected]>
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

Reply via email to