BESInternalError Exception thrown by the NcML handler not handled properly

Description

When a request is made for 2019-07-28T07:45:43GMT|&|25124|&|get.info_page,dap2,/usr/share/hyrax/agg/disc2.gesdisc.eosdis.nasa.gov/TRMM_3B42_daily_Aggregation_1998.ncml, and exception is thrown in this code: (marked with // ***...). This is in DDSLoader.cc

The exception is likely caught inside the ncml_handler and processing continues, leading to a failure. The correct behavior is for a module to clean up and re-throw so the BES can recover by discarding the command in its top-most read-eval-respond loop. This might be where the error is trapped (modules/ncml_module/SaxParserWrapper.cc):

Fix this catching BESInternalError explicitly at the top of the catch() block and making sure we log that and then rethrow the exception so the BES can process it without trying to continue parsing stuff. Then retry the request.

Environment

None

Activity

Show:
Sam Lloyd
September 4, 2019, 5:30 PM

ran valgrind besstandalone -d cerr,ncml,cache2,ncml_verbose -c bes.test.conf -i ../bes_cmd.txt 2>&1 | tee ~/error.log

error log has been attached

James Gallagher
November 14, 2019, 9:49 PM

This problem was fixed in HK-474. The code was throwing an exception (from within DDSLoader::loadInto()) and then calling BESContainer::release() twice for the same container. Bad. Fixed.

Done

Assignee

James Gallagher

Reporter

James Gallagher

Labels

Fix versions

Time remaining

0m

Story Points

None

Priority

Medium
Configure