Error creating attributes larger than a certain size

Hello all

I'm having problems creating attributes above a certain size with HDF5 1.6.6.

When I try to create a STD_I32LE attribute with a dataspace with one
dimension greater or equals to 16372, I get the following error:

HDF5-DIAG: Error detected in HDF5 library version: 1.6.6 thread 0.
Back trace follows.
  #000: ..\..\src\H5A.c line 187 in H5Acreate(): unable to create attribute
    major(18): Attribute layer
    minor(29): Unable to initialize object
  #001: ..\..\src\H5A.c line 293 in H5A_create(): unable to update
attribute header messages
    major(18): Attribute layer
    minor(29): Unable to initialize object
  #002: ..\..\src\H5O.c line 1275 in H5O_modify(): unable to write
object header message
    major(12): Object header layer
    minor(25): Write failed
  #003: ..\..\src\H5O.c line 1394 in H5O_modify_real(): unable to
create new message
    major(12): Object header layer
    minor(29): Unable to initialize object
  #004: ..\..\src\H5O.c line 1658 in H5O_new_mesg(): object header
message is too large
    major(12): Object header layer
    minor(29): Unable to initialize object

I get the same error if I change the datatype to STD_I8LE and the
dimension to 4*16372. When the dimension is 4*16372-1, everything
works, which seems to indicate that this error is related to the size
in bytes of the attribute I'm trying to create.

Can anyone else reproduce this problem?

Does HDF5 have some limitations on the maximum size of attributes? A
quick browse through the documentation didn't turn up anything
obvious.

Regards.

Albert

···

----------------------------------------------------------------------
This mailing list is for HDF software users discussion.
To subscribe to this list, send a message to hdf-forum-subscribe@hdfgroup.org.
To unsubscribe, send a message to hdf-forum-unsubscribe@hdfgroup.org.

Hi Albert,

···

On Oct 15, 2007, at 7:45 AM, Albert Strasheim wrote:

Hello all

I'm having problems creating attributes above a certain size with HDF5 1.6.6.

When I try to create a STD_I32LE attribute with a dataspace with one
dimension greater or equals to 16372, I get the following error:

HDF5-DIAG: Error detected in HDF5 library version: 1.6.6 thread 0.
Back trace follows.
  #000: ..\..\src\H5A.c line 187 in H5Acreate(): unable to create attribute
    major(18): Attribute layer
    minor(29): Unable to initialize object
  #001: ..\..\src\H5A.c line 293 in H5A_create(): unable to update
attribute header messages
    major(18): Attribute layer
    minor(29): Unable to initialize object
  #002: ..\..\src\H5O.c line 1275 in H5O_modify(): unable to write
object header message
    major(12): Object header layer
    minor(25): Write failed
  #003: ..\..\src\H5O.c line 1394 in H5O_modify_real(): unable to
create new message
    major(12): Object header layer
    minor(29): Unable to initialize object
  #004: ..\..\src\H5O.c line 1658 in H5O_new_mesg(): object header
message is too large
    major(12): Object header layer
    minor(29): Unable to initialize object

I get the same error if I change the datatype to STD_I8LE and the
dimension to 4*16372. When the dimension is 4*16372-1, everything
works, which seems to indicate that this error is related to the size
in bytes of the attribute I'm trying to create.

Can anyone else reproduce this problem?

Does HDF5 have some limitations on the maximum size of attributes? A
quick browse through the documentation didn't turn up anything
obvious.

  I know this is in the documentation somewhere, but the limit on an attribute's size prior to the 1.8.0 HDF5 release is 64K. If you use the "latest format" property with the 1.8.0 release, there's no practical limit on the size of an attribute.

  Quincey