Closed Tehforsch closed 9 months ago
It seems one can not call H5Pset_evict_on_close
even when the argument is false. It is set from the plist, which returns Some(false)
. I think we need to add a check if the plist has a different eviction policy from the one copied from and only change iff different. I will make a PR this evening for this
I was experimenting with parallel hdf5 by using the mpio feature gate. Now I wasn't exactly sure about how to do this but came up with the following program:
If I compile this using hdf5-openmpi and run it (with the current master branch on commit
26046fb
), I getH5Pset_evict_on_close(): evict on close is currently not supported in parallel HDF5
during the call toFileBuilder::create
.I initially thought I would just call
FileAccess::build().evict_on_close(false) ...
for the file access list, but this doesn't work because theFileAccessBuilder
internally storesSome(false)
instead ofNone
, andH5Pset_evict_on_close
is called either way inpopulate_plist
due to the following code:The
FileAccessBuilder
is initially created withevict_on_close: None
but duringFileAccessBuilder::from_plist
,evict_on_close
is set toSome(...)
:I didn't see any way to internally set
evict_on_close
to None before file creation, so that I always end up with this panic.Now I managed to get this program running by using a local version of hdf5 in which I commented out the line above. Is there any way that this could be fixed officially?