After updating to HDF5 1.14.6 I get read errors for some chunks in long existing HDF5 files. I did some debugging and found out that the root cause was introduced in 1.14.5 here:
|
if (minbits >= p.size * 8) |
|
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, 0, "minimum number of bits exceeds size of type"); |
I think it has to be if (minbits > p.size * 8) instead of >=. There is an assert <= some lines below which contradicts the new check somehow (line 1229) and even a special handling for minbits equal to full precision which is now completely useless (line 1240).
After changing it locally to > and rebuilding HDF5 I could read all chunks without problems.
An example dataset that has the problem with 1.14.6 can be found here: http://fly.mpi-cbg.de/~pietzsch/bdv-examples/drosophila.h5
After updating to HDF5 1.14.6 I get read errors for some chunks in long existing HDF5 files. I did some debugging and found out that the root cause was introduced in 1.14.5 here:
hdf5/src/H5Zscaleoffset.c
Lines 1213 to 1214 in 0fe0459
I think it has to be
if (minbits > p.size * 8)instead of>=. There is an assert<=some lines below which contradicts the new check somehow (line 1229) and even a special handling for minbits equal to full precision which is now completely useless (line 1240).After changing it locally to
>and rebuilding HDF5 I could read all chunks without problems.An example dataset that has the problem with 1.14.6 can be found here: http://fly.mpi-cbg.de/~pietzsch/bdv-examples/drosophila.h5