Commit Graph

1088 Commits

Author SHA1 Message Date
Kyle Shores
7c2c955450 correcting target_sources 2024-02-07 10:06:46 -06:00
Kyle Shores
f9e3247164 merging main, addressing some PR comments 2024-02-07 09:53:45 -06:00
Peter Hill
a051cb2928
Update bundled utf8proc to 2.9.0
Commit 1fe43f5a6d9c628f717c5ec8aeaeae4a9adfd167

Closes #2804
2024-02-02 16:31:20 +00:00
Kyle Shores
559c336a7a connecting dispatch to hdf5 2024-01-26 16:04:15 -06:00
Ward Fisher
13d9fc38c2
Merge branch 'main' into unity 2024-01-22 12:42:25 -08:00
Ward Fisher
42b3f5582e Added a comment block for future reference. 2024-01-22 12:37:35 -08:00
Ward Fisher
16bcb1ddb9 Merge branch 'silence-nclist-warnings' of https://github.com/ZedThree/netcdf-c into rebase-gh2812.wif 2024-01-19 11:11:21 -07:00
Julien Schueller
5537a60885 CMake: Add support for UNITY_BUILD 2024-01-12 10:18:29 +01:00
Ward Fisher
c1fb4b0bae
Merge pull request #2809 from ZedThree/silence-malloc-warnings
Silence conversion warnings from `malloc` arguments
2023-12-21 17:20:56 -07:00
Ward Fisher
01eae4ff27
Merge pull request #2801 from seanm/c23-fixes
Replaced ancient K&R function declarations to be C23 compatible
2023-12-19 16:53:08 -07:00
Sean McBride
56844001f5 Replaced ancient K&R function declarations to be C23 compatible 2023-12-13 22:49:04 -05:00
Ward Fisher
7ef8c95bc1
Merge pull request #2450 from gsjaardema/patch-53
Minor fix to doxygen documentation
2023-12-12 15:59:50 -07:00
Ward Fisher
64e9185bd7
Merge pull request #2761 from magnusuMET/bugfix/skip_bin_test_on_non_test
Do not compile test program unless required
2023-12-12 13:42:44 -07:00
Ward Fisher
2616e2c411
Merge pull request #2745 from e-kwsm/chmod-x
chore: unset executable flag
2023-12-11 17:28:46 -07:00
Ward Fisher
002e2869ab
Merge pull request #2691 from seanm/snprintf
sprintf -> snprintf
2023-12-11 15:46:51 -07:00
Sean McBride
4f15a9265e Removed a use of sprintf that required changing a function signature 2023-12-08 13:30:54 -05:00
Sean McBride
dfc2ac7296 Replaced trivial uses of sprintf with snprintf
In all these cases the size of the buffer can be computed with sizeof.
2023-12-08 13:30:38 -05:00
Peter Hill
653e09fd6d
Try to more consistently use size_t for nclistget index argument 2023-11-28 16:28:31 +00:00
Dennis Heimbigner
58dd53022f Fix some important bugs in various files
The most critical bug is in nch5s3comms.c.
I for some reason assumed that signing keys
did not contain any zero bytes. But obviously
it can, so a test was removed.

Other fixes:
1. Guarantee allocated memory is initialized to all zeros.
2. Cleanup errmsg handling in libncpoco.
3. Fix processing of aws list-objects-v2 because I misread the syntax.
2023-11-27 18:46:10 -07:00
Peter Hill
d07dac918c
Silence conversion warnings from malloc arguments
Mostly just add an explicit cast when calling `malloc` and its
variants. Sometimes instead change the type of a local variable if
this would silence multiple warnings.
2023-11-24 18:20:52 +00:00
Ward Fisher
9fe1a346ba
Merge branch 'main' into dap4ce.dmh 2023-11-16 12:22:11 -07:00
Ward Fisher
d4e906fec0
Merge pull request #2803 from seanm/UBSan-utf8
Fixed various UBSan warnings about working with NULL pointers
2023-11-16 12:21:08 -07:00
Ward Fisher
807c6ef3f9
Merge branch 'main' into execinfo.dmh 2023-11-15 15:54:35 -07:00
Sean McBride
23aa46fcf5 Fixed various UBSan warnings about working with NULL pointers
Any pointer arithmetic with NULL pointers is technically UB, even if you don't end up dereferencing the pointer.
2023-11-15 15:11:56 -05:00
Ward Fisher
99f22954c5
Merge pull request #2787 from seanm/UBSan-shift
Fixed various UBSan warnings about invalid bit shifting
2023-11-14 16:55:24 -07:00
Ward Fisher
9593dbfac9
Merge pull request #2790 from seanm/mmap-bsd
Renamed mmap variable, which conflicts with mmap() function on FreeBSD
2023-11-06 14:48:06 -07:00
Sean McBride
fb62738f72 Renamed mmap variable, which conflicts with mmap() function on FreeBSD
This fixes compiler errors on FreeBSD 14.
2023-11-06 16:05:24 -05:00
Dennis Heimbigner
adea80f376 Remove the execinfo capability
re: Issue https://github.com/Unidata/netcdf-c/issues/2766

