Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Work around a testphdf5 failure on Cray MPICH machines #3361

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions release_docs/RELEASE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
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