Commit Graph

9485 Commits

Author SHA1 Message Date
Dennis Heimbigner
1552d894a2 Cleanup a number of issues.
re: Issue https://github.com/Unidata/netcdf-c/issues/2748

This PR fixes a number of issues and bugs.

## s3cleanup fixes
* Delete extraneous s3cleanup.sh related files.
* Remove duplicate s3cleanup.uids entries.

## Support the Google S3 API
* Add code to recognize "storage.gooleapis.com"
* Add extra code to track the kind of server being accessed: unknown, Amazon, Google.
* Add a new mode flag "gs3" (analog to "s3") to support this api.
* Modify the S3 URL code to support this case.
* Modify the listobjects result parsing because Google returns some non-standard XML elements.
* Change signature and calls for NC_s3urlrebuild.

## Handle corrupt Zarr files where shape is empty for a variable.
Modify behavior when a variable's "shape" dictionary entry.
Previously it returned an error, but now it suppresses such a variable.
This change makes it possible to read non-corrupt data from the file.
Also added a test case.

## Misc. Other Changes
* Fix the nclog level handling to suppress output by default.
* Fix de-duplicates code in ncuri.c
* Restore testing of iridl.ldeo.columbia.edu.
* Fix bug in define_vars() which did not always do a proper reclaim between variables.
2023-10-08 11:22:52 -06:00
Ward Fisher
8b5f1e239c
Merge pull request #2760 from WardF/doc-update2.wif 2023-10-05 19:43:51 -06:00
Ward Fisher
74ecacffb5 Updated static software.html page with reference to met.3d 2023-10-05 16:06:47 -06:00
Ward Fisher
b62da98420
Merge pull request #2757 from ZedThree/cmake-fix-hdf5-zlib-check
CMake: Change header in check for HDF5 zlib/szip support
2023-10-02 16:22:55 -06:00
Ward Fisher
80c746981d
Merge pull request #2758 from ZedThree/cmake-fix-linking-mpi
CMake: Ensure all libraries link against MPI if needed
2023-10-02 16:20:43 -06:00
Ward Fisher
140cb83695
Merge pull request #2755 from DennisHeimbigner/s3interfere.dmh
Mitigate S3 test interference + Unlimited Dimensions in NCZarr
2023-10-02 10:07:12 -06:00
Peter Hill
d4412df2da
CMake: Ensure MPI dependency is found in installed config 2023-10-02 10:51:02 +01:00
Peter Hill
f71d05988e
CMake: Make plugin target links public 2023-10-02 10:31:24 +01:00
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
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