This attempt to programmatically dump stack never worked,
so it is time to kill it off.
2023-11-04 21:32:33 -06:00
Dennis Heimbigner
87497d79cf update 2023-11-04 16:08:59 -06:00
Sean McBride
1162f64d2a Fixed various UBSan warnings about invalid bit shifting
Just made sure to use unsigned, so that a bit does not get shifted into a sign bit.
2023-11-02 11:11:18 -04:00
Ward Fisher
7852b2b0e3
Merge branch 'main' into noshape.dmh 2023-10-24 14:51:48 -06:00
Ward Fisher
cb61d34185
Merge pull request #2767 from ZedThree/fix-ncvlog-loglevel
Fix bug with displaying log messages
2023-10-19 09:52:15 -06:00
Ward Fisher
84af03eaa2 Working on the last few s3 issues currently manifesting using S3_INTERNAL and WITH_S3_TESTING on Windows and MSYS2. 2023-10-13 11:32:27 -06:00
Peter Hill
fabd3b2b99
Fix bug with displaying log messages
One of the changes in df3636b introduced the ability to filter log
messages by level. This fixes a typo that flipped the intended
filtering, so that `NCLOGOFF` _enabled_ all messages instead of
_disabling_ them.
2023-10-09 10:47:39 +01:00
Dennis Heimbigner
5fa2defc7e Improve fetch performance of DAP4
Prior to this PR, DAP4 always fetched the whole (constrained) dataset
This PR changes the query processing so
1. It reads data on a per-variable request (equivalent to calling nc_get_var()).
2. It tracks a response for every query.

Most of the changes reflect having to do per-variable requests.
In any case, doing all this significantly reduces the amount of data transmitted and hence speeds up DAP4 requests.
2023-10-08 19:59:28 -06:00
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
Magnus Ulimoen
ed53598aac Do not run test unless required 2023-10-06 13:48:00 +02: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
Peter Hill
18c813b20b
CMake: Ensure all libraries link against MPI if needed 2023-10-02 10:31:24 +01: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
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
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
Eisuke Kawashima
d755c4ff32
chore: unset executable flag 2023-08-23 13:31:42 +09:00
Ward Fisher
939245ca4a
Merge branch 'main' into shifterr.dmh 2023-08-11 11:02:55 -06:00
Dennis Heimbigner
db772ce34c Explicitly suppress variable length type compression
re: PR https://github.com/Unidata/netcdf-c/pull/2716).
re: Issue https://github.com/Unidata/netcdf-c/issues/2189

The basic change is to make use of the fact that HDF5 automatically suppresses optional filters when an attempt is made to apply them to variable-length typed arrays.
This means that e.g. ncdump or nccopy will properly see meaningful data.
Note that if a filter is defined as HDF5 mandatory, then the corresponding variable will be suppressed and will be invisible to ncdump and nccopy.
This functionality is also propagated to NCZarr.

This PR makes some minor changes to PR https://github.com/Unidata/netcdf-c/pull/2716 as follows:
* Move the test for filter X variable-length from dfilter.c down into the dispatch table functions.
* Make all filters for HDF5 optional rather than mandatory so that the built-in HDF5 test for filter X variable-length will be invoked.

The test case for this was expanded to verify that the filters are defined, but suppressed.
2023-08-03 15:47:28 -06:00
Ward Fisher
dc3c45e5b0
Merge branch 'main' into next 2023-07-31 17:33:56 -06:00
Dennis Heimbigner
c4ecdd6403 Fix a number of minor bugs
1. Fix a shift bug in ncexhash.c (Issue https://github.com/Unidata/netcdf-c/issues/2702)
2. Fix an S3 related error in test_byterange.sh
3. Fix bz2/bzip2 handling in configure.ac
2023-07-24 16:20:26 -06:00
Dennis Heimbigner
8cab468169 Suppress filters on variables with non-fixed-size types.
re: Discussion https://github.com/Unidata/netcdf-c/discussions/2554
re: PR https://github.com/Unidata/netcdf-c/pull/2231
re: Issue https://github.com/Unidata/netcdf-c/issues/2189

After some discussion, the issue of applying filters on variables
whose type is not fixed size, was resolved as follows:
1. A call to nc_def_var_filter will ignore such filters, but will issue a log warning.
2. Loading (from an existing file) a variable whose type is not fixed-size and which has filters, will cause the variable to be suppressed.

This PR enforces those rules.

### Misc. Other changes
* Add a test case to test the vlen change.
* Make some minor clean-ups in various cmake and automake files.
* Remove unused test
2023-06-21 14:46:22 -06:00