NOTE: The netcdf-hdf
mailing list is no longer active. The list archives are made available for historical reasons.
Hi Ed, I've just checked in a fix for this bug. I'm waiting for Raymond to check in some other changes to the datatype conversion code and then I'll follow up with the exception handling changes I sent you earlier. Quincey > This morning I did a hdf5 update, and now the following code does not > work, though it did before. > > The problem seems to be related to closing the file. I call for strong > file closure, but the close fails anyway. The error output is below. > > What am I missing here? > > Thanks! > > Ed > > int > main() > { > hid_t fileid, access_plist, spaceid, typeid; > hid_t datasetid; > hsize_t dims[1]; > struct s1 { > unsigned char c1; > double d; > } data[DIM1_LEN]; > int i; > > for (i=0; i<DIM1_LEN; i++) > { > data[i].c1 = 126; > data[i].d = -9999999; > } > > printf("*** Checking packing of HDF5 compound types..."); > > /* Open file and create group. */ > if ((access_plist = H5Pcreate(H5P_FILE_ACCESS)) < 0) ERR; > if (H5Pset_fclose_degree(access_plist, H5F_CLOSE_STRONG)) ERR; > if ((fileid = H5Fcreate(FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, > access_plist)) < 0) ERR; > > /* Create a simple compound type. */ > if ((typeid = H5Tcreate(H5T_COMPOUND, sizeof(struct s1))) < 0) ERR; > if (H5Tinsert(typeid, "c1", HOFFSET(struct s1, c1), H5T_NATIVE_UCHAR) < 0) > ERR; > if (H5Tinsert(typeid, "d", HOFFSET(struct s1, d), H5T_NATIVE_DOUBLE) < 0) > ERR; > if (H5Tcommit(fileid, COMPOUND_NAME, typeid) < 0) ERR; > > /* Create a space. */ > dims[0] = DIM1_LEN; > if ((spaceid = H5Screate_simple(1, dims, dims)) < 0) ERR; > > /* Create a dataset of this compound type. */ > if ((datasetid = H5Dcreate(fileid, VAR_NAME, typeid, spaceid, > H5P_DEFAULT)) < 0) ERR; > > /* Write some data. */ > if (H5Dwrite(datasetid, typeid, H5S_ALL, H5S_ALL, > H5P_DEFAULT, data) < 0) ERR; > > /* Release all resources. */ > if (H5Fclose(fileid) < 0) ERR; > > > This code results in the following error: > > HDF5-DIAG: Error detected in HDF5 (1.7.51) thread 0: > #000: H5F.c line 2788 in H5Fclose(): decrementing file ID failed > major: Object atom > minor: Unable to close file > #001: H5F.c line 2577 in H5F_close(): can't close file > major: File accessability > minor: Unable to close file > #002: H5F.c line 2686 in H5F_try_close(): can't close object > major: Object atom > minor: Close failed > #003: H5I.c line 1340 in H5I_dec_ref(): can't locate ID > major: Object atom > minor: Unable to find atom information (already closed?) > #004: H5I.c line 1893 in H5I_search(): invalid type > major: Object atom > minor: Unable to find ID group information > > > -- > Ed Hartnett -- ed@xxxxxxxxxxxxxxxx >
netcdf-hdf
archives: