7633 Commits

Author SHA1 Message Date
Sean McBride
7aed6abd52
Replaced last sprintf with snprintf (#4007)
* Replaced last sprintf with snprintf

To have the size of the buffer, it was required to change a function signature, and change all users of it.

In most cases, determining the buffer size wasn't  trivial and so SIZE_MAX is passed. But at least this improves the infrastructure. Someone can later figure out the correct sizes.
2024-02-20 12:19:50 -05:00
Sean McBride
f309fcebbd
Issue #1824: Replaced most remaining sprintf with safer snprint (#4003) 2024-02-13 08:22:17 -06:00
H. Joe Lee
beee0a327d
Add a missing file into Makefile.am for MinGW Autotools build error. (#4004) 2024-02-13 08:19:14 -06:00
vchoi-hdfgroup
49cce9173f
Fix for github issue #2414: segfault when copying dataset with attrib… (#3967)
* Fix for github issue #2414: segfault when copying dataset with attributes.
This also fixes github issue #3241: segfault when copying dataset.
Need to set the location via H5T_set_loc() of the src datatype
when copying dense attributes.
Otherwise the vlen callbacks are not set up therefore causing seg fault
when doing H5T_convert() -> H5T__conv_vlen().
2024-02-06 14:59:27 -06:00
H. Joe Lee
33ae371dbb
chore: fix typo (#3989)
close #144
2024-02-06 09:48:08 -06:00
Scot Breitenfeld
2c3d23d1e6
corrected warning: implicit conversion changes signedness (#3982) 2024-02-02 08:11:16 -06:00
Allen Byrne
365e23340c
Fix doxygen errors (#3962)
* Switch warnings as errors to default OFF

* Enable mac docs

* Add doxygen action uses step

* Use html div around snippet

* Allow preset name to be an argument to cmake-ctest.yml
2024-01-29 07:38:54 -06:00
mattjala
1bea9e6100
Document that fileno is same for all handles (#3963) 2024-01-26 12:30:12 -08:00
Dana Robinson
70ce646c22
Change 'extensible' to 'fixed' in H5FA code (#3964) 2024-01-26 07:58:58 -08:00
jhendersonHDF
f86fe61c7f
Remove cached datatype conversion path table entries on file close (#3942)
Remove cached datatype conversion path table entries on file close

When performing datatype conversions during I/O, the library
checks to see whether it can re-use a cached datatype conversion
pathway by performing comparisons between the source and destination
datatypes of the current operation and the source and destination
datatypes associated with each cached datatype conversion pathway.
For variable-length and reference datatypes, a comparison is made
between the VOL object for the file associated with these datatypes,
which may change as a file is closed and reopened. In workflows
involving a loop that opens a file, performs I/O on an object with a
variable-length or reference datatype and then closes the file, this
can lead to constant memory usage growth as the library compares the
file VOL objects between the datatypes as different and adds a new
cached conversion pathway entry on each iteration during I/O. This is
now fixed by clearing out any cached conversion pathway entries for
variable-length or reference datatypes associated with a particular
file when that file is closed.
2024-01-23 08:21:59 -08:00
Scot Breitenfeld
54fb809382
Fortran API work. (#3941)
* - Added Fortran APIs:
      H5FGET_INTENT_F, H5SSELECT_ITER_CREATE_F, H5SSEL_ITER_GET_SEQ_LIST_F,
      H5SSELECT_ITER_CLOSE_F, H5S_mp_H5SSELECT_ITER_RESET_F

    - Added Fortran Parameters:
      H5S_SEL_ITER_GET_SEQ_LIST_SORTED_F, H5S_SEL_ITER_SHARE_WITH_DATASPACE_F

    - Added tests for new APIs
    - Removed H5F C wrapper stubs
    - Documentation misc. cleanup.
2024-01-23 07:59:10 -08:00
mattjala
51f150a945
Update H5Fget_obj_count/ids docs to reflect dtype behavior (#3932)
* Update H5Fget_obj_count/ids to reflect dtype behavior

* Clarify comments on H5Fget_obj_ids
2024-01-19 21:11:06 -06:00
Glenn Song
3d1fc2c38a
Fix chid_t to hid_t (#3948)
Co-authored-by: Glenn Song <gsong@hdfgroup.org>
2024-01-19 21:08:19 -06:00
Dana Robinson
ab11e076bf
Replace off_t with HDoff_t internally (#3944)
off_t is a 32-bit signed value on Windows, so we should use HDoff_t
(which is __int64 on Windows) internally instead.

Also defines HDftell on Windows to be _ftelli64().
2024-01-18 09:03:59 -08:00
Dana Robinson
5ae4ecc1f2
Clean up Doxygen for szip functions and constants (#3943) 2024-01-18 09:03:43 -08:00
Allen Byrne
a00d62f77a
Use props for includes and remove global includes (#3921) 2024-01-04 12:06:36 -06:00
Quincey Koziol
3a21ee0877
Add 'warning density' computation to the warnhist script (#3910)
* Add 'warning density' computation to the warnhist script, along with several
cleanups to it.   Add "--enable-show-all-warnings" configure (and CMake)
option to disable compiler diagnostic suppression (and therefore show all the
otherwise suppressed compiler diagnostics), disabled by default.  Clean up
a buncn of misc. warnings.

Signed-off-by: Quincey Koziol <qkoziol@amazon.com>
2023-12-29 08:42:35 -06:00
jhendersonHDF
6ffc55c6d9
Implement optimized support for vector I/O in Subfiling VFD (#3896)
Vector I/O requests are now processed within a single
set of I/O call batches, rather than each I/O vector
entry (tuple constructed from the types, addrs, sizes
and bufs arrays) being processed individually. This allows I/O to be
more efficiently parallelized among the I/O concentrator processes
during large I/O requests.

* Fixed some calculations and add test cases for issues spotted from review

* Removed a variable that was compensating for previous miscalculations
2023-12-27 16:28:41 -06:00
Gerd Heber
37124bc1c1
Doc versions (#3903)
* Added missing \since tags to H5D.

* Committing clang-format changes

* Fixed H5T version info.

* Committing clang-format changes

* Added missing version info to H5E.

* Committing clang-format changes

* Added version info to H5F public APIs.

* Committing clang-format changes

* Added missing H5Z public API version info.

* Added missing version info to H5G public APIs

* Added missing version info to H5I public API.

* Added missing version info to H5 public APIs

* Committing clang-format changes

* Added missing version info to H5P public APIs

* Added missing version info to H5R public APIs

* Fix comment error.

* Committing clang-format changes

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-12-21 14:51:58 -06:00
H. Joe Lee
a70c001735
Remove redundant backslash character from comment. (#3899) 2023-12-19 19:06:14 -06:00
Luc Grosheintz
cad5da6868
Fix typo in error message for MPI_Type_dup. (#3867) 2023-11-22 11:06:42 -06:00
mattjala
af4c6c4f15
Fix segfault on user compound dtype conversion callback (#3842)
* Fix segfault on user compound conversion

* Check if lib conversion func is in use
2023-11-22 07:55:25 -06:00
vchoi-hdfgroup
ed31aaca79
Implement selection vector I/O with collective chunk filling (#3826)
* Changes for ECP-344: Implement selection vector I/O with collective chunk filling.
Also fix a bug in H5FD__mpio_write_vector() to account for fixed size optimization
when computing max address.

* Fixes based on PR review comments:
For H5Dchunk.c: fix H5MM_xfree()
For H5FDmpio.c:
1) Revert the fix to H5FD__mpio_write_vector()
2) Apply the patch from Neil on the proper length of s_sizes reported by H5FD__mpio_vector_build_types()

* Put back the logic of dividing up the work among all the mpi ranks similar to the
original H5D__chunk_collective_fill() routine.

* Add a test to verify the fix for the illegal reference problem in H5FD__mpio_write_vector().
2023-11-16 10:12:45 -06:00
Allen Byrne
ef39882fa1
Change dest for doxygen (#3856)
* Switch doxygen refs to hdf5/develop
2023-11-15 17:32:07 -06:00
mattjala
b5bfea2cc3
Make filter unregister callbacks safe for VOL connectors (#3629)
* Make filter callbacks use top-level API functions

When using VOL connectors, H5I_iterate may not provide
valid object pointers to its callback. This change keeps
existing functionality in H5Zunregister() without using
potentially unsafe pointers.

* Filter callbacks use internal API

* Skip MPI work on non-native VOL
2023-11-13 14:31:24 -06:00
mattjala
5e0b59a70c
Test and document path handling of H5Lcreate_* API (#3829) 2023-11-10 22:34:46 -06:00
Dana Robinson
e0d095ebf0
Disable FP exceptions in H5T init code (#3837)
The H5T floating-point datatype initialization code can raise exceptions when handling signaling NaNs. This change disables FE_INVALID exceptions during initialization.

Also removes the -ieee=full change for NAG Fortran as that shouldn't be necessary anymore.

Fixes #3831
2023-11-07 08:13:30 -08:00
jhendersonHDF
7404b57da6
Rework MPI Info FAPL preserve PR to use VFD 'ctl' operations (#3782) 2023-11-02 21:42:28 -05:00
jhendersonHDF
562c53c44a
Fix misc. warnings from GCC when compiling with -fsanitize=undefined (#3787) 2023-11-01 08:16:33 -05:00
H. Joe Lee
e9e4ffaec7
Remove H5system.c warning on Windows oneAPI. (#3812) 2023-11-01 07:12:03 -05:00
jhendersonHDF
39c0284c38
Fix a couple usages of MPI_Info_get (#3809) 2023-10-31 06:05:52 -07:00
Dana Robinson
58ef7dcdc9
Update Doxygen initializers & identifiers in VFDs (#3795)
* Add Doxygen for all H5FD_<VFD> initializers
* Add Doxygen for all H5FD_<VFD>_VALUE values
* Mark H5FD_<vfd>_init() calls private in Doxygen
2023-10-30 11:13:54 -05:00
Dana Robinson
87636d6855
Add Doxygen to H5FDsplitter.h (#3794)
* H5FD_CURR_SPLITTER_VFD_CONFIG_VERSION
* H5FD_SPLITTER_PATH_MAX
* H5FD_SPLITTER_MAGIC
* H5FD_splitter_vfd_config_t
* H5Pset_fapl_splitter()
* H5Pget_fapl_splitter()
2023-10-30 11:13:01 -05:00
jhendersonHDF
edb5cffdb2
Avoid attempted use of NULL pointer in parallel compression code (#3786)
The parallel compression test code tests for the case where all MPI ranks have no selection in a dataset when writing to it. Add an early exit to the code to avoid attempting to use a NULL pointer due to there being no work to do.
2023-10-27 21:20:29 -07:00
Dana Robinson
6ccace572e
Fixed a file handle leak in the core VFD (#3779)
When opening a file with the core VFD and a file image, if the file
already exists, the file check would leak the POSIX file handle.

Fixes GitHub issue #635
2023-10-25 23:16:32 -05:00
tbeu
ebeb642fcd
Fix typo in comment (#3775) 2023-10-25 20:08:41 -07:00
vchoi-hdfgroup
6578c452b5
Preserve MPI-I/O file hints when fapl is closed (#3755)
* Fix for issue #3025: Save the MPI info in the file struct so H5Fget_access_plist() can retrieve it from there.
2023-10-24 21:48:28 -05:00
Glenn Song
ea1714b303
Fix H5Pset_evict_on_close failing regardless of actual parallel use (#3761)
Allow H5Pset_evict_on_close to be called regardless of whether a parallel build of HDF5 is being used

Fail during file opens if H5Pset_evict_on_close has been set to true on the given File Access Property List and the size of the MPI communicator being used is greater than 1
2023-10-24 12:51:55 -05:00
jhendersonHDF
8cff88c507
Fix some issues with collective metadata reads for chunked datasets (#3716)
Add functions/callbacks for explicit control over chunk index open/close

Add functions/callbacks to check if chunk index is open or not so
that it can be opened if necessary before temporarily disabling
collective metadata reads in the library

Add functions/callbacks for requesting loading of additional chunk
index metadata beyond the chunk index itself
2023-10-23 19:08:06 -07:00
jhendersonHDF
af49eb5b86
Fix hangs during collective I/O with independent metadata writes (#3693) 2023-10-23 19:06:44 -07:00
Dana Robinson
ceb03358a1
Bump the ros3 VFD cache to 16 MiB (#3759) 2023-10-23 19:06:18 -07:00
Dana Robinson
d76d591555
Add a simple cache to the ros3 VFD (#3753)
Adds a small cache of the first N bytes of a file opened with the
read-only S3 (ros3) VFD, where N is 4kiB or the size of the file,
whichever is smaller. This avoids a lot of small I/O operations
on file open.

Addresses GitHub issue #3381
2023-10-23 12:45:41 -07:00
jhendersonHDF
a4c318de28
Fix buffer overflow in cache debugging code (#3691) 2023-10-23 12:33:37 -07:00
mattjala
5a00539e0d
Add native VOL checks to deprecated functions (#3647)
* Add native VOL checks to deprecated functions

* Remove unneeded native VOL checks

* Move native checks to top level calls
2023-10-23 12:32:54 -07:00
bmribler
21ec3730c5
Additional update to the library version matrix for H5Pset_libver_bounds() (#3742)
This is the follow-up of PR #3702.
2023-10-21 19:15:12 -05:00
bmribler
709367cb1a
Update the library version matrix for H5Pset_libver_bounds() (#3702)
* Fixed #3524

Added 1.12, 1.14, and 1.16 to the table for libver bounds in the H5Pset_libver_bounds docs.
2023-10-20 14:17:46 -05:00
Neil Fortner
630d6e27c9
Add new API function H5Pget_actual_select_io_mode() (#2974)
This function allows the user to determine if the library performed selection I/O, vector I/O, or scalar (legacy) I/O during the last HDF5 operation performed with the provided DXPL. Expanded existing tests to check this functionality.
2023-10-20 10:32:17 -07:00
H. Joe Lee
fce7ce1869
Clean up comments. (#3695) 2023-10-18 09:11:02 -07:00
jhendersonHDF
9557256819
Sync changes that are only in 1.14 branch (#3704) 2023-10-17 21:54:40 -07:00
Dana Robinson
08d0909c9c
Fix unused variable warning in H5F_sfile_assert_num (#3700) 2023-10-17 12:22:10 -07:00