forked from OPENDAP/bes
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
1139 lines (810 loc) · 46.1 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
### News for 3.20.8
#### NGAP & DMR++ Improvements
* The dmr++ production chain: get_dmrpp, build_dmrpp, check_dmrpp, merge_dmrpp, and
reduce_mdf received the following updates:
- Support for injecting configuration modifications to allow fine tuning of the
dataset representation in the produced dmr++ file.
- Support for HDF5 COMPACT layout data.
- Optional creation and injection of missing (domain coordinate) data as needed.
- Endian information carried in Chunks
- Int64 support
- Updated command line options and help page.
* Improved S3 reliability by adding retry efforts for common S3 error responses that
indicate a retry is worth pursuing (because S3 just fails sometimes and a retry
is suggested).
* Improved and more transparent error handling for remote access issues.
* Migrated the service implementation making parallel requests using multi-cURL to
the c++11 std:async and std:future mechanism.
* Added caching of S3 “effective” URLs obtained from NGAP service chain.
* Implemented support for EDL token chaining.
* New implementation of ngap restified path parser that is (almost) impervious to
the the key value content in the path.
* Implemented the SuperChunk optimization for mass acquisition of required, consecutive
chunks.
#### BALTO
* Updated JSON-LD content of the server’s Data Request Form pages so that it is (once
again) in keeping with the (evolving) rules enforced by the Rich Results page which
is part of Google’s Dataset Search
#### DAP4
* AsciiTransmit supports DAP4 functions
* Group support in fileout netcdf-4
#### General
* End Of Life for CentOS-6 Support - It’s been a long road CentOS-6, but NASA has
given us the OK to drop support for you just days before your nominal end of
life. On to the next std::future.
* Dropped the “longest matching” Whitelist configuration key in favor of a multiple
regular expressions configuration using the new AllowedHosts key.
* Consolidation of internal HTTP code and caching for all services. This means more
consistent behavior and error handling everywhere the server has to reach out for
something.
* Introduced log message types: request, error, info, verbose, and timing which all
log to BES.LogName/. Each type is identified in the log and has a “fixed” format
that can be reliably parsed by downstream software.
* Updated GDAL handler.
* SonarCloud and /or Snyk is now a blocking step for all Hyrax component PRs
* Our Docker images have been updated to utilize ncWMS-2.4.2 which is compatible
with current Tomcat security measures. This means ncWMS2 is working again…
* Dynamic Configuration - This feature is currently a proof-of-concept idea and is
disabled with a compiler macro. To become an actual feature it will need to be
implemented in a much more thoughtful and efficient manner. Which we will be happy
to do so if there is sufficient interest!
### News for 3.20.7
* Hyrax can generate signed S3 requests when processing dmr++
files whose data content live in S3 when the correct credentials
are provided (injected) into the server.
* For configurations that require Hyrax to authenticate to access various
remote resources, Hyrax can now utilize ~/.netrc (or a netrc file may
be specified in site.conf) and Hyrax will use the appropriate credentials,
if they are present.
* The get_dmrpp script for dmr++ production has been enhanced with better
configuration options and built in QC tests for inventory along with
a simple value test.
* The get_dmrpp script will default to using a template string for the value
of the dmrpp:href URL when a URL is not provided with a -u switch. This
allows the URL to be injected later.
* We fixed a problem with fill values by converting the FillValue type to
the data type of the associated variable.
* Fileout NetCDF has a new configuration key, FONc.NoGlobalAttrs that can
be used to suppress global attributes.
#### hdf5_handler
* The CF option support is enhanced.
* Added support for correctly generating dmr++ files.
* Enhanced support to handle netCDF-4 like HDF5 files and general two
dimensional latitude and longitude files.
See the modules/hdf5_handler/ChangeLog for details.
News for 3.20.6
Notable Bugs Fixed:
- Memory leak fixed and unneeded copy removed in awsv4 code
- CovJson patch.
- ncml_handler: When an NCML aggregation named a dataset that the server could
not read... crash. Fixed.
- Server cache stabilization
Features:
- Added (alpha) support support for server authentication credentials:
- - Environment injection support for besstandalone and besd
- - A credentials configuration file for multiple sets, in which credentials
are associated with URL prefix's and multiple creds can be defined in a
bes.conf environment.
- Combined Logs: The server can now be configured to add the OLFS request log
content to the BES log.
Performance Improvements
- No DAS construction for data response.
Tickets closed during this release
https://opendap.atlassian.net/browse/HK-272 - MDS bug - LMT of data not used
https://opendap.atlassian.net/browse/HK-361 - More performant handling of contiguous data for the DMR++ handler
https://opendap.atlassian.net/browse/HK-376 - Have Travis add the source distribution tar balls to the S3 bucket.
https://opendap.atlassian.net/browse/HK-411 - Fix the --baselines feature of the libdap DMRTest
https://opendap.atlassian.net/browse/HK-413 - Persistent leaks in the libxml2-based NCML parser.
https://opendap.atlassian.net/browse/HK-404 - Address operational and efficiency issues in the MDS
https://opendap.atlassian.net/browse/HK-426 - Form interface bug - Structures do not work correctly - two issues
https://opendap.atlassian.net/browse/HK-439 - bes source release
https://opendap.atlassian.net/browse/HK-444 - Build initial version of 'ncdmr.cc' that can read the 'fnoc1.nc' and build a DMR.
https://opendap.atlassian.net/browse/HK-445 - Modify the simple ncdmr.cc code so that it includes the attributes.
https://opendap.atlassian.net/browse/HK-446 - Modify the ncdmr.cc code so that it correctly recognizes shared dimensions in 'fnoc1.nc' and 'coads_climatology.nc'
https://opendap.atlassian.net/browse/HK-447 - Modify the ncdmr.cc code so that it can work with netCDF4 files that use groups.
https://opendap.atlassian.net/browse/HK-448 - Modify the ncdmr.cc code so that it can work with netCDF4 files that contain structures.
https://opendap.atlassian.net/browse/HK-449 - Integrate the ncdmr.cc code into the netCDF handler so that it is used for the DMR response.
https://opendap.atlassian.net/browse/HK-454 - the dmrpp_module is unable to build a dmr++ for the test file data/dmrpp/grid_1_2d.h5
https://opendap.atlassian.net/browse/HK-456 - Install the BES RPM package built from a PR and start the BES from that install. Check for failure.
https://opendap.atlassian.net/browse/HK-457 - The class BESRegex is utilized in a way that is incompatible with the underlying implementation. FIX
https://opendap.atlassian.net/browse/HK-458 - Web interface bug for Structures and Sequences
https://opendap.atlassian.net/browse/HK-459 - When Hyrax 1.16 runs, we see some error messages 'leaking out of stderr'
https://opendap.atlassian.net/browse/HK-472 - BESInternalError Exception thrown by the NcML handler not handled properly
https://opendap.atlassian.net/browse/HK-473 - Implement combined olfs/bes log.
https://opendap.atlassian.net/browse/HK-474 - BES 3.20.5 memory errors
https://opendap.atlassian.net/browse/HK-485 - Modify the CI/CD process to make the docker image
https://opendap.atlassian.net/browse/HK-492 - Review the Travis activities for olfs, bes, and libdap
https://opendap.atlassian.net/browse/HK-537 - Reported problem in fileout_netcdf associated with _FillValue in Ocean Color dataset
https://opendap.atlassian.net/browse/HK-574 - Memory leak in AWSV4
News for 3.20.5
Improved and fixed bugs in the the CovJSON response format
(contributed by Corey Hemphill <[email protected]>).
Added support for c++11 and c++0x builds including tests in
configure that look for those options and use c++11 over c++0x.
This works with the stock compiler on CentOS 6 .
We have added much more support for S3. Data can now be served
from S3 without transferring whole files (Hyrax supports subset
in-place) and without reformatting the data. This version of Hyrax
supports configuration of data already in S3 as well as files
still on spinning disk. See the README.md file in
bes/modules/dmrpp_handler/data
Performance improvements and bug fixes to the XML parsers.
Added a fix from [email protected].
Netcdf file responses were not compressed when they should have been
if the dataset had Structures. Fixed by patching FONcStructure as Aron
suggested.
We have added experimental support for STARE (Spatio Temporal
Adaptive-Resolution Encoding) as part of our work on NASA ACCESS
grant 17-ACCESS17-0039.
We have added support for Dataset crawler/indexer systems that
use JSON-LD as part of our work on NSF grant #1740704.
The FreeForm handlers now support regular expression matching
when looking for format file.
News for 3.20.4
Hk-351 Improved Jpeg2000 and GeoTiff responses.
HK-352 Improved Jpeg2000 and GeoTiff responses.
HK-22 Repaired maximum response size limits feature.
Ironed out a number of issues with sonar scan builds.
News for version 3.20.3
Multiple bug fixes (See ChangeLog for specifics)
HK-320 fixed - libcurl fails when called from the bes daemon on OSX
HK-275 fixed - bes cmdln tests fail on master for the Travis build
HK-285 fixed/completed - The BES Centos 7 RPM as packaged does not
support `systemctl enable bes`
Created docker build for debian packaging
HK-304 Created docker build for debian packages.
News for version 3.20.2
HK-40 and HK-247 fixed - Renaming dimensions using NCML now works correctly
for aggregations.
Added automatic generation of site maps, including 'virtual' catalogs.
HK-258 fixed/completed - Now the roi() function will work for variables with
more than two dimensions. If the roi() function's bounding box has a different
number of dimensions than a variable, it adapts, applying the b-box to the
dimensions that correspond and not constraining the ones that don't.
News for version 3.20.1
Added server side function 'bbox_comb' that provides a way to combine to
bounding box (with dimensions M and N, respectively) to a single bbox with
dimensions M+N.
Fixed the roi() function so that it's more flexible about the bbox dimensions
and variable dimensions (it allows some variables to have different dimensions
than the bbox - the extra/unmatching dimensions are now ignored).
Fixed the MDS install error in the RPM packages
Added support for continuous delivery for CentOS 6 and 7 and Ubuntu Trusty.
Added a BES catalog for remote directories visible using Apache httpd. Currently
in the developer build only.
Fixes for the DMR++ handler - it now recovers from the odd '500' errors
that S3 returns (about 1 in 6,000 requests). Some other bugs in teh DMR++
code were also fixed - see the ChangeLog.
News for version 3.20.0
For more information about the new features and bug fixes, see README.md
* Updates for the HDF4 and HDF5 handlers in addition to bug fixes for other
handles as noted in the README.md file.
* Site-specific configuration
The BES uses a number of configuration files, and until now, a site has to
customize these for their server. Each server installation would overwrite
those files. No more.
* The MDS
A new cache has been added to the BES for Metadata Responses (aka, the MDS
or MetaData Store). This cache is unlike the other BES caches in that it is
intended to be operated as either a 'cache' or a 'store.' In the latter case,
items added will never be removed - it is an open-ended place where metadata
response objects will be kept indefinitely. The MDS contents (as a cache or
a store) will survive Hyrax restarts.
* COVJSON Response
For datasets that contain geo-spatial data, we now provide the option to
get those data (and related metadata) encoded using the covjson format.
(See https://covjson.org/). Thanks to Corey Hemphill, Riley Rimer, and
Lewis McGibbney for this contribution.
* Improved support for data stored on Amazon's S3 Web Object Store
Hyrax has been about to work with data stored on S3 by copying those datasets
to a local cache for some time. With Hyrax 1.15 we have added support for
subset-in-place for HDF5 and NetCDF4 data files.
We welcome feedback on this new feature.
* Improved catalog support
We have generalized the BESCatalog system so that it is much easier to use.
As an example of new Catalog sub-system's ease of use, we have implemented a
new module that reads information about datasets from NASA's Common Metadata
Repository (CMR) and uses that to display a Virtual Directory for NASA data
This software is currently available in source form only - contact us if you
would like to extend the BES Catalog system for your own data collections.
* Bug Fixes
About 40 bugs have been fixed for this release. See README.md
News for version 3.19.1
Logging Improvements
- HYRAX-548: introduce copytruncate directive in besd.logrotate,
remove brute-force stop/start
- Log only one line per get command. This can be switched back to
the 'three-lines-per-get' mode. using compile-time switches. There
is also a way to trace which calls to the LOG() and VERBOSE() macros
are responsible for which lines in the log. And there is an ERROR()
macro to call out that an error is being logged. See the ChangeLog for
more information.
- As per the above, now, when logging is not verbose, there is only about
one line per request (more for errors). Turning on verbose mode go back
to the old way of logging where each (internal) command run by the BES
is explicitly logged.
- Switched to ISO8601 date-time; UTC is the default.
Can use local time in the logs using BES.LogTimeLocal
in bes.conf. The old date format is still in the code and
can be used by #undef the compile-time switch ISO8601_TIME_IN_LOGS.
Bug Fixes
- Fixed the integration tests in bes/cmdln.
HYRAX-248 Fixed the GeoTiff and JPEG2000 responses; in some
cases the raster output was upside down.
HYRAX-263 Geotiff output appears to have the latitude axis inverted.
HYRAX-283 fileout geotiff doesn't work for NCEP dataset
HYRAX-294 Make this function (scale_grid) work correctly when
subsetting an array drops it down to 2D
HYRAX-309 Test the geo functions with real data
HYRAX-362 Make the GeoTiff (GDAL) handler work with NCML aggregations
HYRAX-432 WCS-2.0 war file/ deployment is broken
HYRAX-458 Use of mkstemp/mkstemps in libdap and bes is bogus
HYRAX-465 The bes (travis) build is broken
HYRAX-491 Missing single source of truth for supported Format
HYRAX-507 Fix double quote problems with WCS constraint expression eval
HYRAX-529 Hyrax fails to start using "service besd start"
HYRAX-547 FreeForm handler fmt file for ASCII data with two header lines
HYRAX-548 logrotate.d in the release 1.13.4 RPM restarts bes and tomcat every day
Developer fixes
Interface Refactoring
BESInterface/XMLInterface improved, easier to grok. This affects only
people who write modules for the BES. It does not affect the behavior
of the BES in any way.
Specifically, streamline the BESInterface and BESXMLInterface classes
and how the DataHandlerInterface object is manipulated. Removed unused
fields, renamed confusing fields, removed unused formal parameters.
Removed useless typedefs from BESInterface. Removed init and end lists
from BESInterface. (as they are not used). Simplified class field name
changes Improved formatting for BESInterface and BESXMLCommand.
Added the 'hello_world' module into the BES's 'developer' build so
that people using our developer documentation can reference a handler
that works with the current version of the BES.
We have also added the DMR++ handler (see modules/dmrpp_module) the
regular source distribution. This code is not built as part of the
regular build, but it is part of the 'developer' build.
All the autotest dirs are now named 'tests'
News for version 3.19.0
Handler fixes:
HDF4 and 5 Handler fixes - summarized in those projects' NEWS file
hyrax-263 GeoTiff response axis order is correct (fileout_gdal
handler).
Refactored the software used to serve GeoTiff files (gdal_handler) so
it no longer keeps the GDALDataset handle open. This code was keeping
the GDALDataset handle open across calls to the RequestHandler when
returning data responses and this breaks the NCML handler.
Server function fixes:
hyrax-281: The scale_array() server function now works with 3D arrays.
hyrax-294: scale_grid() works when the grids are subset to 2D.
hyrax-417: Determine axis order for scale_grid() and scale_array()
functions.
Tests for the (new) range() function. range() returns information
about the max and min values of variable - much more efficient than
downloading the whole variable. This function also tests if a vector
is monotonically increasing or decreasing.
General fixes:
There were several functions/methods that made temporary files
(and used mkstemps, et c. to do so). These were refactored into
just one function.
Unit tests for the code were made more usable (hyrax-391)
Tests for the 'file locking cache' sub-system were added.
make distcheck now works without the cumbersome env var for configure
on Centos 7 and ubuntu 14. Centos 6 is still in the dark ages.
Removed unneeded classes in the BES framework (hyrax-378).
News for version 3.18.0
Bug Fixes:
- Patched a number of problems with production rules for RPM builds.
- Fixed BESFileLockingCache tests.
- Repaired (at least some of) the broken BES error logging.
- Repaired a number if timeout issues in the BES.
Features:
- hdf5_handler adds support for sinusodial projections.
- ncml_handler adds support for the aggregation and metadata
manipulation of remotely located datasets. This new capanbility
utilizes the exisiting gateway_handler and allows the ncml_handler
to aggregate anything the gateway_handler can read.
- Restructured the BES to a significant degree in order to streamline
release and development issues.
News for version 3.17.4
Bug fixes:
A bug with logrotate was crashing the server;
Hyrax-282 fixed (Aggregations crash the BES when a response as netcdf
or netcdf-4 is requested). This problem was actually that any Grid
subset so that only some of the elements are sent broke the netcdf
handler;
Patched the HDF4 handler code so that the source dist contains needed
testing scripts/templates.
News for Version 3.17.3
Added an in-memory cache for the handlers
Added a logrotate file to the rpm package
Added the Response Cache (which is really used for function responses only
at this point).
Fixed Hyrax-254. This bug caused random behavior when accessing
aggregations.
Fixed a problem with ASCII responses when one or more dimensions of an
N-dim array had only one element.
New edits for the HDF5 handler
News for Version 3.17.2
Minor changes for the source distribution (no changes to the software,
but a change to the build scripts).
News for Version 3.17.1
Added an in-memory cache that handlers can use to cache DDS, DMR, ...,
objects. The handlers have to be modified to use this, but the
performance benefits are potentially huge. See bes/dap/ObjMemCache and
the netcdf_handler for the code and an example of its use.
Server functions can now return multiple variables and have then
appear as discrete things without being 'wrapped' in a parent
Structure variable. They do this by using a structure name that ends
with '_unwrap'. This means that server functions can return values in
a way that is usable by clients built using the netcdf-library.
Patch for gcc-6 from Orion Poplawski.
News for Version 3.17.0
BES Error responses now better reflect the actual errors - constraint
expression parse errors are reported as such, for example. The server
returns sensible error responses that the newly-modified OLFS can
interpret and use to send informative messages back to a (human) user.
The BES now supports a usable timeout feature along with the machinery
to accept the timeout duration from the OLFS using a 'context'. The BES
will (optionally) cancel the timeout period once data transmission starts
so the timeout covers only the BES's computation and not the time to
send a potentially large response over a slow network. The context name
is 'bes_timeout' and the value is the timeout period in seconds.
New BES keys were added to control the timeout feature:
# BES.CancelTimeoutOnSend=true
# BES.TimeOutInSeconds=600
The BES now have a Timeout error code and uses a 'Timeout exception' to
signal that the current operation has exceeded the timeout period.
We've settled on multiple value returns using a DAP Structure. In the
BES/dap module we look for a Structure return with a certain name and
flatten it. Pretty crude, but it works and doesn't require much fancy
machinery. Rule: if a Structure's name ends with '_unwrap' then it will
be flattened.
Better support for doxygen (but sadly, not more actual documentation).
News for version 3.16.0
Major fixes/improvements to the caching code - Hyrax uses a number of
different caches. Now they are all correctly synchronized. Handler developers
should use bes/dispatch/BESFileLockingCache when they need to make a
special-purpose cache for their own use. Contact us for details if needed.
Note that caching function results will be redone in the next release.
The BES now supports multi-homed hosts with a new Key that specifies the
IP on which the server should listen (BES.ServerIP).
Fixed an issue where SIGPIPE was 'lost'. This fixes the mysterious
'runaway' BES issue that was happening sometimes, particularly when
a client was stopped while making a large request.
UUID library issues may now be behind us for good...
An obscure bug in the XML command processing code caused elements to
be returned out of order in some cases. Fixed.
We removed the BES performance timing/testing data files and put them in
their own github project (opendap/bes_timing). This moves a number of
huge data files out of the bes project proper, reducing the time to run
git clone.
News for version 3.15.1
Bug fixes.
News for version 3.15.0
This version of the BES includes many build fixes including better
support for the 'standard' build where only need modules are built.
Thanks to Patrick West.
The code in bes/dap now frees data once it has been sent using libdap's
serialize() methods. This can result in dramatic reduction in memory
use. However, it requires libdap 3.15.0 or greater.
Combined with the above fix, other improvements in libdap in support of
parallel I/O and matching improvements in the NCML handler, Hyrax using
this version of the BES can build and return aggregations is less time,
with far less latency and much less total memory. These improvements are
directed at JoinNew aggregations.
News for version 3.14.0
This version of the BES incorporates all the 'standard' handlers
and includes support for DAP4. It requires libdap 3.14. Included in
this is the ability to build a RPM that, using some packages from the
EPEL RedHat/CentOS/Fedora repo, provides a binary release for all of
Hyrax. This version of the bes rpm contains the word 'NASA'; the plain
version still uses EPEL but does not contain handlers like gdal (used
to read GeoTIFF and JPEG2000) or HDF4 w/HDFEOS2. The handlers
included in the 'NASA' RPM include the gdal and HDF4/HDFEOS2 handlers.
The besd script has been fixed and is now installed correctly by the
RPM package so that the bes can easily be configured to start at boot
time.
The code now builds using autoconf 2.63; automake 1.11.1 and libtool
2.2.6. These are the versions found on a RHEL 6 machine.
Added server functions: tabular(), roi(), bbox(), and bbox_union() for
use with the new Swath Aggregation features.
The built-in 'dapreader' handler can now be used to reduce
interdependencies between handlers when writing regression and
integration tests.
* Other Updates to handlers
The asciival handler was updated so that server functions will now
correctly return ASCII responses.
The HTML form was patched using a contribution from LARC.
fileout_json now handles arrays of strings properly.
The fileout_netcdf handler has a contributed fix from NSIDC:
Convert OPeNDAP Byte array data to NetCDF NC_SHORT The handler's
output currently interprets unsigned Bytes from OPeNDAP as signed
bytes (NC_BYTE). To avoid mis-representing data and retain
compatibility with NetCDF3/classic we need to convert/output this
data as a NC_SHORT.
The existing test data for fits utilizes signed integers which
shouldn't ever be a valid output from DAP2. The test data should be
validated/regenerated and the test re-enabled.
* New handlers
Added the new w10n handler to support w10n responses from the server.
Added the ugrid subsetting function handler. This server function can
be used to subset an unstructured grid (aka irregular mesh) as long as
that ugrid matches the specification being developed by ASA, inc. See
the online documentation for more information at docs.opendap.org.
http://docs.opendap.org/index.php/Server_Side_Processing_Functions
* Handlers that support DAP4
csv_handler
freeform_handler
gdal_handler (geotiff, jpeg2000, other formats)
netcdf_handler
hdf5_handler
fits_handler
News for version 3.13.2
Changes to the cache software.
News for version 3.13.1
Fixed a bug where too many accesses to cached files would cause the
BES to 'hang'. The cached files were the result of uncompressing
gziped files. This is the only change in this bug-fix release and the
ABI of the BES has not changed, so there's no need to update the
handlers.
News for version 3.13.0
Two significant bugs have been fixed in this version of the BES. Trac
tickets 2176, 2158, 2139 and 2025 have been fixed. These correspond to
problems building the code under OSX 10.9, requests with really long
constraints, and a problem where the beslistener daemon failed to exit
after the front end asked it to. The latter problem could result in
'zombie' daemon processes that would not go away until the server was
shutdown.
Also in this update: Updates to the copyright headers and a patch from
Ezequiel Lara Gomez for long options.
News for version 3.12.0
There are several changes to the BES for this release.
The DAP operations have been moved to their own module, reducing the
amount of stuff hanging around in dispatch. Along with this change, new
functionality for server-side functions has been added to the BES's
DAP module. This supports, in conjunction with changes in the OLFS,
the function syntax developed by COLA and used by the FTDS server. The
BES can now run server functions and cache the results, providing a
way for clients built using the netCDF library client toolkits to
'open' such a URL and then make repeated subsetting requests against
the result of that function.
Note that libdap now supports new server function special forms that
provide a way to pass large arrays into the server as constants in the
constraint.
Also note that we've redone how server functions are defined, making
it simpler to write them correctly. The default set of functions is
now bundled in a separate module (see the 'functions' directory).
News for version 3.11.0
Added a new method to the BESDDSResponse and BESDataDDSResponse classes
so that the contained DDS/DataDDS object can be set/changed by a handler.
This is used by the GDAL handler so that it can use a version of DDS that
it has specialized.
News for 3.10.4
Merged to trunk; tagged.
News for version 3.10.2
Changed the way the RPM packages install so that the 'bes' group has
write permissions on both /var/log/bes and /var/run/bes. The latter is
not strictly needed, but might be useful at some point.
Changed the default port for the BES to 10022 dues to conflicts on CentOS.
Also, fixed the way the server checks for conflicts at runtime and made the
error messages more informative.
There is no version 3.10.1
News for version 3.10.0
Added support for the Hyrax Admin Interface (HAI). The server now
supports a set of commands that can be used to start and stop the
server; load/reload/edit the configuration files; look at logging
output; and toggle debugging output on-the-fly.
Added support for response size limits.
News for version 3.9.2
Bug fix in PPT released in this version.
News for version 3.9.1
The CSV handler was moved out of this component and made its own
handler, with all the stuff that implies (it's own RPM, source dist,
etc.). At the same time a new tool for building tests has been added -
look in the code for the dapreader classes. Email us for more
information.
Bug & Build fixes fixes.
The default location of the bes.log file is now $prefix/var/bes.log
Support for the DAP3.3 Keywords (an experimental feature).
News for version 3.9.0, 14 Sep 2010
Moved BES.Catalog.catalog.RootDirectory parameter to bes.conf so users
have to edit only one conf file for initial configuration
Allowing for conf files to include any required module configuration
files to be loaded first. For example, if ncml module requires dap
module, then the ncml module can include the dap module so that it gets
loaded and configured first. Also takes care of a problem where a
configuration file is included multiple times.
Fixed a problem where when transmitting a response any exceptions were
being absorbed and a generic exception thrown in its place.
Various bug fixes released in this new version.
News for version 3.8.4, 24 May 2010
Bug fix. IPC bug triggered by an errant handler. Likely the cause of the
runaway process bug which could be triggered by crawlers.
News for version 3.8.3, 04 May 2010
Fixed problem in logging where the actual command being executed
wasn't being logged to the log file.
News for version 3.8.2, 06 April 2010
Fixed bug in BESKeys where = was adding to a definition instead of
replacing.
Logging the received requests to the BESLog log file. Was just saying
[xml document]
News for version 3.8.1, 11 March 2010
Fixed potential bug in BES Uncompression Cache code when failure to
uncompress a file and checking size of current cache.
News for version 3.8.0, 2 February 2010
Changed the way BES configuration is modified for the different
handlers. Before, changes were made using either a target to make (make
bes-conf), or running a script (bes-x-data.sh), or making changes
directly to bes.conf. This is no longer the case. The file bes.conf will
have miner modifications (administrator email address, user and group
BES should run as, etc...) and that's it. All module configuration will
be in their own files in the etc/bes/modules directory. The bes.conf
file will include module configurations in the directory that end in
.conf. Any files that end with .conf in that directory will be loaded.
This way, bes.conf will never need to be modified after installation.
The bes.conf files that are already out there will still work. This is
the new, preferred method of configuration and we recommend that you
move to this format.
Added a new besd script that can be used to run the BES at boot/reboot
using chkconfig on linux systems. Please see besd script for more
information and ask your system administrator about getting this
installed in the proper location.
Added a new command to test error handling by clients <showError type="x" />,
where x is 1-5 and represents the following:
1. Internal Error - the error is internal to the BES Server
2. Internal Fatal Error - error is fatal, can not continue
3. Syntax User Error - the requester has a syntax error in request or config
4. Forbidden Error - the requester is forbidden to see the resource
5. Not Found Error - the resource can not be found
Removed all old OPeNDAP CGI server 3 references and files.
DataDDX support added to the BES in the dap module.
Cleaned up doxygen documentation for the BES.
Changed all tests from dejagnu to autotest. Changed bes/dispatch unit
tests to use CPPUNIT.
News for version 3.7.2, 8 April 2009
Memory leaks fixed.
News for version 3.7.1, 16 March 2009
Many many memory issues resolved.
Fixes for constraint expression parsing issues.
The service interface is now supported.
News for version 3.7.0, 28 Jan 2009
The BES now supports TCP Wrappers (from a patch sent in by
[email protected] - thank you).
In the past the BES used a SQL-like command language but returned XML
responses. This seemed odd, so we've adopted a new syntax where the BES
accepts XML documents as commands (and still returns XML responses). The XML
command/documents hold XML that will look very familiar to long-time BES users
but a big change is that more than one command can be included in the
document, reducing the number of messages needed to get many of the DAP
responses. The upshot is that the OLFS <--> BES communication is much more
efficient.
TCP window tuning is now provided. The user is allowed to set the tcp window
sizes for buffer sizes by passing the receive and send buffer sizes to the
tcp connection call.
The BES Chunking scheme is now set to use a really big buffer if you want -
About 2 GB. There have been a number of fixes to the chunking code (See
ChangeLog and/or SVN for details).
News for version 3.6.2, 25 June 2008
Changed default buffer size in PPT to 65535. This should create fewer sends
and receives in the server and client code for responses making response
times faster.
Added a BESStopWatch class to help with timings between client and server,
and for any other debugging required in the BES.
Modified the BESReporter interface to allow for easier iteration through
containers in get commands.
Other minor bug fixes and enhancements to code and configuration. Refer to
the ChangeLog file for more information.
News for version 3.6.1, 11 April 2008
Bug fixed in new PPT chunking scheme
Other minor bug fixes and enhancements to code and configuration. Refer to
the ChangeLog file for more information.
News for version 3.6.0, 29 February 2008
Changed a parameter name in the bes configuration file for memory
management that contained a typo. If you receive an error "cannot determine
memory keys" then you need to update the parameter MaximunHeapSize to
MaximumHeapSize.
BES clients and servers now communicate using HTTP style chunking rather
than using terminating tokens. This greatly improves performance of the
clients and servers in that they no longer need to step through any data
received to find the terminating token. Please refer the release notes on
docs.opendap.org for Hyrax 1.4 for more information.
Exceptions/Errors have been re-written and consolidated. Changed the name of
BESException to BESError and now have only five derived classes for the
different types of errors (BESInternalError, BESInternalFatalError,
BESForbiddenError, BESNotFoundError and BESSyntaxUserError.) Each error class
has a type number associated with it to make it easier for clients to
classify the given error. Please refer to the release notes on
docs.opendap.org for Hyrax 1.4 for more information.
BES catalog and data access now includes an option to follow symbolic links
or not, similar to what is used in Apache. In the BES configuration file
is the new parameter BES.*.FollowSymLinks=No|Yes If set to yes, then
container and catalog requests will follow symbolic links relative to the
document root. If set to no, then we won't follow symbolic links.
The response to a 'show catalog' request will return the elements of a
dataset (directory) in alphabetical order.
The 'set container' request now verifies the existence of the data container
whereas before it did not, leaving the error to be handled by the data
handler in the get command.
Added a new method to the container class to release the container. The
access method is used to gain access to the data container. For example, the
container may need to be uncompressed and cached. The release method would
release locks on the cached item.
Added a stand-alone application with a bescmdln interface for testing
purposes. Run just like bescmdln with the addition of a -c option for the
location of the BES configuration file to use. Can pass a command via the -x
option, or load commands from a file using the -i option, dump the output to
a file using the -f option, or run it interactively.
Added .pc files for package configuration.
Other bug fixes. Please refer to the ChangeLog for more details and the
release notes on docs.opendap.org for the list of tickets resolved in this
release.
News for version 3.5.3
New option to the BES control script (besctl) to specify the location of the
bes.pid file. This was needed for some binary releases as the prefix for
installation is /usr, but the pid files are located not in /usr/var/run but in
/var/run. If not specified, then it defaults to the prefix/var/run directory.
News for version 3.5.2
New options available to the BES control script (besctl) and therefor the
bes daemon and listener applications. The new options are:
-i <install_dir> -> installation directory of the BES
-c <configuration_file> -> location of the BES configuration file to use
hyraxctl script now available to run the entire hyrax installation. This
Hyrax control script uses the BES control script besctl to start and stop
the BES. Options passed to the hyrax control script are passed on to the
BES.
The BES now determines the location of the BES configuration file in the
following manner:
1. -c option passed
2. BES_CONF environment variable
3. Look in default locations /usr/local/etc/bes/bes.conf,
/etc/bes/bes.conf, /usr/etc/bes/bes.conf
The BES now checks the full path of a file/directory against the BES
configuration parameter BES.Catalog.<catalog_name>.TypeMatch. Before it
just checked the basename of the file/directory. This now allows us to
have TypeMatch parameters that include a directory name as part of its
regular expression. This was changed to facilitate the jgofs data handler,
where the file names do not have file extensions. For example, TypeMatch
could be something like "jg:.*\/jg\/.*;"
A regular expression test program is now available in the BES source and
binary releases called besregtest that will allow
administrators/developers to test the regular expressions specified in the
BES.Catalog.<catalog_name>.Include, BES.Catalog.<catalog_name>.Exclude,
and BES.Catalog.<catalog_name>.TypeMatch configuration parameters. Usage
is:
besregtest include|exclude|type "<regular_expression>" <string_to_test>
Multiple catalogs now works. If there is more than one catalog registered
then the request must include the name of the catalog followed by a colon.
For example: show catalog for "nc_catalog:/"; If there is only one catalog
then works as before.
Added context to debugging in the BESDEBUG macro. This allows us to turn
on and off debugging for different areas of an application, such as bes,
ppt, nc (for netcdf handler), h4 (for hdf4 handler), etc... For example:
BESDEBUG( "bes", << "some debug " << endl << someobj << endl )
Also modified the -d option passed to the bes control script (besctl) and
therefor the bes daemon and listener applications to take the name of the
debug file plus context to debug.
-d "./bes.debug,bes,nc,h4"
Uncompression of .Z (zip) files is now available along with the already
existing uncompression of bz2 (bzip2) and gz (gnu zip) files.
New regression test created under bes/cmdln to test netcdf, freeform,
hdf4, hdf5, and server side functions. Must have all of these modules
installed. To run the regression test you must have a BES running with the
above specified modules loaded, then go to the bes/cmdln directory and
type make bes-configuration-tests.
Updated the csv-handler example BES modules and the hello_world example
modules. In doing so updated the besCreateModule script and all of the
template files associated with it.
News for version 3.5.1
Ticket #928 fixed in ppt code to correct finding marker issue.
News for version 3.5.0
Decompressing data files and caching of the result has been completely
reworked. It's now faster and secure.
Now when the BES has only a TCP or UNIX socket specified in the bes.conf
file, it is not an error. Thus it's possible to configure the bes to use only
UNIX or TCP sockets. When using the BES with Hyrax, use TCP and run it behind
a firewall.
The BES was modified so that it's no longer possible to look at the contents
of the host computer's file system when asking for catalog information.
News for version 3.4.2
Added some security notes to the documentation and to the configuration file