Skip to content

Commit

Permalink
Work around a testphdf5 failure on Cray MPICH machines (HDFGroup#3361)
Browse files Browse the repository at this point in the history
  • Loading branch information
jhendersonHDF authored and lrknox committed Aug 8, 2023
1 parent f43d301 commit 9879887
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 7 deletions.
11 changes: 11 additions & 0 deletions release_docs/RELEASE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
17 changes: 10 additions & 7 deletions testpar/t_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -986,20 +986,23 @@ 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
{
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);
Expand Down

0 comments on commit 9879887

Please sign in to comment.