I have some HDF5 files that have corrupted datasets (it’s only one out of thousands that’s corrupted in each file). I’m not sure how the corruption happened. Here’s the error I’m getting with h5dump
:
HDF5 "file.h5" {
DATASET "/group/dataset" {
DATATYPE H5T_STD_U64LE
DATASPACE SIMPLE { ( 29691 ) / ( 29691 ) }
HDF5-DIAG: Error detected in HDF5 (1.10.7) thread 1:
#000: ../../../src/H5Dio.c line 198 in H5Dread(): can't read data
major: Dataset
minor: Read failed
#001: ../../../src/H5Dio.c line 599 in H5D__read(): can't read data
major: Dataset
minor: Read failed
#002: ../../../src/H5Dchunk.c line 2589 in H5D__chunk_read(): unable to read raw data chunk
major: Low-level I/O
minor: Read failed
#003: ../../../src/H5Dchunk.c line 3952 in H5D__chunk_lock(): data pipeline read failed
major: Dataset
minor: Filter operation failed
#004: ../../../src/H5Z.c line 1419 in H5Z_pipeline(): filter returned failure during read
major: Data filters
minor: Read failed
#005: ../../../src/H5Zdeflate.c line 121 in H5Z__filter_deflate(): inflate() failed
major: Data filters
minor: Unable to initialize object
DATA {h5dump error: unable to print data
}
}
}
H5tools-DIAG: Error detected in HDF5:tools (1.10.7) thread 1:
#000: ../../../../tools/lib/h5tools_dump.c line 1769 in h5tools_dump_simple_dset(): H5Dread failed
major: Failure in tools library
minor: error in function
Is there any way to salvage some data from this dataset? I understand that I probably can’t get all the values back, but if I could get some, that would already be helpful.
For example, could I get the values from all the chunks that are still good and just skip the chunks that are bad?
Any help would be highly appreciated!