On Nov 7, 2017, at 8:16 PM, Dave Allured - NOAA Affiliate <email@example.com<mailto:firstname.lastname@example.org>> wrote:
Could you please add a simple diagnostic feature to HDF5 1.8.20? Current 1.8 utilities output unhelpful messages when trying to read newer format hdf5 files made with more advanced library versions such as 1.10:
mac56:~/hdf5 20> ~/3rd/hdf5/1.8.20-pre1/bin/h5debug netcdf4.superblock-3.nc<http://netcdf4.superblock-3.nc/>
cannot open file
mac56:~/hdf5 21> ~/3rd/hdf5/1.8.20-pre1/bin/h5dump netcdf4.superblock-3.nc<http://netcdf4.superblock-3.nc/>
h5dump error: unable to open file "netcdf4.superblock-3.nc<http://netcdf4.superblock-3.nc/>"
h5dump (as h5diff, h5ls, h5copy and h5repack) has --enable-error-stack option to print the error stack (agreed... not user friendly :-). We still need to update h5debug tool.
Unfortunately, we will not be able to add the enhancement you are requesting to 1.8.20 since it will require some substantial amount of work and testing. We will try to address the issue in HDF5 1.8 before we drop support for it (planned for mid 2019, exact date will be announced on this list).
The issue is more complex that just a version of superblock. HDF5 1.10 can create a file with the superblock version 2 when using VDS feature. HDF5 1.8 will not be able to read data from the file.
As it was discussed on this FORUM earlier, currently there is no way to specify the argument to H5Pset_libver_bounds<https://support.hdfgroup.org/HDF5/doc/RM/RM_H5P.html#Property-SetLibverBounds> to create the files compliant with the HDF5 1.8 version. This feature is coming in HDF5 1.10.2.
Since netCDF-4 linked with HDF5 1.10 uses this function with the H5F_LIBVER_LATEST arguments, it creates the files that are incompatible with HDF5 1.8. To fix this issue the software has to be updated to use
H5Pset_libver_bounds(fapl, H5F_LIBVER_V18, H5F_LIBVER_V18)
H5Pset_libver_bounds(fapl, H5F_LIBVER_LATEST, H5F_LIBVER_LATEST)
when the new feature is available.
Ideally, The HDF Group should not only enhance HDF5 1.8 with more friendly error diagnostic, but also provide a tool that is independent of the HDF5 library and reports the earliest version of the library needed to read an HDF5 file (by default, the latest version of HDF5 can always read all HDF5 files). This is on our to-do list and we hope to have such tool before we drop support for HDF5 1.8.
However, by your design, the superblock number is always located and validated the same way in past and future versions. Could you please amend error messages to say more informative messages in these cases? Such as this two-line sequence:
h5debug error: unable to open file "netcdf4.superblock-3.nc<http://netcdf4.superblock-3.nc/>"
Superblock version 3 is not supported in this software version
It would be nice if you could squeeze this into the 1.8.20 release. Also please add to the 1.10 branch; it will be helpful in the future. Thank you.
Hdf-forum is for HDF software users discussion.