Commit Graph

7707 Commits

Author SHA1 Message Date
Dennis Heimbigner
e7d5f24078 Add zip file support
The primary change is to support the use of a zip file as a
storage format. Simultaneously the .nz4 support is made obsolete

Use of zip requires the libzip support library, so a number of
changes to the build files (Makefile.am, CMakeLists.txt) are
necessary to locate and incorporate libzip.  The nczarr_tests
tests are also changed to add zip testing.

Other changes:
* Make sure distcheck leaves no files around.
* Add some functions to netcdf_aux to export some functions of libnetcdf.
* Add a new error NC_EFOUND as the complement of NC_EEMPTY.
* Add tracing support to nclog and use it in libnczarr.
* Modify the zmap interface to support the writeonce semantics of zip.
* Create a new s3util.c to support a variety of S3 auxilliary functions.
* EXTERNL'ize a number of functions so they can be used in s3util.
* Add support for the S3 ListObjects CommonPrefixes mechanism
  to improve search.
* Add experimental support for running nczarr X s3 tests against
  the actual Amazon S3 cloud.
2021-01-28 20:11:01 -07:00
Ward Fisher
f23fe5f6d3
Merge pull request #1939 from DennisHeimbigner/actionzarr.dmh
Enable nczarr testing in github actions.
2021-01-27 13:51:19 -07:00
Dennis Heimbigner
480f00bc19 disable run_chunkcases 2021-01-27 11:44:53 -07:00
Dennis Heimbigner
911d0a5deb Enable nczarr testing in github actions.
Changes:
1. add "use_nczarr: [ nczarr_off, nczarr_on ]" to matrix
2. add libzip-dev to the apt installs (might need caching).
3. convert deprecated "--enable-netcdf-4" to "--enable-hdf5" (also for cmake)
2021-01-27 11:30:48 -07:00
Ward Fisher
025fb7b6fe
Merge pull request #1937 from rkouznetsov/master
Fix for :60 seconds in ncdump
2021-01-26 14:35:30 -07:00
Ward Fisher
793d2d8c15
Merge pull request #1933 from DennisHeimbigner/dap4fixes.dmh
Improve operation of the DAP4 code and fix bugs
2021-01-26 12:30:30 -07:00
Ward Fisher
8f908db1f3
Merge pull request #1926 from DennisHeimbigner/dap4retest.dmh
Enable selected DAP tests previously disabled.
2021-01-26 12:30:00 -07:00
Ward Fisher
5afe43639a
Merge pull request #1734 from avalentino/fix-hdf5-zlib-check
Fix HDF5_ZLIB check
2021-01-26 11:48:02 -07:00
Ward Fisher
52011297f3
Merge branch 'master' into fix-hdf5-zlib-check 2021-01-26 11:47:52 -07:00
Ward Fisher
8db5519472
Merge branch 'master' into dap4retest.dmh 2021-01-26 11:46:12 -07:00
Rostislav Kouznetsov
74ef4eaa8c Fix for :60 seconds in ncdump
Ncdump reports times like "2015-03-12 12:19:60.000000" #1928
Imposes a microsecond accuracy on dumped time representation
2021-01-26 10:24:43 +02:00
Ward Fisher
7630f466a2
Merge pull request #1919 from gsjaardema/patch-47
Fix so setting of NC_FORMATX_NC3 in parallel is kept
2021-01-21 14:14:28 -07:00
Ward Fisher
dd6490babd
Merge pull request #1934 from ibaned/custom-mpi-includes
Ensure MPI works without a wrapper
2021-01-20 13:37:01 -07:00
Dan Ibanez
9ad3e49371 more missing includes for MPI without wrapper 2021-01-19 10:33:08 -07:00
Dan Ibanez
69182dc438 Ensure MPI header found without wrapper 2021-01-19 09:38:07 -07:00
Dennis Heimbigner
c2e25f7bec Forgot baselinehyrax in the dist 2021-01-14 21:49:34 -07:00
Dennis Heimbigner
a8b77099d8 turn off actions on push 2021-01-14 21:40:04 -07:00
Dennis Heimbigner
97ce621091 Improve operation of the DAP4 code and fix bugs
re: esupport 31942

