summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorraylu-hdf <60487644+raylu-hdf@users.noreply.github.com>2022-07-12 15:55:34 (GMT)
committerGitHub <noreply@github.com>2022-07-12 15:55:34 (GMT)
commitb2363a8195408331797cd32820fbb0dfc288f646 (patch)
tree6234565e810281f9f3be2f68963db16480d01b1c /src
parentc62b02660933852d0d5528aee02d8509be13423a (diff)
downloadhdf5-b2363a8195408331797cd32820fbb0dfc288f646.zip
hdf5-b2363a8195408331797cd32820fbb0dfc288f646.tar.gz
hdf5-b2363a8195408331797cd32820fbb0dfc288f646.tar.bz2
H5Oflush fails for parallel (#1876)
* H5Oflush causes H5Fclose to trigger an assertion failure in metadata cache for parallel. This commit makes sure H5Oflush fails for parallel until this problem is solved in the future. * Committing clang-format changes * Changed the use of H5F_get_driver_id to H5F_HAS_FEATURE. Co-authored-by: songyulu <songyulu@jelly.ad.hdfgroup.org> Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Diffstat (limited to 'src')
-rw-r--r--src/H5Dint.c5
-rw-r--r--src/H5Oflush.c5
-rw-r--r--src/H5VLnative_datatype.c5
-rw-r--r--src/H5VLnative_group.c5
4 files changed, 20 insertions, 0 deletions
diff --git a/src/H5Dint.c b/src/H5Dint.c
index ee49464..0407a2e 100644
--- a/src/H5Dint.c
+++ b/src/H5Dint.c
@@ -3223,6 +3223,11 @@ H5D__flush(H5D_t *dset, hid_t dset_id)
HDassert(dset);
HDassert(dset->shared);
+ /* Currently, H5Oflush causes H5Fclose to trigger an assertion failure in metadata cache.
+ * Leave this situation for the future solution */
+ if (H5F_HAS_FEATURE(dset->oloc.file, H5FD_FEAT_HAS_MPI))
+ HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "H5Oflush isn't supported for parallel")
+
/* Flush any dataset information still cached in memory */
if (H5D__flush_real(dset) < 0)
HGOTO_ERROR(H5E_DATASET, H5E_CANTFLUSH, FAIL, "unable to flush cached dataset info")
diff --git a/src/H5Oflush.c b/src/H5Oflush.c
index 116a04b..1d31973 100644
--- a/src/H5Oflush.c
+++ b/src/H5Oflush.c
@@ -75,6 +75,11 @@ H5O_flush(H5O_loc_t *oloc, hid_t obj_id)
FUNC_ENTER_NOAPI(FAIL)
+ /* Currently, H5Oflush causes H5Fclose to trigger an assertion failure in metadata cache.
+ * Leave this situation for the future solution */
+ if (H5F_HAS_FEATURE(oloc->file, H5FD_FEAT_HAS_MPI))
+ HGOTO_ERROR(H5E_ARGS, H5E_UNSUPPORTED, FAIL, "H5Oflush isn't supported for parallel")
+
/* Get the object pointer */
if (NULL == (obj_ptr = H5VL_object(obj_id)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid object identifier")
diff --git a/src/H5VLnative_datatype.c b/src/H5VLnative_datatype.c
index bf6f37c..027b4ac 100644
--- a/src/H5VLnative_datatype.c
+++ b/src/H5VLnative_datatype.c
@@ -237,6 +237,11 @@ H5VL__native_datatype_specific(void *obj, H5VL_datatype_specific_args_t *args, h
switch (args->op_type) {
/* H5VL_DATATYPE_FLUSH */
case H5VL_DATATYPE_FLUSH: {
+ /* Currently, H6Oflush causes H5Fclose to trigger an assertion failure in metadata cache.
+ * Leave this situation for the future solution */
+ if (H5F_HAS_FEATURE(dt->oloc.file, H5FD_FEAT_HAS_MPI))
+ HGOTO_ERROR(H5E_DATASET, H5E_UNSUPPORTED, FAIL, "H5Oflush isn't supported for parallel")
+
if (H5O_flush_common(&dt->oloc, args->args.flush.type_id) < 0)
HGOTO_ERROR(H5E_DATATYPE, H5E_CANTFLUSH, FAIL, "unable to flush datatype")
diff --git a/src/H5VLnative_group.c b/src/H5VLnative_group.c
index 54f8337..08ac2aa 100644
--- a/src/H5VLnative_group.c
+++ b/src/H5VLnative_group.c
@@ -280,6 +280,11 @@ H5VL__native_group_specific(void *obj, H5VL_group_specific_args_t *args, hid_t H
/* H5Gflush */
case H5VL_GROUP_FLUSH: {
+ /* Currently, H5Oflush causes H5Fclose to trigger an assertion failure in metadata cache.
+ * Leave this situation for the future solution */
+ if (H5F_HAS_FEATURE(grp->oloc.file, H5FD_FEAT_HAS_MPI))
+ HGOTO_ERROR(H5E_SYM, H5E_UNSUPPORTED, FAIL, "H5Oflush isn't supported for parallel")
+
if (H5O_flush_common(&grp->oloc, args->args.flush.grp_id) < 0)
HGOTO_ERROR(H5E_SYM, H5E_CANTFLUSH, FAIL, "unable to flush group")