h5repack error with compression filter id = 32016

Hello everyone,

I am trying to use h5repack to apply compression to an existing uncompressed dataset. I am attempting to use custom filter id = 32016 (B3D https://github.com/openmicroscopy/B3D). I have installed B3D and confirmed that it functions properly and is recognized by my HDF5 installation (the sample python script included with B3D runs properly).

However when I try to use h5repack with the following command, I get the following error:

h5repack -f Data:UD=32016,5,[0,1,1000,0,0] B3D_demo_drosophila_uncompressed.h5 test.h5

Note that these 5 inputs are identical to what is executed in the python sample script with no errors.

Thanks!
Adam

Using CUDA device [0]: TITAN Xp
HDF5-DIAG: Error detected in HDF5 (1.8.20) thread 0:
#000: C:\Users\buildbot\Buildbot\hdf518-StdRelease-code-vs14\build\hdfsrc\src
H5T.c line 2090 in H5Tget_size(): not a datatype
major: Invalid arguments to routine
minor: Inappropriate type
HDF5-DIAG: Error detected in HDF5 (1.8.20) thread 0:
#000: C:\Users\buildbot\Buildbot\hdf518-StdRelease-code-vs14\build\hdfsrc\src
H5Torder.c line 127 in H5Tget_order(): not a datatype
major: Datatype
minor: Inappropriate type
HDF5-DIAG: Error detected in HDF5 (1.8.20) thread 0:
#000: C:\Users\buildbot\Buildbot\hdf518-StdRelease-code-vs14\build\hdfsrc\src
H5T.c line 1835 in H5Tget_class(): not a datatype
major: Invalid arguments to routine
minor: Inappropriate type
HDF5-DIAG: Error detected in HDF5 (1.8.20) thread 0:
#000: C:\Users\buildbot\Buildbot\hdf518-StdRelease-code-vs14\build\hdfsrc\src
H5Pocpl.c line 1090 in H5Pget_filter_by_id2(): can’t find object for ID
major: Object atom
minor: Unable to find atom information (already closed?)
#001: C:\Users\buildbot\Buildbot\hdf518-StdRelease-code-vs14\build\hdfsrc\src
H5Pint.c line 3379 in H5P_object_verify(): property list is not a member of the
class
major: Property lists
minor: Unable to register new atom
#002: C:\Users\buildbot\Buildbot\hdf518-StdRelease-code-vs14\build\hdfsrc\src
H5Pint.c line 3329 in H5P_isa_class(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type

The ‘[’ and ‘]’ should not be used in the list for UD - UD=32016,5,[0,1,1000,0,0]

Allen

I know there have been bugs in the command line parsing of filter parameters in the h5repack tool (I was also bitten when trying to use the Blosc filter).

Not sure in which version the fix for that bug finally landed, you’ll have to check Git history. Also not sure if that’s the issue you’re running into, but it could be.

Elvis

Thanks both of you. I will check the Git history as you suggested Elvis.

byrn, it does not seem to be the []'s. If I execute the command without them I still get the same error.

C:\Program Files\HDF_Group\HDF5\1.8.20\bin>h5repack -f Data:UD=32016,5,0,1,1000,
0,0 B3D_demo_drosophila_uncompressed.h5 test.h5

Using CUDA device [0]: TITAN Xp
HDF5-DIAG: Error detected in HDF5 (1.8.20) thread 0:
#000: C:\Users\buildbot\Buildbot\hdf518-StdRelease-code-vs14\build\hdfsrc\src
H5T.c line 2090 in H5Tget_size(): not a datatype
major: Invalid arguments to routine
minor: Inappropriate type
HDF5-DIAG: Error detected in HDF5 (1.8.20) thread 0:
#000: C:\Users\buildbot\Buildbot\hdf518-StdRelease-code-vs14\build\hdfsrc\src
H5Torder.c line 127 in H5Tget_order(): not a datatype
major: Datatype
minor: Inappropriate type
HDF5-DIAG: Error detected in HDF5 (1.8.20) thread 0:
#000: C:\Users\buildbot\Buildbot\hdf518-StdRelease-code-vs14\build\hdfsrc\src
H5T.c line 1835 in H5Tget_class(): not a datatype
major: Invalid arguments to routine
minor: Inappropriate type
HDF5-DIAG: Error detected in HDF5 (1.8.20) thread 0:
#000: C:\Users\buildbot\Buildbot\hdf518-StdRelease-code-vs14\build\hdfsrc\src
H5Pocpl.c line 1090 in H5Pget_filter_by_id2(): can’t find object for ID
major: Object atom
minor: Unable to find atom information (already closed?)
#001: C:\Users\buildbot\Buildbot\hdf518-StdRelease-code-vs14\build\hdfsrc\src
H5Pint.c line 3379 in H5P_object_verify(): property list is not a member of the
class
major: Property lists
minor: Unable to register new atom
#002: C:\Users\buildbot\Buildbot\hdf518-StdRelease-code-vs14\build\hdfsrc\src
H5Pint.c line 3329 in H5P_isa_class(): not a property list
major: Invalid arguments to routine
minor: Inappropriate type

I think the parsing error was fixed in version 1.8.18. In this case the filter plugin calls back to the hdf5 library, so the dynamic library stack should be used. Using h5repack-shared instead of h5repack worked for me with the filter:

$ h5repack-shared.exe -v -f UD=32016,5,0,1,1000,0,0 B3D_demo_drosophila_uncompressed.h5 test.h5

Using CUDA device [0]: GeForce GTX 1060

No all objects to modify layout

All objects to apply filter are…

User Defined 32016

Making new file …