summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLarry Knox <lrknox@hdfgroup.org>2023-08-08 20:33:00 (GMT)
committerGitHub <noreply@github.com>2023-08-08 20:33:00 (GMT)
commit5da94865761e9298ca6062b50f525f3a5ba713ef (patch)
tree7906f52d1dffa2a4601c551495421c4284b33401
parentf43d301f633b5e2cd9cde160ddb2c13578f9231f (diff)
downloadhdf5-5da94865761e9298ca6062b50f525f3a5ba713ef.zip
hdf5-5da94865761e9298ca6062b50f525f3a5ba713ef.tar.gz
hdf5-5da94865761e9298ca6062b50f525f3a5ba713ef.tar.bz2
Work around a testphdf5 failure on Cray MPICH machines (#3361) (#3362)
-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 3934fd9..4d1b1a8 100644
--- a/release_docs/RELEASE.txt
+++ b/release_docs/RELEASE.txt
@@ -260,6 +260,17 @@ Bug Fixes since HDF5-1.14.1 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);