diff options
-rw-r--r-- | release_docs/RELEASE.txt | 15 | ||||
-rw-r--r-- | tools/src/h5repack/h5repack_refs.c | 9 |
2 files changed, 23 insertions, 1 deletions
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 6e87429..20e7fb5 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -32,6 +32,7 @@ CONTENTS - New Features - Support for new platforms and languages +- Bug Fixes since HDF5-1.12.0-alpha1 - Major Bug Fixes since HDF5-1.10.0 - Supported Platforms - Tested Configuration Features Summary @@ -234,6 +235,20 @@ Support for new platforms, languages and compilers. - Added cray-mpich/PrgEnv with gcc and Intel compilers on Linux 4.14.180 - Added spectrum mpi with clang, gcc and xl compilers on Linux 4.14.0 +Bug Fixes since HDF5-1.12.0-alpha1 release +================================== + Tools: + ------ + - h5repack was fixed to repack the reference attributes properly. + The code line that checks if the update of reference inside a compound + datatype is misplaced outside the code block loop that carries out the + check. In consequence, the next attribute that is not the reference + type was repacked again as the reference type and caused the failure of + repacking. The fix is to move the corresponding code line to the correct + code block. + + (KY -2020/02/10, HDFFV-11014) + Major Bug Fixes since HDF5-1.10.0 release ================================== diff --git a/tools/src/h5repack/h5repack_refs.c b/tools/src/h5repack/h5repack_refs.c index e6a747d..9544ee3 100644 --- a/tools/src/h5repack/h5repack_refs.c +++ b/tools/src/h5repack/h5repack_refs.c @@ -530,9 +530,16 @@ static int copy_refs_attr(hid_t loc_in, ref_comp_size = NULL; } } + /* This line below needs to be moved in this loop instead of inserting outside. Otherwise, + ref_comp_field_n may be >0 for the next attribute, which may not be + the reference type and will be accidently treated as the reference type. + It will then cause the H5Acreate2 failed since that attribute is already created. + KY 2020-02-10 + */ + is_ref_comp = (ref_comp_field_n > 0); + } - is_ref_comp = (ref_comp_field_n > 0); if (!(is_ref || is_ref_vlen || is_ref_array || is_ref_comp)) { if (H5Tclose(mtype_id) < 0) |