summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--release_docs/RELEASE.txt28
1 files changed, 28 insertions, 0 deletions
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 408ef6d..f2d26a3 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -166,6 +166,34 @@ Bug Fixes since HDF5-1.14.3 release
===================================
Library
-------
+ - Memory usage growth issue
+
+ Starting with the HDF5 1.12.1 release, an issue (GitHub issue #1256)
+ was observed where running a simple program that has a loop of opening
+ a file, reading from an object with a variable-length datatype and
+ then closing the file would result in the process fairly quickly
+ running out of memory. Upon further investigation, it was determined
+ that this memory was being kept around in the library's datatype
+ conversion pathway cache that is used to speed up datatype conversions
+ which are repeatedly used within an HDF5 application's lifecycle. For
+ conversions involving variable-length or reference datatypes, each of
+ these cached pathway entries keeps a reference to its associated file
+ for later use. Since the file was being closed and reopened on each
+ loop iteration, and since the library compares for equality between
+ instances of opened files (rather than equality of the actual files)
+ when determining if it can reuse a cached conversion pathway, it was
+ determining that no cached conversion pathways could be reused and was
+ creating a new cache entry on each loop iteration during I/O. This
+ would lead to constant growth of that cache and the memory it consumed,
+ as well as constant growth of the memory consumed by each cached entry
+ for the reference to its associated file.
+
+ To fix this issue, the library now removes any cached datatype
+ conversion path entries for variable-length or reference datatypes
+ associated with a particular file when that file is closed.
+
+ Fixes GitHub #1256
+
- Suppressed floating-point exceptions in H5T init code
The floating-point datatype initialization code in H5Tinit_float.c