Commit Graph

1863 Commits

Author SHA1 Message Date
Scot Breitenfeld
2fc140079b
Added H5Fdelete_f with test (#3912) 2023-12-30 17:33:31 -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
Allen Byrne
6f2d22d86e
Add variable option syncing for examples (#3885) 2023-12-14 12:50:30 -06:00
Allen Byrne
3ea21ccb3e
Add HDF5_DISABLE_TESTS_REGEX option to skip tests (#3859) 2023-11-22 07:51:30 -06:00
Dana Robinson
e807dee0fd
Add CMake long double cross-compile defaults (#3683)
HDF5 performs a couple of checks at build time to see if long double
values can be converted correctly (IBM's Power architecture uses a
special format for long doubles). These checks were performed using
TRY_RUN, which is a problem when cross-compiling.

These checks now use default values appropriate for most non-Power
systems when cross-compiling. The cache values can be pre-set if
necessary, which will preempt both the TRY_RUN and the default.

Affected values:
    H5_LDOUBLE_TO_LONG_SPECIAL      (default no)
    H5_LONG_TO_LDOUBLE_SPECIAL      (default no)
    H5_LDOUBLE_TO_LLONG_ACCURATE    (default yes)
    H5_LLONG_TO_LDOUBLE_CORRECT     (default yes)
    H5_DISABLE_SOME_LDOUBLE_CONV    (default no)

Fixes GitHub #3585
2023-11-14 20:36:47 -08:00
Dana Robinson
8b3ffdef30
Remove Autotools sed hack (#3848)
configure.ac contains a sed line that cleans up incorrect library
flags which was added to paper over some bugs in earlier versions
of the Autotools. These issues are not a problem with the current
versions of the Autootols.

The sed line causes problems on MacOS, so it has been removed.

Fixes #3843
2023-11-13 11:09:43 -08: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
Scot Breitenfeld
ec695cf34f
Renamed h5fuse.sh to h5fuse (#3834)
* provide an alternative to mapfile for older bash
2023-11-07 09:50:03 -06:00
Scot Breitenfeld
6a3c859e58
Fortran Wrappers H5VLnative_addr_to_token_f and H5VLnative_token_to_address_f (#3801)
* Added H5VLnative_addr_to_token_f and H5VLnative_token_to_address_f

* Added H5VLnative_addr_to_token_f and H5VLnative_token_to_address_f tests

* Added H5VLnative_addr_to_token_f and H5VLnative_token_to_address_f tests
2023-11-03 09:22:00 -07:00
jhendersonHDF
64e239c4b6
Set NVHPC maximum optimization level to -O1 for now (#3800)
* Set NVHPC maximum optimization level to -O1 for now

Compiling HDF5 with NVHPC 23.5 - 23.9 results in test failures in
4 different test files that need to be resolved. Since those tests
pass with an optimization level of -O1 (and -O0) and it is currently
unclear whether the test failures are due to issues in HDF5 or issues
in the 'nvc' compiler, set the maximum optimization level for NVHPC
to -O1 until the test failures are resolved.

* Disable nvhpc Java testing in CMake and amend known issues

* Re-enable testing of Autotools nvhpc
2023-11-01 14:41:46 -05:00
jhendersonHDF
556add35b7
Don't install h5tools_test_utils test program on system (#3793) 2023-10-30 11:12:10 -05: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
jhendersonHDF
fbf77a8b16
Add release note for H5Pset_evict_on_close change for parallel HDF5 (#3765) 2023-10-24 16:28:22 -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
Scot Breitenfeld
da3b7ff945
Add h5pget_actual_selection_io_mode fortran wrapper (#3746)
* added h5pget_actual_selection_io_mode_f test

* added tests for h5pget_actual_selection_io_mode_f

* fixed int_f type conversion
2023-10-23 14:55:47 -05:00
Dana Robinson
a6d1bda6d2
Update Autotools to correctly configure oneAPI (#3751)
* Update Autotools to correctly configure oneAPI

Splits the Intel config files under the Autotools into 'classic'
Intel and oneAPI versions, fixing 'unsupported option' messages.

Also turns off `-check uninit` (new in 2023) in Fortran, which kills
the H5_buildiface program due to false positives.

* Enable Fortran in oneAPI CI workflow

* Turn on Fortran in CMake, update LD_LIBRARY_PATH

* Go back to disabling Fortran w/ Intel

For some reason there's a linking problem w/ Fortran

error while loading shared libraries: libifport.so.5: cannot open shared object file: No such file or directory
2023-10-23 12:50:15 -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
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
Allen Byrne
5844f498b0
Add an option to disable doxygen warn as error (#3708)
Add for both CMake and the Autotools

* HDF5_ENABLE_DOXY_WARNINGS: ON/OFF (Default: ON)
* --enable-doxygen-errors: enable/disable (Default: enable)

The default will fail compile if the doxygen parsing generates warnings.
The option can be disabled if certain versions of doxygen have parsing
issues. i.e. 1.9.5, 1.9.8.

Fixes #3398
2023-10-19 14:58:33 -07:00
jhendersonHDF
c4a146efc4
Fix issue with unmatched messages in ph5diff (#3719) 2023-10-19 08:14:20 -05:00
Allen Byrne
29c1c02300
Some corrections and fix for plugins (#3712) 2023-10-19 08:01:02 -05:00
Dana Robinson
d5267f096e
Add support for AOCC & Flang w/ the Autotools (#3674)
* Adds a config/clang-fflags options file to support Flang
* Corrects missing "-Wl," from linker options in the libtool wrappers
  when using Flang, the MPI Fortran compiler wrappers, and building
  the shared library. This would often result in unrecognized options
  like -soname.
* Enable -nomp w/ Flang to avoid linking to the OpenMPI library.

CMake can build the parallel, shared library w/ Fortran using AOCC
and Flang, so no changes were needed for that build system.

Fixes GitHub issues #3439, #1588, #366, #280
2023-10-14 22:39:43 -05:00
Scot Breitenfeld
6aaa960d90
Fixes test failure for gfortran -O2 and -O3, -fdefault-real-16 (#3662)
* added cmake ieee flag for nagfor

* fixes gfortran -O2 and -O3, -fdefault-real-16

* fixed sync

* updated release notes
2023-10-13 09:39:06 -07:00
Scot Breitenfeld
85c176247d
Address nagfor exceptions stoppage. (#3658)
* added cmake ieee flag for nagfor

* generalized determining the nag compiler

* fixing some misc. NAG warnings
2023-10-11 15:16:01 -05:00
jhendersonHDF
bfbfaf72e1
Update parallel compression feature to support multi-dataset I/O (#3591) 2023-10-10 10:11:22 -05:00
Scot Breitenfeld
0ffde9da19
Fixes GH#1027 compilation error (#3654) 2023-10-10 09:18:00 -05:00
Scot Breitenfeld
6edd9a0aab
Drop MPI-2 support (#3643) 2023-10-07 18:16:30 -07:00
H. Joe Lee
a95e4fc236
Improve consistency in past tense usage (#3638) 2023-10-06 10:32:33 -05:00
Allen Byrne
283202bc62
Remove old EXTERNALPROJECT_ADD in favor of FETCH_CONTENT (#3624) 2023-10-04 15:51:01 -05:00
Dana Robinson
447765609b
Disable static + thread-safe on Windows w/ CMake (#3622)
The thread-safety feature on Windows requires a hook in DllMain() and
thus is only available when HDF5 is built as a shared library.

This was previously a warning, but has now been elevated to a fatal
error that cannot be overridden with ALLOW_UNSUPPORTED.

Fixes GitHub #3613
2023-10-03 16:37:44 -07:00
Scot Breitenfeld
1e852b94bd
Removed the use of -commons linking option on Darwin (#3581)
Removed the use of -commons linking option on Darwin as COMMON and EQUIVALENCE is no long used
2023-09-25 12:41:48 -07:00
H. Joe Lee
d920a45413
Fix ifx unused variable hdferr warning. (#3568) 2023-09-22 08:45:50 -05:00
Scot Breitenfeld
08e115b7d8
Added new Fortran API wrappers (#3511)
* Added new wrappers for
h5get_free_list_sizes_f
H5Sselect_intersect_block_f
H5Sselect_shape_same_f
h5pget_no_selection_io_cause_f
h5pget_mpio_no_collective_cause_f
H5Lvisit_by_name_f
H5Lvisit_f
H5Fget_info_f
h5dwrite_chunk_f
h5dread_chunk_f

* added h5pget_file_space_page_size_f, h5pset_file_space_page_size_f, h5pget_file_space_strategy_f, h5pset_file_space_strategy_f, h5info tests

* added fortran tests

* Update tH5F.F90
2023-09-07 17:25:07 -05:00
jhendersonHDF
0b24f40b0f
Fix Subfiling VFD IOC assignment bug (#3456) 2023-09-01 09:59:28 -07:00
Neil Fortner
1d79445a1d
Remove extraneous "33" in RELEASE.txt (#3425) 2023-08-24 10:43:36 -07:00
jhendersonHDF
216d2191c7
Skip atomicity tests for OpenMPI major versions < 5 (#3421) 2023-08-24 08:54:13 -07:00
Neil Fortner
b155ec5b10
Add RELEASE.txt entry for compound performance regression fix (#3376) (#3416) 2023-08-23 16:49:51 -05:00
Alex
0b2e11d5c0
Fix Heap-buffer-overflow WRITE in H5MM_memcpy (#3368) 2023-08-23 12:35:06 -07:00
Allen Byrne
e1602a287b
Re-enable SZIP default to ON in CMake (#3414)
The Autotools were handled in a separate commit
2023-08-23 12:32:09 -07:00
Dana Robinson
81fc47cc06
Enable szip by default in Autotools (#3412)
Since libaec is so prevalent and BSD-licensed for both encode and
decode, we build the szip filter by default when the szip or aec
libraries are found.
2023-08-23 08:21:33 -07:00
Dana Robinson
a7c095d5be
Fix for CVE-2016-4332 (#3406)
This CVE issue was previously listed as fixed (via HDFFV-9950) back in
2016, but with no confirmation test. Now that test files exist for
the 2016 Talos CVE issues, we found that CVE-2016-4332 can raise an
assert in debug builds.

This fix replaces the assert with pointer checks that don't raise
errors or asserts. Since the function is in cleanup code, we do our
best to close and free things, even when presented with partially-
initialized structs.

Fixes CVE-2016-4332 and HDFFV-9950 (confirmed via the cve_hdf5 repo)
2023-08-21 22:11:56 -05:00
jhendersonHDF
5df18802d0
Fix serial to parallel chunked dataset file space allocation bug (#3394) 2023-08-21 22:09:04 -05:00
jhendersonHDF
98b8fa7469
Fix assertion failure during file close on error (#3387) 2023-08-18 15:59:25 -05:00
Neil Fortner
ba2193a270
Add RELEASE.txt notes for recent selection I/O work. (#3374) 2023-08-10 16:15:56 -05:00
jhendersonHDF
14eb8f87f4
Work around a testphdf5 failure on Cray MPICH machines (#3361) 2023-08-08 13:02:19 -05:00
Aleksandar Jelenak
63b0f152e5
Fix a typo in RELEASE.txt 2023-08-03 11:47:09 -04:00
Dana Robinson
86ddedf522
Fix CVE-2018-13867 (#3336) 2023-08-02 17:44:19 -05:00
Dana Robinson
11e28fe8b8
Fix CVE-2018-11202 (#3330)
A malformed file could result in chunk index memory leaks. Under most
conditions (i.e., when the --enable-using-memchecker option is NOT
used), this would result in a small memory leak and and infinite loop
and abort when shutting down the library. The infinite loop would be
due to the "free list" package not being able to clear its resources
so the library couldn't shut down. When the "using a memory checker"
option is used, the free lists are disabled so there is just a memory
leak with no abort on library shutdown.

The chunk index resources are now correctly cleaned up when reading
misparsed files and valgrind confirms no memory leaks.
2023-08-02 13:59:26 -07:00