[svn-r23407] Purpose:

HDFFV-8214 - h5repack failed converting small chunked dataset (size < 1K) to contiguous layout.

Description:
  h5repack failed converting small chunked dataset (size < 1K) to contiguous layout.
  The first case was when chunk dim is bigger than the dataset dim (at leat one), h5repack failed with displaying error stacks.
  The other case is when chunk dim is smaller than the dataset dim, h5repack failed to change layout.

    
Tested: 
    jam (linux32-LE), koala (linux64-LE), ostrich (linuxppc64-BE), emu (solaris-BE),fred (mac64-LE), Windows (32-LE cmake), cmake (jam)
This commit is contained in:
Jonathan Kim 2013-03-20 15:33:33 -05:00
parent 59dd5665a5
commit e8955b876c
4 changed files with 26 additions and 10 deletions

View File

@ -751,6 +751,8 @@ Bug Fixes since HDF5-1.8.0 release
Tools
-----
- h5repack: Fixed failure for converting a layout of small chunked dataset
(size < 1K) to contiguous layout. HDFFV-8214 (JKM 2013/03/18)
- h5diff: Fixed to return correct exit code 1 when detect unique extra
attribute. Prior to this fix, h5diff returned exit code 0 indicating
two files are identical. HDFFV-7643 (JKM 2013/02/15)

View File

@ -881,6 +881,18 @@ ADD_H5_VERIFY_TEST (error3 "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 H5S_UNLIM
# file input - should not fail
ADD_H5_TEST (error4 "TEST" h5repack_layout3.h5 -f NONE)
#--------------------------------------------------------------------------
# Test base: Convert CHUNK to CONTI for a chunked dataset with small dataset
# (dset size < 64K) and with unlimited max dims on a condition as follow.
# (HDFFV-8214)
#--------------------------------------------------------------------------
# chunk dim is bigger than dataset dim. should succeed.
ADD_H5_VERIFY_TEST (ckdim_biger "TEST" 0 h5repack_layout3.h5 chunk_unlimit2 CONTI -l chunk_unlimit2:CONTI)
# chunk dim is smaller than dataset dim. should succeed.
ADD_H5_VERIFY_TEST (ckdim_smaller "TEST" 0 h5repack_layout3.h5 chunk_unlimit3 CONTI -l chunk_unlimit3:CONTI)
# Native option
# Do not use FILE1, as the named dtype will be converted to native, and h5diff will
# report a difference.

View File

@ -891,6 +891,18 @@ VERIFY_LAYOUT_DSET error3 h5repack_layout3.h5 chunk_unlimit3 H5S_UNLIMITED -f ch
# file input - should not fail
TOOLTEST error4 h5repack_layout3.h5 -f NONE
#--------------------------------------------------------------------------
# Test base: Convert CHUNK to CONTI for a chunked dataset with small dataset
# (dset size < 64K) and with unlimited max dims on a condition as follow.
# (HDFFV-8214)
#--------------------------------------------------------------------------
# chunk dim is bigger than dataset dim. should succeed.
VERIFY_LAYOUT_DSET ckdim_biger h5repack_layout3.h5 chunk_unlimit2 CONTI -l chunk_unlimit2:CONTI
# chunk dim is smaller than dataset dim. should succeed.
VERIFY_LAYOUT_DSET ckdim_smaller h5repack_layout3.h5 chunk_unlimit3 CONTI -l chunk_unlimit3:CONTI
# Native option
# Do not use FILE1, as the named dtype will be converted to native, and h5diff will
# report a difference.

View File

@ -1017,16 +1017,6 @@ int do_copy_objects(hid_t fidin,
/* get the storage size of the input dataset */
dsize_in=H5Dget_storage_size(dset_in);
/* check for small size datasets (less than 1k) except
* changing to COMPACT. For the reference, COMPACT is limited
* by size 64K by library.
*/
if (options->layout_g != H5D_COMPACT)
{
if ( size_dset < options->min_comp )
apply_s=0;
}
/* apply the filter */
if (apply_s)
{