I am trying to use HDF5 to save log data which can be monitored by separate processes as my simulation is running.
The SWMR feature appears to be what I want, however when I try to pass H5F_ACC_RDWR | H5F_ACC_SWMR_WRITE
for the flags to H5Fcreate
it complains about an invalid flag.
I also tried creating the file initially, calling H5Fclose
, then opening the file again with H5Fopen
I think the file is still open somewhere in cache as I get a File accessibility error about unable to unpin superblock:
HDF5-DIAG: Error detected in HDF5 (1.12.2) MPI-process 0:
#000: H5F.c line 620 in H5Fopen(): unable to open file
major: File accessibility
minor: Unable to open file
#001: H5VLcallback.c line 3502 in H5VL_file_open(): failed to iterate over available VOL connector plugins
major: Virtual Object Layer
minor: Iteration failed
#002: H5PLpath.c line 579 in H5PL__path_table_iterate(): can’t iterate over plugins in plugin path ‘(null)’
major: Plugin for dynamically loaded library
minor: Iteration failed
#003: H5PLpath.c line 620 in H5PL__path_table_iterate_process_path(): can’t open directory: /usr/local/hdf5/lib/plugin
major: Plugin for dynamically loaded library
minor: Can’t open directory or file
#004: H5VLcallback.c line 3351 in H5VL__file_open(): open failed
major: Virtual Object Layer
minor: Can’t open object
#005: H5VLnative_file.c line 97 in H5VL__native_file_open(): unable to open file
major: File accessibility
minor: Unable to open file
#006: H5Fint.c line 1990 in H5F_open(): unable to read superblock
major: File accessibility
minor: Read failed
#007: H5Fsuper.c line 1053 in H5F__super_read(): unable to unpin superblock
major: File accessibility
minor: Unable to un-pin cache entry
#008: H5AC.c line 1590 in H5AC_unpin_entry(): can’t unpin entry
major: Object cache
minor: Unable to un-pin cache entry
#009: H5C.c line 3100 in H5C_unpin_entry(): Can’t unpin entry from client
major: Object cache
minor: Unable to un-pin cache entry
#010: H5C.c line 4231 in H5C__unpin_entry_from_client(): entry isn’t pinned
major: Object cache
minor: Unable to un-pin cache entry
#011: H5Fsuper.c line 477 in H5F__super_read(): superblock version for SWMR is less than 3
major: File accessibility
minor: Bad value
Is there some other way to create a file with SWMR access?