Skip to content

Commit

Permalink
Fixes and cleanup for ph5diff (HDFGroup#4460)
Browse files Browse the repository at this point in the history
* Fixes and cleanup for ph5diff

Fixes concurrency issues in ph5diff that can cause interleaved
output

Fixes an issue where output can sometimes be dropped if it ended
up in ph5diff's output overflow file

Fixes an issue where MPI_Init is called after HDF5 has been
initialized, preventing the library from setting up an MPI
attribute to perform cleanup on MPI_Finalize

Fixes an issue in config/cmake/runTest.cmake where the CMake
logic would try to access an invalid list index if the number
of lines in a test's output and reference files don't match

* Add release note
  • Loading branch information
jhendersonHDF authored May 3, 2024
1 parent e4f079e commit 6114d1a
Show file tree
Hide file tree
Showing 4 changed files with 370 additions and 417 deletions.
22 changes: 16 additions & 6 deletions config/cmake/runTest.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -265,12 +265,22 @@ if (NOT TEST_SKIP_COMPARE)
endif ()
math (EXPR _FP_LEN "${len_ref} - 1")
foreach (line RANGE 0 ${_FP_LEN})
list (GET test_act ${line} str_act)
list (GET test_ref ${line} str_ref)
if (NOT str_act STREQUAL str_ref)
if (str_act)
set (TEST_COMPARE_RESULT 1)
message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n")
if (line GREATER_EQUAL len_act)
message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_OUTPUT}")
set (TEST_COMPARE_RESULT 1)
break ()
elseif (line GREATER_EQUAL len_ref)
message (STATUS "COMPARE FAILED: ran out of lines in ${TEST_FOLDER}/${TEST_REFERENCE}")
set (TEST_COMPARE_RESULT 1)
break ()
else ()
list (GET test_act ${line} str_act)
list (GET test_ref ${line} str_ref)
if (NOT str_act STREQUAL str_ref)
if (str_act)
set (TEST_COMPARE_RESULT 1)
message (STATUS "line = ${line}\n***ACTUAL: ${str_act}\n****REFER: ${str_ref}\n")
endif ()
endif ()
endif ()
endforeach ()
Expand Down
46 changes: 31 additions & 15 deletions release_docs/RELEASE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -747,20 +747,6 @@ Support for new platforms, languages and compilers

Bug Fixes since HDF5-1.14.0 release
===================================
Configuration:
-------------
- Fix Autotools -Werror cleanup

The Autotools temporarily scrub -Werror(=whatever) from CFLAGS, etc.
so configure checks don't trip over warnings generated by configure
check programs. The sed line originally only scrubbed -Werror but not
-Werror=something, which would cause errors when the '=something' was
left behind in CFLAGS.

The sed line has been updated to handle -Werror=something lines.

Fixes one issue raised in #3872

Library
-------

Expand Down Expand Up @@ -1672,6 +1658,24 @@ Bug Fixes since HDF5-1.14.0 release

Configuration
-------------
- Fixed a list index out of range issue in the runTest.cmake file

Fixed an issue in config/cmake/runTest.cmake where the CMake logic
would try to access an invalid list index if the number of lines in
a test's output and reference files don't match

- Fix Autotools -Werror cleanup

The Autotools temporarily scrub -Werror(=whatever) from CFLAGS, etc.
so configure checks don't trip over warnings generated by configure
check programs. The sed line originally only scrubbed -Werror but not
-Werror=something, which would cause errors when the '=something' was
left behind in CFLAGS.

The sed line has been updated to handle -Werror=something lines.

Fixes one issue raised in #3872

- Changed default of 'Error on HDF5 doxygen warnings' DOXYGEN_WARN_AS_ERROR option.

The default setting of DOXYGEN_WARN_AS_ERROR to 'FAIL_ON_WARNINGS' has been changed
Expand Down Expand Up @@ -1792,12 +1796,24 @@ Bug Fixes since HDF5-1.14.0 release

Tools
-----
- Fixed several issues in ph5diff

The parallel logic for the ph5diff tool inside the shared h5diff code was
refactored and cleaned up to fix several issues with the ph5diff tool. This
fixed:

- several concurrency issues in ph5diff that can result in interleaved
output
- an issue where output can sometimes be dropped when it ends up in
ph5diff's output overflow file
- an issue where MPI_Init was called after HDF5 had been initialized,
preventing the library from setting up an MPI communicator attribute
to perform library cleanup on MPI_Finalize

- Renamed h5fuse.sh to h5fuse

Addresses Discussion #3791


- Fixed an issue with unmatched MPI messages in ph5diff

The "manager" MPI rank in ph5diff was unintentionally sending "program end"
Expand Down
Loading

0 comments on commit 6114d1a

Please sign in to comment.