diff options
author | jhendersonHDF <jhenderson@hdfgroup.org> | 2022-01-22 14:40:33 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-22 14:40:33 (GMT) |
commit | 99d3962a831167298ebc087f0b8e8b6209034d95 (patch) | |
tree | 5c879275551180b76d0b14be52cdbf0a1b98ad8c /src/H5AC.c | |
parent | d45124d7085de2771c0157f5d48d71b21a10de1f (diff) | |
download | hdf5-99d3962a831167298ebc087f0b8e8b6209034d95.zip hdf5-99d3962a831167298ebc087f0b8e8b6209034d95.tar.gz hdf5-99d3962a831167298ebc087f0b8e8b6209034d95.tar.bz2 |
Parallel rank0 deadlock fixes (#1183)
* Fix several places where rank 0 can skip past collective MPI operations on failure
* Committing clang-format changes
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Diffstat (limited to 'src/H5AC.c')
-rw-r--r-- | src/H5AC.c | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -1636,9 +1636,14 @@ H5AC_unprotect(H5F_t *f, const H5AC_class_t *type, haddr_t addr, void *thing, un if (H5AC__log_dirtied_entry((H5AC_info_t *)thing) < 0) HGOTO_ERROR(H5E_CACHE, H5E_CANTUNPROTECT, FAIL, "can't log dirtied entry") - if (deleted && aux_ptr->mpi_rank == 0) - if (H5AC__log_deleted_entry((H5AC_info_t *)thing) < 0) - HGOTO_ERROR(H5E_CACHE, H5E_CANTUNPROTECT, FAIL, "H5AC__log_deleted_entry() failed") + if (deleted && aux_ptr->mpi_rank == 0) { + if (H5AC__log_deleted_entry((H5AC_info_t *)thing) < 0) { + /* If we fail to log the deleted entry, push an error but still + * participate in a possible sync point ahead + */ + HDONE_ERROR(H5E_CACHE, H5E_CANTUNPROTECT, FAIL, "H5AC__log_deleted_entry() failed") + } + } } /* end if */ #endif /* H5_HAVE_PARALLEL */ |