Commit Graph

9579 Commits

Author SHA1 Message Date
Peter Hill
18c813b20b
CMake: Ensure all libraries link against MPI if needed 2023-10-02 10:31:24 +01:00
Peter Hill
b6cb581cec
CMake: Change header in check for HDF5 zlib/szip support
H5public.h might require MPI headers which we haven't found at this
point

Fixes #2742
2023-10-02 10:13:26 +01:00
Ward Fisher
234df46828 Merge branch 's3interfere.dmh' of github.com:DennisHeimbigner/netcdf-c into s3interfere.dmh 2023-09-29 16:10:20 -06:00
Ward Fisher
8337c64676 Add missing file. 2023-09-29 16:10:08 -06:00
Dennis Heimbigner
055ac8d610 Merge branch 's3interfere.dmh' of https://github.com/DennisHeimbigner/netcdf-c into s3interfere.dmh 2023-09-29 15:57:35 -06:00
Dennis Heimbigner
aac8a38c25 addfile 2023-09-29 15:57:02 -06:00
Ward Fisher
3c013ce342 Merged in current state of https://github.com/Unidata/netcdf-c/pulls/2741 2023-09-29 15:05:43 -06:00
Ward Fisher
e383788bfd
Merge pull request #2756 from GiGainfosystems/fix/space
Fix an issue with unescaped paths in the build system
2023-09-29 15:04:07 -06:00
Dennis Heimbigner
2bb6013dfd Update S3 subtree 2023-09-27 18:53:45 -06:00
Georg Semmler
7183490989
Fix an issue with unescaped paths in the build system
This commit fixes an issue with unescaped paths while building the
manpages for the netcdf.3 target. This causes problems with a building
path that contains spaces.
2023-09-27 10:20:30 +02:00
Dennis Heimbigner
b2e629b6b6 enable_dumpchunks 2023-09-26 18:48:58 -06:00
Dennis Heimbigner
8feafaac63 Fix test file 2023-09-26 17:27:17 -06:00
Dennis Heimbigner
df3636b959 Mitigate S3 test interference + Unlimited Dimensions in NCZarr
This PR started as an attempt to add unlimited dimensions to NCZarr.
It did that, but this exposed significant problems with test interference.
So this PR is mostly about fixing -- well mitigating anyway -- test
interference.

The problem of test interference is now documented in the document docs/internal.md.
The solutions implemented here are also describe in that document.
The solution is somewhat fragile but multiple cleanup mechanisms
are provided. Note that this feature requires that the
AWS command line utility must be installed.

## Unlimited Dimensions.
The existing NCZarr extensions to Zarr are modified to support unlimited dimensions.
NCzarr extends the Zarr meta-data for the ".zgroup" object to include netcdf-4 model extensions. This information is stored in ".zgroup" as dictionary named "_nczarr_group".
Inside "_nczarr_group", there is a key named "dims" that stores information about netcdf-4 named dimensions. The value of "dims" is a dictionary whose keys are the named dimensions. The value associated with each dimension name has one of two forms
Form 1 is a special case of form 2, and is kept for backward compatibility. Whenever a new file is written, it uses format 1 if possible, otherwise format 2.
* Form 1: An integer representing the size of the dimension, which is used for simple named dimensions.
* Form 2: A dictionary with the following keys and values"
   - "size" with an integer value representing the (current) size of the dimension.
   - "unlimited" with a value of either "1" or "0" to indicate if this dimension is an unlimited dimension.

For Unlimited dimensions, the size is initially zero, and as variables extend the length of that dimension, the size value for the dimension increases.
That dimension size is shared by all arrays referencing that dimension, so if one array extends an unlimited dimension, it is implicitly extended for all other arrays that reference that dimension.
This is the standard semantics for unlimited dimensions.

