summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMuqun Yang <myang6@hdfgroup.org>2020-02-10 21:29:41 (GMT)
committerMuqun Yang <myang6@hdfgroup.org>2020-02-10 21:29:41 (GMT)
commitea93dac697401f72c16964a04ddb0fc3b83674e4 (patch)
tree31a3f038455d3d8c930b4e2c4a30478ca7922203
parent891e45f88e3db445bad666f2660812b50d69ee9d (diff)
parent47fa9d17898fb6f9edec6e9642dc1853bb003417 (diff)
downloadhdf5-ea93dac697401f72c16964a04ddb0fc3b83674e4.zip
hdf5-ea93dac697401f72c16964a04ddb0fc3b83674e4.tar.gz
hdf5-ea93dac697401f72c16964a04ddb0fc3b83674e4.tar.bz2
Merge pull request #2365 in HDFFV/hdf5 from ~MYANG6/hdf5-develop:hdf5_1_12 to hdf5_1_12
* commit '47fa9d17898fb6f9edec6e9642dc1853bb003417': HDFFV-11014, fix the h5repack issue that misses a few attributes during the repacking. The flag that checks the object reference attribute is not updated properly. The fix is trivial. Just need to move the flag update line into the inner loop. Tested at Jelly. Also update the release.txt.
-rw-r--r--release_docs/RELEASE.txt15
-rw-r--r--tools/src/h5repack/h5repack_refs.c9
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)