Commit Graph

7837 Commits

Author SHA1 Message Date
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
Scot Breitenfeld
ca3d8c10f4 fixed H5O_info_t incompatiblity with H5Oget_info_by_idx3 2021-01-07 14:30:05 -06: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
Dennis Heimbigner
6c9817b275 Update Release Notes 2020-12-16 21:47:38 -07:00
Dennis Heimbigner
d2316f866c Additional Fixes to NCZarr
Primary Fixes:
* Add a whole variable optimization -- used in the rare case that nc_get/put_vara covers the whole of a variable and the variable has a single chunk.
* Fix chunking error when stride causes whole chunks to be skipped.
* Fix some memory leaks
* Add test cases
* Add one performance test to nczarr_test/. This uses the timer utils from unit_test: timer_utils.[ch].
* Move ncdumpchunks utility from ncdump to nczarr_test

Misc. Other Changes:
* Make check for aws libraries conditional on --enable-nczarr-s3
* Remove all but one bm tests from nczarr_test until they are working.
* Remove another dependency on HDF5 from supposedly non-HDF5 specific code; specifically hdf5_log_hdf5.
* Make the BAIL2 macro be hdf5 specific and replace elsewhere with an HDF5 independent equivalent.
* Move hdf5cache.c to libsrc4/nc4cache.c because it is used by nczarr.
* Modify unit_tests so that some of them are run even if using Windows.
* Misc. small bug fixes and refactors and memory leaks.
* Rename some conflicting tests for cmake.
* Attempted to make nc_perf work with cmake and failed.
2020-12-16 20:48:02 -07:00
Ward Fisher
9a2c0efd14
Merge pull request #1912 from Unidata/gh-action.wif
Added an apt update stanza to the github action script.
2020-12-16 11:19:38 -07:00
Ward Fisher
bb2b864674 Added more updates 2020-12-16 09:34:42 -07:00
Ward Fisher
3e01272cee Added an apt update stanza to the github action script. 2020-12-16 09:19:21 -07:00
Ward Fisher
eba281a8d9
Merge pull request #1905 from Unidata/gh1740.wif
Fixing up PR 1740
2020-12-07 14:58:33 -07:00
Ward Fisher
66a2cd371a More tweaking. 2020-12-07 14:45:14 -07:00
Ward Fisher
3eec4d66cc Fix logic error. 2020-12-07 14:27:36 -07:00
Ward Fisher
6f5ba50881 tweak m4 detection. 2020-12-07 13:01:25 -07:00
Ward Fisher
6fafa6612c Merge remote-tracking branch 'origin/gh1739.wif' into gh1740.wif 2020-12-07 12:49:28 -07:00
Ward Fisher
b2924966b0
Merge pull request #1904 from Unidata/gh1753.wif
#1753 + Conflict Resolution
2020-12-07 12:44:49 -07:00
Ward Fisher
d58a21cb5f Removed dangling conflict info. 2020-12-07 12:18:30 -07:00
Ward Fisher
878866c039 Merge branch 'ncgenkw.dmh' of https://github.com/DennisHeimbigner/netcdf-c into gh1753.wif 2020-12-07 11:29:12 -07:00
Ward Fisher
e2e6f5f94b
Merge pull request #1903 from Unidata/gh1902.wif
PR #1902 + Github Actions
2020-12-07 11:21:40 -07:00
Ward Fisher
5fed325180 Cleaned up orphaned github action files, modified GA to run on PR instead of push. 2020-12-07 11:16:04 -07:00
Dennis Heimbigner
90fd1406bc Make use of clock_gettime be conditional.
Re: GH Issue https://github.com/Unidata/netcdf-c/issues/1900

Apparently the clock_gettime() function is not always available.
It is used in unit_test/tst_exhash.c and unit_test/tst_xcache.c.

To solve this, a number of things were changed:
* Move the timing code to a new file unit_tests/timer_utils.[ch]
* Modify the timing code to choose one of several timing methods
depending on availability. The prioritized order is as follows:
    1. If Windows, use the QueryPerformanceCounter mechanism else
    2. Use clock_gettime if available else
    3. Use gettimeofday if available else
    4. Use getrusage if available

Note that the resolution of 3 and 4 is less than 1 or 2.

Misc. Other Changes:
* Move the test in CMakeLists.txt that disables unit tests for WIN32 to unit_test/CMakeLists.txt since some unit tests actually work under Visual Studio.
* Fix some of the unit tests to work under visual studio
* Fix problem with using remove() in zmap_nzf.c
* Remove some warning about use of EXTERNL
2020-12-06 18:19:53 -07:00
Dennis Heimbigner
731d9bbb0b Merge remote-tracking branch 'Unidata/master' 2020-12-05 12:59:34 -07:00
Ward Fisher
4cf290dc0b
Merge pull request #1897 from DennisHeimbigner/oceanunavail.dmh
Disable use of opendap2.oceanbrowser.net
2020-12-04 16:11:47 -07:00
Ward Fisher
8caa2aa640
Merge pull request #1901 from Unidata/add-github-actions.wif
Add GitHub actions.wif
2020-12-04 16:11:25 -07:00
Ward Fisher
bfa8fde35e Temporarily disabled encoding test under cmake 2020-12-04 15:49:30 -07:00