Adding unlimited dimensions required a number of other changes to the NCZarr code-base. These included the following.
* Did a partial refactor of the slice handling code in zwalk.c to clean it up.
* Added a number of tests for unlimited dimensions derived from the same test in nc_test4.
* Added several NCZarr specific unlimited tests; more are needed.
* Add test of endianness.

## Misc. Other Changes
* Modify libdispatch/ncs3sdk_aws.cpp to optionally support use of the
   AWS Transfer Utility mechanism. This is controlled by the
   ```#define TRANSFER```` command in that file. It defaults to being disabled.
* Parameterize both the standard Unidata S3 bucket (S3TESTBUCKET) and the netcdf-c test data prefix (S3TESTSUBTREE).
* Fixed an obscure memory leak in ncdump.
* Removed some obsolete unit testing code and test cases.
* Uncovered a bug in the netcdf-c handling of big-endian floats and doubles. Have not fixed yet. See tst_h5_endians.c.
* Renamed some nczarr_tests testcases to avoid name conflicts with nc_test4.
* Modify the semantics of zmap\#ncsmap_write to only allow total rewrite of objects.
* Modify the semantics of zodom to properly handle stride > 1.
* Add a truncate operation to the libnczarr zmap code.
2023-09-26 16:56:48 -06:00
Ben Boeckel
e6d9cda0e9 netCDFConfig: find HDF5 if needed
See: #1733
2023-09-26 09:58:03 -04:00
Ward Fisher
b5bb7d8837 Correct a couple of typos. 2023-09-14 12:55:45 -06:00
Ward Fisher
571fa068eb Made some changes to spacing, also discovered an issue around specifying rpath on MacOSX when using configure. 2023-09-14 12:01:42 -06:00
Ward Fisher
543eeee980 A few tweaks for readability. 2023-09-14 11:20:10 -06:00
Ward Fisher
973e5a3360 Revert previous change; the issue appears to be correct, but the fix appears to need to be different. 2023-09-08 10:09:15 -06:00
Ward Fisher
21d11a0079 Remove explicit setting of request length, allow it to be computed automatically. 2023-09-07 16:09:46 -06:00
Ward Fisher
adfeec0605 Turned on console logging/tracing. 2023-09-07 15:00:05 -06:00
Ward Fisher
3c789c6899
Merge pull request #2749 from WardF/fix_nc-config.wif
Fix --has-quantize in autotools-generated nc-config.
2023-09-06 10:46:38 -06:00
Ward Fisher
6d426ce006 Fix --has-quantize in autotools-generated nc-config. 2023-09-05 18:42:47 -06:00
Ward Fisher
99e8ff31d8 Add a missing include_directories invocation in CMakeLists.txt 2023-09-05 14:38:48 -06:00
Ward Fisher
22ecb88e8d Turned off verbose debugging in test_s3sdk.c for now. 2023-08-31 10:31:06 -06:00
Ward Fisher
b87d921509 Merge branch 'fix-cmake-s3-support.wif' of github.com:WardF/netcdf-c into fix-cmake-s3-support.wif 2023-08-30 16:11:53 -06:00
Ward Fisher
468e98f3b4 Making test cases more verbose, turning off s3-based interoperability tests TEMPORARILY. 2023-08-30 16:11:37 -06:00
Ward Fisher
c177ec0626 Add properties to pure awssdk for MSVC builds. 2023-08-30 14:43:25 -06:00
Ward Fisher
af07326a6b Disable 'force internal S3 on Windows' 2023-08-30 10:17:00 -06:00
Ward Fisher
dd1ae95b28 Tweak spacing in pure awssdk test. 2023-08-29 16:38:21 -06:00
Ward Fisher
2e25cfc25a Added checks for -lssl and -lcrypto for cmake-based builds. We can't assume they are available. 2023-08-29 12:15:15 -05:00
Ward Fisher
ac4aade4f2 Add an explicit check for ctype.h to CMake so that S3_INTERNAL=TRUE works. 2023-08-29 10:12:14 -06:00
Ward Fisher
718e4858cc Renamed pure-awssdk test to be more descriptive. 2023-08-28 16:56:16 -06:00
Ward Fisher
2f43247610 Adding a test which can be used to ensure that the AWSSDK which was discovered at configure time is functional. Still need to wire it into autotools. 2023-08-28 16:43:37 -06:00
Ward Fisher
7333d09982 Correct the logic of when and how to link against amazon S3 AWS SDK libraries. 2023-08-24 17:39:49 -05:00
Ward Fisher
d90abc5de4 Modify how the aws-sdk-cpp libraries are detected using autotools. Complicated by the fact that the 'official' method uses cmake. 2023-08-24 16:03:05 -05:00
Ward Fisher
1eca1ad874 Revert an accidental change. 2023-08-24 10:17:29 -06:00
Ward Fisher
363718215c Merge branch 'main' into fix-cmake-s3-support.wif 2023-08-24 10:16:09 -06:00
Ward Fisher
0f7ebad42e Remove diagnostic print statement. 2023-08-23 15:29:42 -06:00
Ward Fisher
dd69bb8d28 Correct some logic so that S3 SDK is linked against if and when it is found. 2023-08-23 15:29:23 -06:00
Ward Fisher
ef94285ac1
Merge pull request #2737 from DennisHeimbigner/cachesizes2.dmh
Fix major bug in the NCZarr cache management
2023-08-17 14:23:57 -06:00
Dennis Heimbigner
c5b5a8a17e Update release notes 2023-08-16 23:09:26 -06:00
Dennis Heimbigner
9094d25409 Fix major bug in the NCZarr cache management
re: PR https://github.com/Unidata/netcdf-c/pull/2734
re: Issue https://github.com/Unidata/netcdf-c/issues/2733

As a result of an investigation by https://github.com/uweschulzweida,
I discovered a significant bug in the NCZarr cache management.
This PR extends the above PR to fix that bug.

## Change Overview
* Insert extra checks for cache overflow.
* Added test cases contingent on the --enable-large-file-tests option.
* The Columbia server is down, so it has been temporarily disabled.
2023-08-16 23:07:05 -06:00
Ward Fisher
032b910edf
Merge pull request #2726 from DennisHeimbigner/shifterr.dmh
Fix a number of minor bugs
2023-08-11 13:32:55 -06:00
Ward Fisher
ccfe62de72 Fix a missing 'fi' 2023-08-11 11:29:30 -06:00
Ward Fisher
939245ca4a
Merge branch 'main' into shifterr.dmh 2023-08-11 11:02:55 -06:00
Ward Fisher
f72e3cbdfe
Merge pull request #2734 from DennisHeimbigner/cachesizes.dmh
Cleanup the handling of cache parameters.
2023-08-11 10:26:46 -06:00
Dennis Heimbigner
ad1e16a7ae Update release notes 2023-08-10 17:00:22 -06:00
Dennis Heimbigner
f1a3a64b65 Cleanup the handling of cache parameters.
re: https://github.com/Unidata/netcdf-c/issues/2733

When addressing the above issue, I noticed that there was a disconnect
in NCZarr between nc_set_chunk_cache and nc_set_var_chunk cache.
Specifically, setting nc_set_chunk_cache had no impact on the per-variable cache parameters when nc_set_var_chunk_cache was not used.

So, modified the NCZarr code so that the per-variable cache parameters are set in this order (#1 is first choice):
1. The values set by nc_set_var_chunk_cache
2. The values set by nc_set_chunk_cache
3. The defaults set by configure.ac
2023-08-10 16:57:57 -06:00
Ward Fisher
c798bb6405
Merge pull request #2730 from DennisHeimbigner/filtervlen2.dmh
Explicitly suppress variable length type compression
2023-08-10 16:50:21 -06:00
Ward Fisher
c374536240
Merge pull request #2732 from DennisHeimbigner/corrupt.dmh
Fix a crash when accessing a corrupted classic file.
2023-08-09 15:48:31 -06:00