Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-6996

PartitionedAggregationNode::Close() should not dump stack trace

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Duplicate
    • Impala 2.12.0
    • None
    • Backend
    • None
    • ghx-label-9

    Description

      A CTAS query with MEM_LIMIT=6GB hit the limit while in an AggregationNode. Upon processing the failure, the fragment instance that hit the MEM_LIMIT tries to allocate more memory, and repeatedly dumps the following error message and stack trace to Impalad log file, once per row.

      I0508 01:32:10.611563 40614 status.cc:55] Memory limit exceeded: FunctionContextImpl::AllocateLocal's allocations exceeded memory limits.
      Exprs could not allocate 3.00 B without exceeding limit.
      Error occurred on backend <redacted>.com:22000 by fragment b429287bdabe184:9e7b5e960000002c
      Memory left in process limit: 384.47 GB
      Memory left in query limit: -6947009.00 B
      Query(b429287bdabe184:9e7b5e9600000000): memory limit exceeded. Limit=6.00 GB Total=6.01 GB Peak=6.01 GB
        Fragment b429287bdabe184:9e7b5e960000002c: Total=2.76 GB Peak=2.76 GB
          AGGREGATION_NODE (id=3): Total=2.75 GB Peak=2.75 GB
            Exprs: Total=751.94 MB Peak=751.94 MB
          EXCHANGE_NODE (id=2): Total=0 Peak=0
          DataStreamRecvr: Total=7.42 MB Peak=7.42 MB
          CodeGen: Total=5.57 KB Peak=745.50 KB
        Block Manager: Limit=4.80 GB Total=4.39 GB Peak=4.40 GB
        Fragment b429287bdabe184:9e7b5e960000000c: Total=3.25 GB Peak=3.25 GB
          AGGREGATION_NODE (id=1): Total=3.19 GB Peak=3.19 GB
            Exprs: Total=816.06 MB Peak=816.06 MB
          HDFS_SCAN_NODE (id=0): Total=59.96 MB Peak=200.09 MB
          CodeGen: Total=5.96 KB Peak=876.00 KB
          @           0x83c78a  impala::Status::Status()
          @           0x83c98e  impala::Status::MemLimitExceeded()
          @           0xa24344  impala::MemTracker::MemLimitExceeded()
          @           0xa35ccd  impala::RuntimeState::SetMemLimitExceeded()
          @           0xb6bd6d  impala::FunctionContextImpl::CheckAllocResult()
          @           0xb6ae78  impala::FunctionContextImpl::AllocateLocal()
          @           0xb6b10f  impala_udf::StringVal::StringVal()
          @           0xb6b16a  impala_udf::StringVal::CopyFrom()
          @           0x8a2641  impala::AggregateFunctions::StringValGetValue()
          @           0x8a2661  impala::AggregateFunctions::StringValSerializeOrFinalize()
          @           0xd411c5  impala::AggFnEvaluator::SerializeOrFinalize()
          @           0xce6569  impala::PartitionedAggregationNode::CleanupHashTbl()
          @           0xce693b  impala::PartitionedAggregationNode::Partition::Close()
          @           0xce8152  impala::PartitionedAggregationNode::ClosePartitions()
          @           0xcf163e  impala::PartitionedAggregationNode::Close()
          @           0xa7ae35  impala::FragmentInstanceState::Close()
          @           0xa7ebfb  impala::FragmentInstanceState::Exec()
          @           0xa6aaf6  impala::QueryState::ExecFInstance()
          @           0xbef9d9  impala::Thread::SuperviseThread()
          @           0xbf0394  boost::detail::thread_data<>::run()
          @           0xe588aa  (unknown)
          @     0x7f8a54c32e25  start_thread
          @     0x7f8a5496034d  __clone
      

      Here't the profile summary:

      Operator       #Hosts  Avg Time  Max Time    #Rows  Est. #Rows   Peak Mem  Est. Peak Mem  Detail                       
      -----------------------------------------------------------------------------------------------------------------------
      03:AGGREGATE       32   0.000ns   0.000ns        0       1.06B    2.75 GB      165.23 GB  FINALIZE                     
      02:EXCHANGE        32   1s246ms   7s429ms  412.85M       1.06B          0              0  HASH(<redacted>) 
      01:AGGREGATE       32  22s539ms  27s631ms  422.16M       1.06B    3.09 GB      165.23 GB  STREAMING                    
      00:SCAN HDFS       32   1s221ms   2s093ms  810.12M       1.06B  222.22 MB      616.00 MB  <redacted>      
          Errors: Memory limit exceeded: Error occurred on backend <redacted>.com:22000 by fragment b429287bdabe184:9e7b5e960000002c
      Memory left in process limit: 386.76 GB
      Memory left in query limit: -19080.00 B
      

      And the query string:

      create TABLE TT><redacted>
              STORED AS PARQUET
              TBLPROPERTIES('parquet.compression'='SNAPPY')
      T>AS 
      T>SELECT  T>        <redacted>,
                                      <redacted>, 
                                      <redacted>,
                                      MAX(<redacted>) AS <redacted>,
                                      MAX(<redacted>) AS <redacted>,
                                      MAX(<redacted>) AS <redacted>,
                                      MAX(<redacted>) AS  <redacted>               
      T>FROM TT>        <redacted>
              GROUP BY                <redacted>,
                                      <redacted>,
                                      <redacted>
          Coordinator: <redacted>.com:22000
          Query Options (non default): MEM_LIMIT=6442450944,REQUEST_POOL=<redacted>,SYNC_DDL=1,MT_DOP=0
          DDL Type: CREATE_TABLE_AS_SELECT
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              zoram Zoram Thanga
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: