diff options
author | raylu-hdf <60487644+raylu-hdf@users.noreply.github.com> | 2022-07-12 15:55:34 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-12 15:55:34 (GMT) |
commit | b2363a8195408331797cd32820fbb0dfc288f646 (patch) | |
tree | 6234565e810281f9f3be2f68963db16480d01b1c /src | |
parent | c62b02660933852d0d5528aee02d8509be13423a (diff) | |
download | hdf5-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.c | 5 | ||||
-rw-r--r-- | src/H5Oflush.c | 5 | ||||
-rw-r--r-- | src/H5VLnative_datatype.c | 5 | ||||
-rw-r--r-- | src/H5VLnative_group.c | 5 |
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") |