summaryrefslogtreecommitdiffstats
path: root/release_docs/RELEASE.txt
diff options
context:
space:
mode:
Diffstat (limited to 'release_docs/RELEASE.txt')
-rwxr-xr-xrelease_docs/RELEASE.txt452
1 files changed, 76 insertions, 376 deletions
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 8f3c434..7def78e 100755
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -1,4 +1,4 @@
-HDF5 version 1.10.3 released on 2018-08-21
+HDF5 version 1.10.4 released on 2018-10-05
================================================================================
@@ -32,8 +32,7 @@ If you have any questions or comments, please send them to the HDF Help Desk:
CONTENTS
-- New Features
-- Bug Fixes since HDF5-1.10.2
+- Bug Fixes since HDF5-1.10.3
- Supported Platforms
- Tested Configuration Features Summary
- More Tested Platforms
@@ -44,128 +43,99 @@ CONTENTS
New Features
============
- Library
- -------
- - Moved the H5DOread/write_chunk() API calls to H5Dread/write_chunk()
-
- The functionality of the direct chunk I/O calls in the high-level
- library has been moved to the H5D package in the main library. This
- will allow using those functions without building the high-level
- library. The parameters and functionality of the H5D calls are
- identical to the H5DO calls.
-
- The original H5DO high-level API calls have been retained, though
- they are now just wrappers for the H5D calls. They are marked as
- deprecated and are only available when the library is built with
- deprecated functions. New code should use the H5D calls for this
- reason.
-
- As a part of this work, the following symbols from H5Dpublic.h are no
- longer used:
-
- H5D_XFER_DIRECT_CHUNK_WRITE_FLAG_NAME
- H5D_XFER_DIRECT_CHUNK_WRITE_FILTERS_NAME
- H5D_XFER_DIRECT_CHUNK_WRITE_OFFSET_NAME
- H5D_XFER_DIRECT_CHUNK_WRITE_DATASIZE_NAME
- H5D_XFER_DIRECT_CHUNK_READ_FLAG_NAME
- H5D_XFER_DIRECT_CHUNK_READ_OFFSET_NAME
- H5D_XFER_DIRECT_CHUNK_READ_FILTERS_NAME
-
- And properties with these names are no longer stored in the dataset
- transfer property lists. The symbols are still defined in H5Dpublic.h,
- but only when the library is built with deprecated symbols.
-
- (DER - 2018/05/04)
-
Configuration:
-------------
- - Add missing USE_110_API_DEFAULT option.
+ - Add toolchain and cross-compile support
- Option USE_110_API_DEFAULT sets the default version of
- versioned APIs. The bin/makevers perl script did not set
- the maxidx variable correctly when the 1.10 branch was
- created. This caused the versioning process to always use
- the latest version of any API.
+ Added info on using a toolchain file to INSTALL_CMAKE.txt. A
+ toolchain file is also used in cross-compiling, which requires
+ CMAKE_CROSSCOMPILING_EMULATOR to be set. To help with cross-compiling
+ the fortran configure process, the HDF5UseFortran.cmake file macros
+ were improved. Fixed a Fortran configure file issue that incorrectly
+ used #cmakedefine instead of #define.
- (ADB - 2018/08/17, HDFFV-10552)
+ (ADB - 2018/10/04, HDFFV-10594)
- - Added configuration checks for the following MPI functions:
+ - Add warning flags for Intel compilers
- MPI_Mprobe - Used for the Parallel Compression feature
- MPI_Imrecv - Used for the Parallel Compression feature
+ Identified Intel compiler specific warnings flags that should be used
+ instead of GNU flags.
- MPI_Get_elements_x - Used for the "big Parallel I/O" feature
- MPI_Type_size_x - Used for the "big Parallel I/O" feature
+ (ADB - 2018/10/04, TRILABS-21)
- (JTH - 2018/08/02, HDFFV-10512)
+ - Add default rpath to targets
- - Added section to the libhdf5.settings file to indicate
- the status of the Parallel Compression and "big Parallel I/O"
- features.
+ Default rpaths should be set in shared executables and
+ libraries to allow the use of loading dependent libraries
+ without requiring LD_LIBRARY_PATH to be set. The default
+ path should be relative using @rpath on osx and $ORIGIN
+ on linux. Windows is not affected.
- (JTH - 2018/08/02, HDFFV-10512)
+ (ADB - 2018/09/26, HDFFV-10594)
- - Add option to execute swmr shell scripts from CMake.
-
- Option TEST_SHELL_SCRIPTS redirects processing into a
- separate ShellTests.cmake file for UNIX types. The tests
- execute the shell scripts if a SH program is found.
+ Library:
+ --------
+ - Allow pre-generated H5Tinit.c and H5make_libsettings.c to be used.
- (ADB - 2018/07/16)
+ Rather than always running H5detect and generating H5Tinit.c and
+ H5make_libsettings.c, supply a location for those files.
+ (ADB - 2018/09/18, HDFFV-10332)
- C++ Library:
- ------------
- - New wrappers
- Added the following items:
+Bug Fixes since HDF5-1.10.3 release
+==================================
- + Class DSetAccPropList for the dataset access property list.
+ Library
+ -------
+ - Allow H5detect and H5make_libsettings to take a file as an argument.
- + Wrapper for H5Dget_access_plist to class DataSet
- // Gets the access property list of this dataset.
- DSetAccPropList getAccessPlist() const;
+ Rather than only writing to stdout, add a command argument to name
+ the file that H5detect and H5make_libsettings will use for output.
+ Without an argument, stdout is still used, so backwards compatibility
+ is maintained.
- + Wrappers for H5Pset_chunk_cache and H5Pget_chunk_cache to class DSetAccPropList
- // Sets the raw data chunk cache parameters.
- void setChunkCache(size_t rdcc_nslots, size_t rdcc_nbytes, double rdcc_w0)
+ (ADB - 2018/09/05, HDFFV-9059)
- // Retrieves the raw data chunk cache parameters.
- void getChunkCache(size_t &rdcc_nslots, size_t &rdcc_nbytes, double &rdcc_w0)
+ - A bug was discovered in the parallel library where an application
+ would hang if a collective read/write of a chunked dataset occurred
+ when collective metadata reads were enabled and some of the ranks
+ had no selection in the dataset's dataspace. The ranks which had no
+ selection in the dataset's dataspace called H5D__chunk_addrmap() to
+ retrieve the lowest chunk address in the dataset. This is because we
+ require reads/writes to be performed in strictly non-decreasing order
+ of chunk address in the file.
- + New operator!= to class DataType (HDFFV-10472)
- // Determines whether two datatypes are not the same.
- bool operator!=(const DataType& compared_type)
+ When the chunk index used was a version 1 or 2 B-tree, these
+ non-participating ranks would issue a collective MPI_Bcast() call
+ that the participating ranks would not issue, causing the hang. Since
+ the non-participating ranks are not actually reading/writing anything,
+ the H5D__chunk_addrmap() call can be safely removed and the address used
+ for the read/write can be set to an arbitrary number (0 was chosen).
- + Wrappers for H5Oget_info2, H5Oget_info_by_name2, and H5Oget_info_by_idx2
- (HDFFV-10458)
+ (JTH - 2018/08/25, HDFFV-10501)
- // Retrieves information about an HDF5 object.
- void getObjinfo(H5O_info_t& objinfo, unsigned fields = H5O_INFO_BASIC) const;
+ Java Library:
+ ----------------
+ - JNI native library dependencies
+
+ The build for the hdf5_java native library used the wrong
+ hdf5 target library for CMake builds. Correcting the hdf5_java
+ library to build with the shared hdf5 library required testing
+ paths to change also.
- // Retrieves information about an HDF5 object, given its name.
- void getObjinfo(const char* name, H5O_info_t& objinfo,
- unsigned fields = H5O_INFO_BASIC,
- const LinkAccPropList& lapl = LinkAccPropList::DEFAULT) const;
- void getObjinfo(const H5std_string& name, H5O_info_t& objinfo,
- unsigned fields = H5O_INFO_BASIC,
- const LinkAccPropList& lapl = LinkAccPropList::DEFAULT) const;
+ (ADB - 2018/08/31, HDFFV-10568)
- // Retrieves information about an HDF5 object, given its index.
- void getObjinfo(const char* grp_name, H5_index_t idx_type,
- H5_iter_order_t order, hsize_t idx, H5O_info_t& objinfo,
- unsigned fields = H5O_INFO_BASIC,
- const LinkAccPropList& lapl = LinkAccPropList::DEFAULT) const;
- void getObjinfo(const H5std_string& grp_name, H5_index_t idx_type,
- H5_iter_order_t order, hsize_t idx, H5O_info_t& objinfo,
- unsigned fields = H5O_INFO_BASIC,
- const LinkAccPropList& lapl = LinkAccPropList::DEFAULT) const;
+ - Java iterator callbacks
- (BMR - 2018/07/22, HDFFV-10150, HDFFV-10458, HDFFV-1047)
+ Change global callback object to a small stack structure in order
+ to fix a runtime crash. This crash was discovered when iterating
+ through a file with nested group members. The global variable
+ visit_callback is overwritten when recursion starts. When recursion
+ completes, visit_callback will be pointing to the wrong callback method.
+ (ADB - 2018/08/15, HDFFV-10536)
- Java Library:
- ----------------
- Java HDFLibraryException class
Change parent class from Exception to RuntimeException.
@@ -181,277 +151,6 @@ New Features
(ADB - 2018/06/02, HDFFV-10519)
-Bug Fixes since HDF5-1.10.2 release
-==================================
-
- Library
- -------
- - Performance issue with H5Oget_info
-
- H5Oget_info family of routines retrieves information for an object such
- as object type, access time, number of attributes, and storage space etc.
- Retrieving all such information regardless is an overkill and causes
- performance issue when doing so for many objects.
-
- Add an additional parameter "fields" to the the H5Oget_info family of routines
- indicating the type of information to be retrieved. The same is done to
- the H5Ovisit family of routines which recursively visits an object
- returning object information in a callback function. Both sets of routines
- are versioned and the corresponding compatibility macros are added.
-
- The version 2 names of the two sets of routines are:
- (1) H5Oget_info2, H5Oget_info_by_idx2, H5Oget_info_by_name2
- (2) H5Ovisit2, H5Ovisit_by_name2
-
- (VC - 2018/08/15, HDFFV-10180)
-
- - Test failure due to metadata size in test/vds.c
-
- The size of metadata from test_api_get_ex_dcpl() in test/vds.c is not as expected
- because the latest format should be used when encoding the layout for VDS.
-
- Set the latest format in a temporary fapl and pass the setting to the routines that
- encode the dataset selection for VDS.
-
- (VC - 2018/08/14 HDFFV-10469)
-
- - Java HDF5LibraryException class
-
- The error minor and major values would be lost after the
- constructor executed.
-
- Created two local class variables to hold the values obtained during
- execution of the constructor. Refactored the class functions to retrieve
- the class values rather then calling the native functions.
- The native functions were renamed and called only during execution
- of the constructor.
- Added error checking to calling class constructors in JNI classes.
-
- (ADB - 2018/08/06, HDFFV-10544)
-
- - Added checks of the defined MPI_VERSION to guard against usage of
- MPI-3 functions in the Parallel Compression and "big Parallel I/O"
- features when HDF5 is built with MPI-2. Previously, the configure
- step would pass but the build itself would fail when it could not
- locate the MPI-3 functions used.
-
- As a result of these new checks, HDF5 can again be built with MPI-2,
- but the Parallel Compression feature will be disabled as it relies
- on the MPI-3 functions used.
-
- (JTH - 2018/08/02, HDFFV-10512)
-
- - User's patches: CVEs
-
- The following patches have been applied:
-
- CVE-2018-11202 - NULL pointer dereference was discovered in
- H5S_hyper_make_spans in H5Shyper.c (HDFFV-10476)
- https://security-tracker.debian.org/tracker/CVE-2018-11202
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2018-11202
-
- CVE-2018-11203 - A division by zero was discovered in
- H5D__btree_decode_key in H5Dbtree.c (HDFFV-10477)
- https://security-tracker.debian.org/tracker/CVE-2018-11203
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2018-11203
-
- CVE-2018-11204 - A NULL pointer dereference was discovered in
- H5O__chunk_deserialize in H5Ocache.c (HDFFV-10478)
- https://security-tracker.debian.org/tracker/CVE-2018-11204
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2018-11204
-
- CVE-2018-11206 - An out of bound read was discovered in
- H5O_fill_new_decode and H5O_fill_old_decode in H5Ofill.c
- (HDFFV-10480)
- https://security-tracker.debian.org/tracker/CVE-2018-11206
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2018-11206
-
- CVE-2018-11207 - A division by zero was discovered in
- H5D__chunk_init in H5Dchunk.c (HDFFV-10481)
- https://security-tracker.debian.org/tracker/CVE-2018-11207
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=3DCVE-2018-11207
-
- (BMR - 2018/7/22, PR#s: 1134 and 1139,
- HDFFV-10476, HDFFV-10477, HDFFV-10478, HDFFV-10480, HDFFV-10481)
-
- - H5Adelete
-
- H5Adelete failed when deleting the last "large" attribute that
- is stored densely via fractal heap/v2 b-tree.
-
- After removing the attribute, update the ainfo message. If the
- number of attributes goes to zero, remove the message.
-
- (VC - 2018/07/20, HDFFV-9277)
-
- - A bug was discovered in the parallel library which caused partial
- parallel reads of filtered datasets to return incorrect data. The
- library used the incorrect dataspace for each chunk read, causing
- the selection used in each chunk to be wrong.
-
- The bug was not caught during testing because all of the current
- tests which do parallel reads of filtered data read all of the data
- using an H5S_ALL selection. Several tests were added which exercise
- partial parallel reads.
-
- (JTH - 2018/07/16, HDFFV-10467)
-
- - A bug was discovered in the parallel library which caused parallel
- writes of filtered datasets to trigger an assertion failure in the
- file free space manager.
-
- This occurred when the filter used caused chunks to repeatedly shrink
- and grow over the course of several dataset writes. The previous chunk
- information, such as the size of the chunk and the offset in the file,
- was being cached and not updated after each write, causing the next write
- to the chunk to retrieve the incorrect cached information and run into
- issues when reallocating space in the file for the chunk.
-
- (JTH - 2018/07/16, HDFFV-10509)
-
- - A bug was discovered in the parallel library which caused the
- H5D__mpio_array_gatherv() function to allocate too much memory.
-
- When the function is called with the 'allgather' parameter set
- to a non-true value, the function will receive data from all MPI
- ranks and gather it to the single rank specied by the 'root'
- parameter. However, the bug in the function caused memory for
- the received data to be allocated on all MPI ranks, not just the
- singular rank specified as the receiver. In some circumstances,
- this would cause an application to fail due to the large amounts
- of memory being allocated.
-
- (JTH - 2018/07/16, HDFFV-10467)
-
- - Error checks in h5stat and when decoding messages
-
- h5stat exited with seg fault/core dumped when
- errors are encountered in the internal library.
-
- Add error checks and --enable-error-stack option to h5stat.
- Add range checks when decoding messages: old fill value, old
- layout and refcount.
-
- (VC - 2018/07/11, HDFFV-10333)
-
- - If an HDF5 file contains a malformed compound datatype with a
- suitably large offset, the type conversion code can run off
- the end of the type conversion buffer, causing a segmentation
- fault.
-
- This issue was reported to The HDF Group as issue #CVE-2017-17507.
-
- NOTE: The HDF5 C library cannot produce such a file. This condition
- should only occur in a corrupt (or deliberately altered) file
- or a file created by third-party software.
-
- THE HDF GROUP WILL NOT FIX THIS BUG AT THIS TIME
-
- Fixing this problem would involve updating the publicly visible
- H5T_conv_t function pointer typedef and versioning the API calls
- which use it. We normally only modify the public API during
- major releases, so this bug will not be fixed at this time.
-
- (DER - 2018/02/26, HDFFV-10356)
-
-
- Configuration
- -------------
- - Applied patches to address Cywin build issues
-
- There were three issues for Cygwin builds:
- - Shared libs were not built.
- - The -std=c99 flag caused a SIG_SETMASK undeclared error.
- - Undefined errors when buildbing test shared libraries.
-
- Patches to address these issues were received and incorporated in this version.
-
- (LRK - 2018/07/18, HDFFV-10475)
-
- - The --enable-debug/production configure flags are listed as 'deprecated'
- when they should really be listed as 'removed'.
-
- In the autotools overhaul several years ago, we removed these flags and
- implemented a new --enable-build-mode= flag. This was done because we
- changed the semantics of the modes and didn't want users to silently
- be exposed to them. The newer system is also more flexible and us to
- add other modes (like 'clean').
-
- The --enable-debug/production flags are now listed as removed.
-
- (DER - 2018/05/31, HDFFV-10505)
-
- - Moved the location of gcc attribute.
-
- The gcc attribute(no_sanitize), named as the macro HDF_NO_UBSAN,
- was located after the function name. Builds with GCC 7 did not
- indicate any problem, but GCC 8 issued errors. Moved the
- attribute before the function name, as required.
-
- (ADB - 2018/05/22, HDFFV-10473)
-
- - Reworked java test suite into individual JUnit tests.
-
- Testing the whole suite of java unit tests in a single JUnit run
- made it difficult to determine actual failures when tests would fail.
- Running each file set of tests individually, allows individual failures
- to be diagnosed easier. A side benefit is that tests for optional components
- of the library can be disabled if not configured.
-
- (ADB - 2018/05/16, HDFFV-9739)
-
- - Converted CMake global commands ADD_DEFINITIONS and INCLUDE_DIRECTORIES
- to use target_* type commands. This change modernizes the CMake usage
- in the HDF5 library.
-
- In addition, there is the intention to convert to generator expressions,
- where possible. The exception is Fortran FLAGS on Windows Visual Studio.
- The HDF macros TARGET_C_PROPERTIES and TARGET_FORTRAN_PROPERTIES have
- been removed with this change in usage.
-
- The additional language (C++ and Fortran) checks have also been localized
- to only be checked when that language is enabled.
-
- (ADB - 2018/05/08)
-
-
- Performance
- -------------
- - Revamped internal use of DXPLs, improving performance
-
- (QAK - 2018/05/20)
-
-
- Fortran
- --------
- - Fixed issue with h5fget_obj_count_f and using a file id of H5F_OBJ_ALL_F not
- returning the correct count.
-
- (MSB - 2018/5/15, HDFFV-10405)
-
-
- C++ APIs
- --------
- - Adding default arguments to existing functions
-
- Added the following items:
- + Two more property list arguments are added to H5Location::createDataSet:
- const DSetAccPropList& dapl = DSetAccPropList::DEFAULT
- const LinkCreatPropList& lcpl = LinkCreatPropList::DEFAULT
-
- + One more property list argument is added to H5Location::openDataSet:
- const DSetAccPropList& dapl = DSetAccPropList::DEFAULT
-
- (BMR - 2018/07/21, PR# 1146)
-
- - Improvement C++ documentation
-
- Replaced the table in main page of the C++ documentation from mht to htm format
- for portability.
-
- (BMR - 2018/07/17, PR# 1141)
-
-
Supported Platforms
===================
@@ -497,7 +196,8 @@ Supported Platforms
Mac OS Sierra 10.12.6 Apple LLVM version 8.1.0 (clang/clang++-802.0.42)
64-bit gfortran GNU Fortran (GCC) 7.1.0
- (swallow/kite) Intel icc/icpc/ifort version 17.0.2
+ (kite) Intel icc/icpc/ifort version 17.0.2
+
Tested Configuration Features Summary
=====================================
@@ -526,9 +226,9 @@ Mac OS X Mavericks 10.9.5 64-bit n y/y n y y y
Mac OS X Yosemite 10.10.5 64-bit n y/y n y y y
Mac OS X El Capitan 10.11.6 64-bit n y/y n y y y
Mac OS Sierra 10.12.6 64-bit n y/y n y y y
-CentOS 7.2 Linux 2.6.32 x86_64 PGI n y/y n y y y
-CentOS 7.2 Linux 2.6.32 x86_64 GNU y y/y y y y y
-CentOS 7.2 Linux 2.6.32 x86_64 Intel n y/y n y y y
+CentOS 7.2 Linux 3.10.0 x86_64 PGI n y/y n y y y
+CentOS 7.2 Linux 3.10.0 x86_64 GNU y y/y y y y y
+CentOS 7.2 Linux 3.10.0 x86_64 Intel n y/y n y y y
Linux 2.6.32-573.18.1.el6.ppc64 n y/y n y y y
@@ -546,9 +246,9 @@ Mac OS X Mavericks 10.9.5 64-bit y n y y
Mac OS X Yosemite 10.10.5 64-bit y n y y
Mac OS X El Capitan 10.11.6 64-bit y n y y
Mac OS Sierra 10.12.6 64-bit y n y y
-CentOS 7.2 Linux 2.6.32 x86_64 PGI y y y n
-CentOS 7.2 Linux 2.6.32 x86_64 GNU y y y y
-CentOS 7.2 Linux 2.6.32 x86_64 Intel y y y n
+CentOS 7.2 Linux 3.10.0 x86_64 PGI y y y n
+CentOS 7.2 Linux 3.10.0 x86_64 GNU y y y y
+CentOS 7.2 Linux 3.10.0 x86_64 Intel y y y n
Linux 2.6.32-573.18.1.el6.ppc64 y y y n
Compiler versions for each platform are listed in the preceding