Commit Graph

23868 Commits

Author SHA1 Message Date
Allen Byrne
2ad03911d9
Convert doc folder files to doxygen (#5216) 2025-01-17 11:48:58 -06:00
Matt L
3e8aa54c17
Correct H5T_decode return value description (#5242) 2025-01-16 11:33:52 -06:00
bmribler
0d69892019
Add release information to enum constants - Part 3 cont. (#5240)
The releases 1.12.1-1.12.3 were missing in the previous Part 3 PR
2025-01-16 10:53:51 -06:00
aled-ua
7f27ba8c3a
Fix vuln OSV-2023-77 (#5210) 2025-01-15 15:02:25 -06:00
jhendersonHDF
c83ca7dff3
Fix AddressSanitizer issues in cache test (#5235)
Fix usages of stack variables after function return by
removing extraneous H5CX_push/pop operations and hoisting
a stack variable to a higher scope
2025-01-15 14:58:39 -06:00
Dana Robinson
6de897bc5c
Move AWS configuration into a new function (#5239) 2025-01-15 06:47:43 -08:00
Dana Robinson
144b4fc661
Move AWS config/auth code inside H5FDs3comms.c (#5238)
The AWS configuration and authorization setup code needs to be
consolidated into one location in order to check AWS environment
variables and configuration files as well as fapl parameters.

This changeset pushes some stragglers into the s3comms code.

Also includes some cleanup, like removing useless macros,
making the s3comms functions package functions, and
renames things for symmetry and readability.
2025-01-15 05:43:20 -08:00
bmribler
eaf175ce9a
Changed comment style to avoid long line issue. (#5237)
* Changed comment style to avoid long line issue.

* Update H5Mpublic.h for clang format

---------

Co-authored-by: Dana Robinson <43805+derobins@users.noreply.github.com>
2025-01-14 14:46:28 -08:00
Dana Robinson
04cb039f0d
Comment cleanup in s3comms code (#5236)
Also renames the curl callback
2025-01-14 13:57:44 -08:00
bmribler
1458878b2c
Add release information to enum constants - Part 3 (#5234)
- Added \since to enum constants added in 1.8.x versions
- Removed unnecessary continuation backslashes in doxygen comments
2025-01-14 14:02:47 -06:00
Allen Byrne
3777724e58
Exclude test files from coverage command (#5232)
* Exclude test files from coverage command

* Exlude compression sources
2025-01-14 11:47:12 -08:00
Dana Robinson
01d5a973e0
More H5FDs3comms.c/h cleanup (#5231)
* Rename functions that create AWS strings to include _make_aws_
  in the name
* Separate out the test-only load AWS credentials function
2025-01-14 10:13:32 -06:00
jhendersonHDF
46658a55b3
Fix memory leak in API tests for vlen dataset I/O (#5230) 2025-01-13 16:58:32 -08:00
Dana Robinson
c25f8e331d
Test ros3 VFD in MacOS CMake GH actions (#5229) 2025-01-13 16:04:24 -08:00
Dana Robinson
04f17f5a7c
Clean up H5FDs3comms.c code (#5228)
Makes it more like the rest of the library. Also simplifies some
string copying.
2025-01-13 10:25:57 -08:00
Dana Robinson
915722a0c4
Parse ros3 VFD URLs using libcurl (#5226) 2025-01-13 06:40:27 -08:00
Dana Robinson
8ff65ebf7a
Use SSL to create hex strings from byte arrays (#5227) 2025-01-13 05:44:14 -08:00
Dana Robinson
544f4022b5
Convert CVE GitHub action to use cmake (#5225) 2025-01-13 05:38:10 -08:00
Allen Byrne
58ae0ae200
Develop libaec fix (#5182)
* Use the ${LIBAEC_PACKAGE_NAME} variable instead of SZIP
2025-01-10 15:49:59 -06:00
jhendersonHDF
2d0c676642
Enable API tests by default and fix some issues (#5223)
* Enable API tests by default

* Fix leaked file handle in API link test

* Fix some versioned API misuses
2025-01-10 09:08:02 -08:00
H. Joe Lee
5d3261910d
Fix typos (#5222) 2025-01-10 08:55:48 -06:00
Matt L
6b9612227f
Remove duplicate definition in parallel API tests (#5221) 2025-01-10 06:25:12 -06:00
Dana Robinson
6c6ec4fcd4
Misc cleanup in s3comms code (#5220)
Commenting and error code/message cleanup
2025-01-09 09:18:39 -06:00
H. Joe Lee
b0eac7d06d
Fix typo (#5218) 2025-01-08 23:02:42 -08:00
jhendersonHDF
af0b2315bd
Remove const from testing parameters in testframe framework (#5214)
Makes testing parameters specified with AddTest non-const again when
passed to test functions. This allows test functions to update their
parameters during execution and is particularly useful for tests
which use those parameters to accumulate statistics, error counts,
etc. without resorting to global variables.
2025-01-08 13:33:00 -06:00
Allen Byrne
6db70303a2
Convert IOFlow.html to doxygen (#5207) 2025-01-07 16:47:57 -06:00
Allen Byrne
d788d0a78a
Convert file format html files to doxygen (#5204) 2025-01-07 15:21:29 -06:00
Allen Byrne
67d074cac7
Fix doxygen missing references (#5205) 2025-01-06 11:32:52 -06:00
Allen Byrne
85bef9d1a7
Fix cygwin CI (#5203)
* use mingw generator
* disable ninja
* Disable ZFP and zstd because of C++ issue
2025-01-03 09:59:24 -06:00
aled-ua
c0192e2361
Fix vuln OSV-2024-390 (#5201) 2025-01-03 07:47:30 -06:00
Dana Robinson
ed082ac981
Fix 'unused parameter' warnings in C++ tests (#5199) 2025-01-02 10:09:46 -08:00
Dana Robinson
00adfce7a4
Remove duplicate MESSAGE macro (#5200)
* Removes duplicate macro from C++ code
* Hides global variables behind accessor functions
2025-01-02 10:11:17 -06:00
Dana Robinson
be3f2995dc
Fix flipped calloc args (#5198)
* Fix flipped calloc args in C++ tests
2025-01-02 10:09:45 -06:00
Allen Byrne
655403a3b4
Correct CMake option usage and dependencies (#5188) 2024-12-31 16:46:45 -06:00
Scot Breitenfeld
980117be30
removed link creation related c-wrappers (#5190) 2024-12-31 12:31:03 -06:00
Allen Byrne
11ddd6203f
fix clang ci (#5196)
* Add minor version to install clang

* Add clang version checks

* Revert to ubuntu-22.04

* Try adding  libtinfo5

* Disable fortran
2024-12-31 08:00:05 -06:00
Larry Knox
d4a5e1e4fb
Fix MPI_TEST_H5DIFF-h5diff_601 (#5192)
on Dane and Frontier, which occasionally fails when searching for expected output "Object could not
be found in <h5diff_basic1.h5>" when the object name </nono_obj> is
inserted after "Object".  Search string is reduced to "could not
be found".
2024-12-30 13:57:29 -06:00
Allen Byrne
613af269f8
Reissue of file format discussion html file to doxygen (#5179) 2024-12-27 15:54:37 -06:00
H. Joe Lee
f2642985d8
Fix h5py CI failure. (#5186)
Close #283
2024-12-20 13:40:08 -06:00
Quincey Koziol
331193f357
Add new multithreaded concurrency configuration (#5015)
Added infrastructure support for multithreaded concurrency by adding an optional way to switch to using a non-recursive R/W lock for the global API lock. This is enabled with a new 'concurrency' configuration flag for the autotools & CMake builds, which is disabled by default.

When the 'concurrency' build option is chosen, the global API lock will use the R/W lock and all API calls currently will acquire a write lock, ensuring exclusive access by one thread. Over time, the API routines that are converted to support multithreaded concurrency will switch to acquiring a read lock instead.

Reentering the library from application callbacks is managed by the 'disable locking for this thread' (DLFTT) threadsafety protocol. This is internally handled within the H5_API_LOCK / H5_API_UNLOCK macros in H5private.h (as before), which invoke the 'dlftt' routines in H5TSint.c.

To support this change, the threadsafety configuration macros for the library have been updated:
- --enable-threadsafe now defines the H5_HAVE_THREADSAFE macro
- --enable-concurrency defines the H5_HAVE_CONCURRENCY macro
The new H5_HAVE_THREADSAFE_API macro is set if either H5_HAVE_THREADSAFE or H5_HAVE_CONCURRENCY is enabled.

New Github actions are added to include the concurrency configuration in the CI for the develop branch.

To support the new non-recursive R/W locking for API routines, some other changes are necessary:

Added macro wrappers around all callback invocations that could call an
application function, and therefore re-enter the library:
H5_BEFORE_USER_CB* / H5_AFTER_USER_CB*

Added H5_user_cb_prepare / H5_user_cb_restore routines that save the
state of the library when callback leaves the library. Includes error
stack and threadsafe reentry state currently.

There's also some small cleanups to various places in the library:

Moved the H5E_mpi_error_str / H5E_mpi_error_str_len globals to be local for
pushing MPI errors, so that multiple threads can't interfere with each
other.

Added H5TS_rwlock_trywrlock() routine to R/W lock interface.

Emulate R/W locks on MacOS because its implementation of
pthread_rwlock_wrlock() does not conform to the POSIX standard.

Don't acquire the global API lock in H5close, since it's acquired in H5_term_library, which is necessary because H5_term_library is invoked via other code paths that don't hold the global API lock.

Don't call H5Eget_auto2 API routine within H5_term_library.

Switched 'return NULL' in H5allocate_memory to HGOTO_DONE(NULL).

Switched H5Pget_file_space_strategy / H5Pset_file_space_strategy to use
internal routines instead of API routines.

Switched H5Oopen_by_addr & H5Ovisit1 to use internal routines instead of
API routines.

Fixed a few places in src/H5Odeprec.c where a major
error ID was passed as a minor ID.
2024-12-19 01:35:21 -08:00
John Donners
f9d60b5ac1
Update file-locking.md (#5185)
Changed the "writer process" to the "reader process" that can crash.
2024-12-18 08:03:25 -06:00
Allen Byrne
7dfd9b4392
There is no need to request libcurses for the CMake CI (#5180)
* Do not use CXX env var for intel builds
2024-12-18 07:35:57 -06:00
Matt L
7f93e90c8e
Re-enable zlib in LOG VOL CI (#5181) 2024-12-17 10:44:42 -06:00
Matt L
914640e123
Prevent H5Pset* routines from modifying default plists (#5172)
* Prevent H5Pset_vol from changing default VOL
* Prevent public routines from modifying default plists
* Allow default backing FAPL for onion VFD
* Require FAPL in H5Pset_vol()
* Merge into existing H5P tests
2024-12-17 07:52:46 -06:00
bmribler
f0cffc90ac
Add release information to enum constants - Part 2 (#5176)
Added \since to enum constants added in 1.10.x versions
2024-12-16 08:02:46 -06:00
Lori Cooper
5c8be3ae43
Add sponsor info in funding.yml (#5177) 2024-12-15 08:20:24 -08:00
Allen Byrne
8c7fe8199d
Split doxygen pages from spec and TN into files (#5165) 2024-12-13 10:31:55 -06:00
Allen Byrne
1a9f13a7f1
Rework the compression library search (#5085) 2024-12-13 10:28:27 -06:00
Dana Robinson
937e446362
Update FUNDING.yml 2024-12-12 13:11:41 -08:00
Dana Robinson
56efc395b2
Update FUNDING.yml 2024-12-12 13:05:39 -08:00