[jira] [Created] (IMPALA-6996) PartitionedAggregationNode::Close() should not allocate memory

2018-05-08 Thread Zoram Thanga (JIRA)
Zoram Thanga created IMPALA-6996:


 Summary: PartitionedAggregationNode::Close() should not allocate 
memory
 Key: IMPALA-6996
 URL: https://issues.apache.org/jira/browse/IMPALA-6996
 Project: IMPALA
  Issue Type: Bug
  Components: Backend
Affects Versions: Impala 2.12.0
Reporter: Zoram Thanga


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.

{noformat}
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 .com:22000 by fragment 
b429287bdabe184:9e7b5e96002c
Memory left in process limit: 384.47 GB
Memory left in query limit: -6947009.00 B
Query(b429287bdabe184:9e7b5e96): memory limit exceeded. Limit=6.00 GB 
Total=6.01 GB Peak=6.01 GB
  Fragment b429287bdabe184:9e7b5e96002c: 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:9e7b5e96000c: 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
{noformat}

Here't the profile summary:

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

And the query string:

{noformat}
create TABLE TT>
STORED AS PARQUET
TBLPROPERTIES('parquet.compression'='SNAPPY')
T>AS 
T>SELECT  T>,
, 
,
MAX() AS ,
MAX() AS ,
MAX() AS ,
MAX() AS 
T>FROM TT>
GROUP BY,
,

Coordinator: .com:22000
Query Options (non default): 
MEM_LIMIT=6442450944,REQUEST_POOL=,SYNC_DDL=1,MT_DOP=0
DDL Type: CREATE_TABLE_AS_SELECT
{noformat}






--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

[jira] [Created] (IMPALA-6996) PartitionedAggregationNode::Close() should not allocate memory

2018-05-08 Thread Zoram Thanga (JIRA)
Zoram Thanga created IMPALA-6996:


 Summary: PartitionedAggregationNode::Close() should not allocate 
memory
 Key: IMPALA-6996
 URL: https://issues.apache.org/jira/browse/IMPALA-6996
 Project: IMPALA
  Issue Type: Bug
  Components: Backend
Affects Versions: Impala 2.12.0
Reporter: Zoram Thanga


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.

{noformat}
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 .com:22000 by fragment 
b429287bdabe184:9e7b5e96002c
Memory left in process limit: 384.47 GB
Memory left in query limit: -6947009.00 B
Query(b429287bdabe184:9e7b5e96): memory limit exceeded. Limit=6.00 GB 
Total=6.01 GB Peak=6.01 GB
  Fragment b429287bdabe184:9e7b5e96002c: 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:9e7b5e96000c: 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
{noformat}

Here't the profile summary:

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

And the query string:

{noformat}
create TABLE TT>
STORED AS PARQUET
TBLPROPERTIES('parquet.compression'='SNAPPY')
T>AS 
T>SELECT  T>,
, 
,
MAX() AS ,
MAX() AS ,
MAX() AS ,
MAX() AS 
T>FROM TT>
GROUP BY,
,

Coordinator: .com:22000
Query Options (non default): 
MEM_LIMIT=6442450944,REQUEST_POOL=,SYNC_DDL=1,MT_DOP=0
DDL Type: CREATE_TABLE_AS_SELECT
{noformat}






--
This message was sent by Atlassian JIRA
(v7.6.3#76005)