HDF 4.2r1 Known Problems and Workarounds

HDF Corruption Problem

In the HDF MFHDF (also referred to as SD) library, there is a potential for corruption of some SDSs and/or dimensions, when a dimension has the same name as an SDS. Prior to HDF4.2r1, the corruption could happen to either one- or multi-dimensional datasets. As of HDF4.2r1, only one-dimensional datasets can be affected because a fix was provided which prevents the newly created multi-dimensional datasets from being corrupted.

The SD library uses a concept of a "variable" to store an SDS. This concept was introduced in order to conform to and harmonize with the netCDF data model. A "variable" has a name, spatial information (rank and dimension sizes), and other related information. When an attribute is assigned to or a dimension scale is written to a dimension, it too will be stored in a variable, as an SDS. This type of SDS is referred to as "dimension variable".

The corruption is introduced due to two limitations in the SD library. First, the library makes no distinction between "variables" and "dimension variables". Second, the library searches for a dimension simply by using its name and the search is completed when a variable with the same name as the dimension is found. This simple algorithm sometimes causes the wrong item to be found.

One such scenario, where an SDS is corrupted, can be described as followed:

Another scenario, where a dimension is corrupted:

As described, the affected datasets or dimensions are not recoverable. We are working on a fix so that future created data files will not suffer from these limitations.

HDF does not build on the Macintosh with gcc 4.*

HDF was built and tested with gcc 3.3, and is known not to work with gcc 4.* on the Macintosh. You can set your gcc version with the following command, in order to build HDF:
     sudo gcc_select 3.3

HDF JAVA: Problem with creating an unlimited dimension SDS

Problem building HDF 4.2r1 on Linux 2.6 with gcc 3.4

Problem with hrepack and empty datasets

Limitation of the following Fortran functions:   vsfread, vsfwrit, vntrc


Known Problems at Release Time