diff options
-rw-r--r-- | release_docs/RELEASE.txt | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt index 031e919..19c309b 100644 --- a/release_docs/RELEASE.txt +++ b/release_docs/RELEASE.txt @@ -476,6 +476,34 @@ Bug Fixes since HDF5-1.14.0 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 |