Hi Stuart,

Il giorno 21/ago/2011, alle ore 02.38, Stuart Mentzer ha scritto:


Some kinds of HDF5-DIAG errors don't generate any exceptions making it difficult to do proper error handling. For example:

HDF5-DIAG: Error detected in HDF5 (1.8.5) thread 0:
  #000: ..\..\..\src\H5Dio.c line 174 in H5Dread(): can't read data
    major: Dataset
    minor: Read failed

doesn't raise an HDF5ExtError or any other exception. Is this something that can be fixed in PyTables?

I just performed a quick check on all calls to H5Dread and it seems to me that in all cases there is a check for failures with relative HDF5ExtError exception raising.

Can you please be a little more specific on how to reproduce the issue?
I encourage you to open an issue on https://github.com/PyTables/PyTables

Also, can the HDF5-DIAG messages be suppressed? I know that the HDF5 API has a dontPrint call but I don't see a PyTables interface to that. If we can't detect these exceptions I at least want to mask them from end users.


Yes "dontPrint" is part of the C++ API, the C one has "H5Eset_auto" to should perform a similar task.
Well I suppose we could provide a function to suppress HDF5 messages but IMHO it is more important to fix the issue regarding exception.


Antonio Valentino