summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllen Byrne <byrn@hdfgroup.org>2019-08-17 18:25:26 (GMT)
committerAllen Byrne <byrn@hdfgroup.org>2019-08-17 18:25:26 (GMT)
commit228ef0684ea9119b5accc105006d250a1aac6d07 (patch)
tree1af8a6e1809bad9b7a20d0ef3b2b6f232f41c9a9
parent96bf97f534b00232c0ec13282b5b1eac7dc99865 (diff)
parentdcf084aff42d3abafaa82b356493a2d1585afb85 (diff)
downloadhdf5-228ef0684ea9119b5accc105006d250a1aac6d07.zip
hdf5-228ef0684ea9119b5accc105006d250a1aac6d07.tar.gz
hdf5-228ef0684ea9119b5accc105006d250a1aac6d07.tar.bz2
Merging in latest from upstream (HDFFV/hdf5:refs/heads/develop)
* commit 'dcf084aff42d3abafaa82b356493a2d1585afb85': Changes based on PR feedback. Fix for HDFFV-10813 H5Fset_metadata_read_retry_info() test fails on jelly with PGI/19.
-rw-r--r--release_docs/RELEASE.txt17
-rw-r--r--src/H5Fint.c6
2 files changed, 21 insertions, 2 deletions
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 094a81f..b940095 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -326,6 +326,23 @@ Bug Fixes since HDF5-1.10.3 release
Library
-------
+ - Fixed the test failure from test_metadata_read_retry_info() in
+ test/swmr.c
+
+ The test failure is due to the incorrect number of bins returned for
+ retry info (info.nbins). The # of bins expected for 101 read attempts
+ is 3 instead of 2. The routine H5F_set_retries() in src/H5Fint.c
+ calculates the # of bins by first obtaining the log10 value for
+ (read attempts - 1). For PGI/19, the log10 value for 100 read attempts
+ is 1.9999999999999998 instead of 2.00000. When casting the log10 value
+ to unsigned later on, the decimal part is chopped off causing the test
+ failure.
+
+ This was fixed by obtaining the rounded integer value (HDceil) for the
+ log10 value of read attempts first before casting the result to unsigned.
+
+ (VC - 2019/8/14, HDFFV-10813)
+
- Fixed an issue where creating a file with non-default file space info
together with library high bound setting to H5F_LIBVER_V18.
diff --git a/src/H5Fint.c b/src/H5Fint.c
index 8d08965..29f017e 100644
--- a/src/H5Fint.c
+++ b/src/H5Fint.c
@@ -2992,8 +2992,10 @@ H5F_set_retries(H5F_t *f)
/* Initialize the # of bins for retries */
f->shared->retries_nbins = 0;
if(f->shared->read_attempts > 1) {
- tmp = HDlog10((double)(f->shared->read_attempts - 1));
- f->shared->retries_nbins = (unsigned)tmp + 1;
+ /* Use HDceil to ensure that the log10 value is rounded up to the
+ nearest integer before casting to unsigned */
+ tmp = HDceil(HDlog10((double)f->shared->read_attempts));
+ f->shared->retries_nbins = (unsigned)tmp;
}
FUNC_LEAVE_NOAPI(SUCCEED)