* Add a new set of remote tests based on using the opendap hyrax server
* Re-enable --enable-dap-remote-tests as default on
* Make it possible to query the DMR separate from the DAP
  so that it is possible to delay reading data until it is actually
  requested. This make things like ncdump -h much more efficient.
* Fix handling of <Map>s in DMRs.
* Fix some memory leaks
2021-01-14 21:39:08 -07:00
Ward Fisher
af8fd51a37
Merge pull request #1930 from DennisHeimbigner/unmismatch.dmh
Make fillmismatch the default for DAP2 and DAP4
2021-01-08 16:07:25 -07:00
Dennis Heimbigner
a27283e0e6 fix test cases 2021-01-07 19:37:03 -07:00
Dennis Heimbigner
016fd578b3 Merge branch 'master' into unmismatch.dmh 2021-01-07 18:30:57 -07:00
Ward Fisher
21ea018d4a
Merge pull request #1927 from DennisHeimbigner/nczarr_opt2.dmh
Final NCZarr optimizations (for now)
2021-01-07 17:26:52 -07:00
Dennis Heimbigner
3f11e0395d fix tst_fillmismatch.sh 2021-01-07 14:22:45 -07:00
Dennis Heimbigner
5e5ff8ece9 Make fillmismatch the default for DAP2 and DAP4
re: https://github.com/Unidata/netcdf-c/issues/1614

NetCDF has a requirement that the type of a _FillValue attribute
be the same as the containing variable.  However, it is clear
that too many servers do not honor this requirement.  So, change
the default for DAP2 and DAP4 to allow fill mismatch.
2021-01-07 13:17:53 -07:00
Dennis Heimbigner
beba1c5b90 remove lgtm alert 2021-01-06 14:26:33 -07:00
Dennis Heimbigner
93e9d92778 More NCZarr optimizations
* Replace wholevar with more useful wholechunk optimization
* Add optimization to read multiple values at one time
* Replace NCDEFAULT_get/put_vars with native nczarr versions.
* Clarify chunk projection computations
* zdebdispatch.h
* Add more chunking test cases and re-enable run_chunkcases
* If !szip, then suppress deflate interference test
* Make H5Znoop(1) filter produce more information
* cleanup bzlib.c API
2021-01-06 13:35:59 -07:00
Dennis Heimbigner
5b98a2bc36 Enable selected DAP tests previously disabled.
* Turn back on the DAP2 remote tests, but leave DAP4 remote tests disabled.
* Turn on selected non-remote DAP4 tests
* Replace d4crc32 with the equivalents in libdispatch
2021-01-06 11:23:52 -07:00
Ward Fisher
08da6403c1
Merge pull request #1920 from timgates42/bugfix_typo_maximum
docs: fix simple typo, maximim -> maximum
2021-01-05 14:38:12 -07:00
Ward Fisher
f474e6d692
Merge pull request #1925 from DennisHeimbigner/filterorder.dmh
Add tests for filter order on read and write cases
2021-01-04 16:11:53 -07:00
Dennis Heimbigner
09ab1e4800 undebug workflow 2020-12-30 13:31:07 -07:00
Dennis Heimbigner
2ce6b0b5c8 Fix CMake bug 2020-12-30 13:30:12 -07:00
Dennis Heimbigner
efd905a323 Add tests for filter order on read and write cases
re: https://github.com/Unidata/netcdf-c/issues/1923
re: https://github.com/Unidata/netcdf-c/issues/1921

The issue was raised about the order of returned filter ids
for nc_inq_var_filter_ids() when creating a file as opposed
to later reading the file.

For creation, the order is the same as the order in which the
calls to nc_def_var_filter() occur.
However, after the file is closed and then reopened for reading,
the question was raised if the returned order is the same or the reverse.
In fact the order is the same in both cases.

This PR extends the existing filter order testcase to check the create
versus read orders. This also required changing the H5Znoop(1) filters
in the plugins directory.

Misc. Unrelated Changes
1. fix calls to fdopen under windows
2. Temporarily suppres the nczarr_tests/run_chunkcases test
   since it seems to be causing problems with github actions.
