Details

    • Type: Bug
    • Status: Done (View workflow)
    • Priority: Medium
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: ncml_handler
    • Labels:
      None
    • Epic Link:
    • Sprint:
      Datause-18.3.6 (Review)

      Description

      There are 72 errors; all are at libdap::Vector.cc:1209. (1212 for the testsuite.log where I added some instrumentation in Vector.cc). There are 96 instances of

      ncml_module::AggregationElement::processJoinNewOnAggVar

      48 in stack frame 10, and 48 in stack frame 11. The instances where it occurs in frame 10 are the stacks for the 'where it was allocated' and the instances where it occurs in frame 11 are the 'where the errant access took place' frames.

      So, there are 24 errors where

      processJoinNewOnAggVar

      is not in the call sequence, and these all seem to involve

      ncml_module::AggregationElement::processJoinExistingOnAggVar

      calls, also in frame 11 of the errant stack frame. These also appear in pairs - one for 'where the error happens' and one for 'where the memory was allocated.'

      Here's the traceback from one of the processJoinNewOnAggVar error stacks:

      ==75655==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x603000011004 at pc 0x00010eb8d3fe bp 0x7ffee180b9b0 sp 0x7ffee180b160
      READ of size 40 at 0x603000011004 thread T0
          #0 0x10eb8d3fd in __asan_memcpy (libclang_rt.asan_osx_dynamic.dylib:x86_64h+0x4f3fd)
      Provided dSYM: [/Users/jimg/src/opendap/hyrax_git/build/lib/libdap.25.dylib.dSYM/Contents/Resources/DWARF/libdap.25.dylib] does not match symbol owner 0x7fa087205b80
          #1 0x110793f39 in libdap::Vector::val2buf(void*, bool) Vector.cc:1212
          #2 0x11077d5e7 in libdap::Vector::m_duplicate(libdap::Vector const&) Vector.cc:116
          #3 0x110781733 in libdap::Vector::Vector(libdap::Vector const&) Vector.cc:297
          #4 0x1107cf385 in libdap::Array::Array(libdap::Array const&) Array.cc:164
          #5 0x119a988da in agg_util::ArrayAggregationBase::ArrayAggregationBase(agg_util::ArrayAggregationBase const&) ArrayAggregationBase.cc:56
          #6 0x119a87f84 in agg_util::ArrayAggregateOnOuterDimension::ArrayAggregateOnOuterDimension(agg_util::ArrayAggregateOnOuterDimension const&) ArrayAggregateOnOuterDimension.cc:70
          #7 0x119a8835c in agg_util::ArrayAggregateOnOuterDimension::ArrayAggregateOnOuterDimension(agg_util::ArrayAggregateOnOuterDimension const&) ArrayAggregateOnOuterDimension.cc:71
          #8 0x119a8889c in agg_util::ArrayAggregateOnOuterDimension::ptr_duplicate() ArrayAggregateOnOuterDimension.cc:85
          #9 0x1106800fd in libdap::DDS::add_var(libdap::BaseType*) DDS.cc:607
          #10 0x1199eade8 in ncml_module::AggregationElement::processAggVarJoinNewForArray(libdap::DDS&, libdap::Array const&, agg_util::Dimension const&, std::__1::vector<agg_util::RCPtr<agg_util::AggMemberDataset>, std::__1::allocator<agg_util::RCPtr<agg_util::AggMemberDataset> > > const&) AggregationElement.cc:867
          #11 0x1199b5db0 in ncml_module::AggregationElement::processJoinNewOnAggVar(libdap::DDS*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, libdap::DDS const&) AggregationElement.cc:801
          #12 0x11997b4d7 in ncml_module::AggregationElement::processJoinNew() AggregationElement.cc:420
          #13 0x119971320 in ncml_module::AggregationElement::handleEnd() AggregationElement.cc:217
          #14 0x119dbfb9f in ncml_module::NCMLParser::processEndNCMLElement(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) NCMLParser.cc:1186
          #15 0x119dc735b in ncml_module::NCMLParser::onEndElementWithNamespace(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) NCMLParser.cc:324
          #16 0x119f2b8c9 in ncmlSax2EndElementNs(void*, unsigned char const*, unsigned char const*, unsigned char const*) SaxParserWrapper.cc:242
          #17 0x7fff597e1d8e in xmlParseEndTag2 (libxml2.2.dylib:x86_64+0x37d8e)
          #18 0x7fff597e0440 in xmlParseElement (libxml2.2.dylib:x86_64+0x36440)
          #19 0x7fff597e005a in xmlParseContent (libxml2.2.dylib:x86_64+0x3605a)
          #20 0x7fff597e03f1 in xmlParseElement (libxml2.2.dylib:x86_64+0x363f1)
          #21 0x7fff597e2b7a in xmlParseDocument (libxml2.2.dylib:x86_64+0x38b7a)
          #22 0x119f1c9ae in ncml_module::SaxParserWrapper::parse(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) SaxParserWrapper.cc:338
          #23 0x119db1d0b in ncml_module::NCMLParser::parseInto(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, agg_util::DDSLoader::ResponseType, BESDapResponse*) NCMLParser.cc:185
          #24 0x119e33346 in ncml_module::NCMLRequestHandler::ncml_build_data(BESDataHandlerInterface&) NCMLRequestHandler.cc:297
          #25 0x10e62bc8f in BESRequestHandlerList::execute_current(BESDataHandlerInterface&) BESRequestHandlerList.cc:273
          #26 0x10e62a0a4 in BESRequestHandlerList::execute_each(BESDataHandlerInterface&) BESRequestHandlerList.cc:167
          #27 0x11023288c in BESDataResponseHandler::execute(BESDataHandlerInterface&) BESDataResponseHandler.cc:148
      

        Attachments

          Activity

            People

            • Assignee:
              ndp Nathan Potter
              Reporter:
              jimg James Gallagher
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: