Repository navigation
Conversation
…rallel Both parallel tests assumed sizeof(long) == 8, which is false on Windows (LLP64), where long is the same size as int. t_select_io_dset: three subtests write an H5T_NATIVE_LONG buffer into an H5T_NATIVE_INT dataset and expect the type conversion to break collective I/O when selection I/O is off. On LLP64 there is no conversion, so the library legitimately stays collective and reports every rank doing scalar I/O. Add a LONG_INT_TCONV macro and account for it in the expected I/O mode and selection I/O mode checks. t_filters_parallel: test_shrinking_growing_chunks fills a double buffer with a loop bounded by data_size / sizeof(C_DATATYPE), where C_DATATYPE is long. On LLP64 that is twice as many iterations as the buffer holds and overflows the heap (found with AddressSanitizer). Bound the loop by sizeof(double). Verified with Intel MPI + icx on Windows 11: t_select_io_dset passes with 3, 6 and 14 ranks; t_filters_parallel passes with 14 ranks and under AddressSanitizer with 4 ranks. Co-Authored-By: Claude Mythos 5.1 <noreply@anthropic.com>
hyoklee
requested review from
brtnfld,
fortnern,
jhendersonHDF and
mattjala
as code owners
October 14, 2026 16:11
Contributor
Review ChecklistThis PR touches the following areas. Each needs a sign-off
|
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Describe your changes
Both parallel tests assumed
sizeof(long) == 8, which is false on Windows (LLP64), wherelongis the same size asint.H5T_NATIVE_LONGbuffer into anH5T_NATIVE_INTdataset and expect the type conversion to break collective I/O when selection I/O is off. On LLP64 there is no conversion, so the library legitimately stays collective and every rank reports scalar I/O. Add aLONG_INT_TCONVmacro and account for it in the expected I/O mode and selection I/O mode checks of the "larger memory type", "empty selections + type conversion" and "multi-datasets, no background buffer" subtests.test_shrinking_growing_chunksfills adoublebuffer with a loop bounded bydata_size / sizeof(C_DATATYPE), whereC_DATATYPEislong. On LLP64 that is twice as many iterations as the buffer holds and overflows the heap (found with AddressSanitizer). Bound the loop bysizeof(double).Verified with Intel MPI 2021.18 and icx 2026.1.1 on Windows 11:
t_select_io_dsetpasses with 3, 6 and 14 ranks;t_filters_parallelpasses the full run with 14 ranks and under AddressSanitizer with 4 ranks. Behavior on LP64 platforms is unchanged, sinceLONG_INT_TCONVis true there and the filters loop bound is identical.Issue ticket number (GitHub or JIRA)
Fixes #6734
Checklist before requesting a review
🤖 Generated with Claude Code