2020-12-29 20:12:35 -07:00
Dennis Heimbigner
e3da84c835 rebuild 2020-12-28 13:52:14 -07:00
Dennis Heimbigner
344b8f36a9 update-workflows-again 2020-12-28 13:41:38 -07:00
Dennis Heimbigner
52366cf998 update workflows 2020-12-28 12:59:22 -07:00
Tim Gates
451230cf03
docs: fix simple typo, maximim -> maximum
There is a small typo in libnczarr/zvar.c.

Should read `maximum` rather than `maximim`.
2020-12-28 11:21:29 +11:00
Ward Fisher
ad6bff35c3
Merge pull request #1907 from nokutu/patch-1
Fix build on Windows with clang-cl
2020-12-22 16:53:57 -07:00
Greg Sjaardema
d67b8c47ea
Fix so setting of NC_FORMATX_NC3 in parallel is kept
If the user is opening a existing file for appending (NC_WRITE) in parallel and the file is in CDF5 format, the `NC_interpret_magic_number()` routine clears the `model->impl` setting of `NC_FORMATX_PNETCDF` which was set in `NC_omodeinfer` (See lines following the `done:` label in that routine which specifically set the `impl` if `useparallel` is true.)

This setting then gets overwritten when `NC_interpret_magic_number` is called which sets the `model->impl` back to `NC_FORMATX_NC3`.  This can (did) cause problems with parallel output as the `NC3` format does not correctly handle parallel writing but the `PNETCDF` does.

Not sure if this is the best place for the test, but it did fix the parallel write issues I was seeing...

If you need more details on what is happening, let me know.  But a restatement at a higher level is that I was calling `nc_open_par` with `NC_WRITE` and `NC_64BIT_DATA` mode and the existing file has `CDF5` for the magic number.  However, the dispatcher was being set to `NC3_dispatch_table` instead of `NCP_dispatch_table` which is the dispatcher which had been chosen for the original creation of the file being appended to.

I was then getting zeroes in the data being written to the vars since NC3 wasn't correctly handling multiple MPI ranks writing to different parts of the same variable...
2020-12-22 15:26:33 -07:00
Ward Fisher
19f2c27449
Merge pull request #1918 from gsjaardema/patch-47
Fix detection and use of SZIP library
2020-12-21 13:06:47 -07:00
Ward Fisher
2b0b676eb3
Merge pull request #1917 from DennisHeimbigner/nczarr_misc2.dmh
Fix some additional edges cases for mapping slices to chunks
2020-12-21 13:05:40 -07:00
Greg Sjaardema
29d37adc3d
Fix detection and use of SZIP library
Potential fix for #1915
2020-12-21 08:25:37 -07:00
Dennis Heimbigner
90f20eb95b debug 2020-12-20 20:37:01 -07:00
Dennis Heimbigner
3e55e89bda retry2 2020-12-20 20:16:08 -07:00
Dennis Heimbigner
4614690d61 Fix some additional edges cases for mapping slices to chunks
The code for mapping slices to chunks is wrong for some cases.
Fix code and add additional chunking tests to cover edge cases.
2020-12-19 21:17:46 -07:00
Jorge López Fueyo
579ff19e8e Fix build on Windows with clang-cl 2020-12-19 16:13:10 +01:00
Ward Fisher
5e5b8f88da
Merge pull request #1914 from DennisHeimbigner/dupcode.dmh
Remove some potentially harmful duplicate code
2020-12-18 10:08:56 -07:00
Ward Fisher
5ef558169e
Merge pull request #1916 from gsjaardema/patch-46
Fix CMake build so netcdf_meta.h has correct form
2020-12-18 09:11:24 -07:00
Greg Sjaardema
143c191898
Fix CMake build so netcdf_meta.h has correct form
The `NC_HAS_MULTIFILTERS` line in `netcdf_meta.h` was not of the correct form  -- showed as
```
#define NC_HAS_MULTIFILTERS
```
Instead of the better form:
```
#define NC_HAS_MULTIFILTERS 0  (or 1 if enabled)
```
2020-12-17 16:13:39 -07:00
Dennis Heimbigner
b0990a24d5 Remove some potentially harmful duplicate code 2020-12-17 12:52:35 -07:00
Ward Fisher
c612db3b1a
Merge pull request #1913 from DennisHeimbigner/nczarr_misc.dmh
Additional Fixes to NCZarr
2020-12-17 10:35:01 -07:00