summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjhendersonHDF <jhenderson@hdfgroup.org>2023-08-08 18:02:19 (GMT)
committerGitHub <noreply@github.com>2023-08-08 18:02:19 (GMT)
commit14eb8f87f4bb4de52a633dec6427a0b75118c33b (patch)
tree7ddb602808ba08abc0ffee6459d45b149a45b147
parent291b2f7ae42958aa60b84a67a93eeca563a1d089 (diff)
downloadhdf5-14eb8f87f4bb4de52a633dec6427a0b75118c33b.zip
hdf5-14eb8f87f4bb4de52a633dec6427a0b75118c33b.tar.gz
hdf5-14eb8f87f4bb4de52a633dec6427a0b75118c33b.tar.bz2
Work around a testphdf5 failure on Cray MPICH machines (#3361)
-rw-r--r--release_docs/RELEASE.txt11
-rw-r--r--testpar/t_file.c17
2 files changed, 21 insertions, 7 deletions
diff --git a/release_docs/RELEASE.txt b/release_docs/RELEASE.txt
index 320d3b1..8b27f9c 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -689,6 +689,17 @@ Bug Fixes since HDF5-1.14.0 release
Testing
-------
+ - Fixed a testing failure in testphdf5 on Cray machines
+
+ On some Cray machines, what appears to be a bug in Cray MPICH was causing
+ calls to H5Fis_accessible to create a 0-byte file with strange Unix
+ permissions. This was causing an H5Fdelete file deletion test in the
+ testphdf5 program to fail due to a just-deleted HDF5 file appearing to
+ still be accessible on the file system. The issue in Cray MPICH has been
+ worked around for the time being by resetting the MPI_Info object on the
+ File Access Property List used to MPI_INFO_NULL before passing it to the
+ H5Fis_accessible call.
+
- A bug was fixed in the HDF5 API test random datatype generation code
A bug in the random datatype generation code could cause test failures
diff --git a/testpar/t_file.c b/testpar/t_file.c
index 3264ad5..314a60c 100644
--- a/testpar/t_file.c
+++ b/testpar/t_file.c
@@ -986,6 +986,15 @@ test_delete(void)
ret = H5Fdelete(filename, fapl_id);
VRFY((SUCCEED == ret), "H5Fdelete");
+ /*
+ * Work around a Cray MPICH bug that causes
+ * H5Fis_accessible to re-create the just-deleted
+ * file as a 0-byte file with strange Unix
+ * permissions, causing the routine to return
+ * false here instead of FAIL.
+ */
+ H5Pset_fapl_mpio(fapl_id, comm, info);
+
/* Verify that the file is NO LONGER an HDF5 file */
/* This should fail since there is no file */
H5E_BEGIN_TRY
@@ -993,13 +1002,7 @@ test_delete(void)
is_accessible = H5Fis_accessible(filename, fapl_id);
}
H5E_END_TRY
-
- if (FALSE == is_accessible) {
- VRFY((FALSE == is_accessible), "H5Fis_accessible returned FALSE");
- }
- if (FAIL == is_accessible) {
- VRFY((FAIL == is_accessible), "H5Fis_accessible failed");
- }
+ VRFY((FAIL == is_accessible), "H5Fis_accessible failed as expected");
/* Release file-access plist */
ret = H5Pclose(fapl_id);