apache / drill

Apache Drill is a distributed MPP query layer for self describing data
https://drill.apache.org/
Apache License 2.0
1.95k stars 979 forks source link

hashpartition leak #2874

Closed shfshihuafeng closed 7 months ago

shfshihuafeng commented 10 months ago

Before submitting a bug report, please verify that you are using the most current version of Drill.

Describe the bug hashpartition leak when allocate memory exception with OutOfMemoryException

To Reproduce Steps to reproduce the behavior:

  1. prepare data for tpch 1s
  2. 20 concurrent for tpch sql8
  3. set direct memory 5g
  4. when it had OutOfMemoryException , stopped all sql.
  5. finding memory leak

Expected behavior (1)i set {DRILL_MAX_DIRECT_MEMORY:-"5G"} (2) i run sql8 (sql detail as Additional context) with 20 concurrent (3) it had OutOfMemoryException when create hashPartion

Error detail, log output or screenshots Unable to allocate buffer of size 262144 (rounded from 262140) due to memory limit (41943040). Current allocation: 20447232

Drill version drill 2.0

Additional context Add any other context about the problem here.

select  
o_year,  
sum(case when nation = 'CHINA' then volume else 0 end) / sum(volume) as mkt_share  
from ( 
select  
extract(year from o_orderdate) as o_year,  
l_extendedprice * 1.0 as volume,  
n2.n_name as nation  
from hive.tpch1s.part, hive.tpch1s.supplier, hive.tpch1s.lineitem, hive.tpch1s.orders, hive.tpch1s.customer, hive.tpch1s.nation n1, hive.tpch1s.nation n2, hive.tpch1s.region 
where  
p_partkey = l_partkey  
and s_suppkey = l_suppkey  
and l_orderkey = o_orderkey  
and o_custkey = c_custkey  
and c_nationkey = n1.n_nationkey  
and n1.n_regionkey = r_regionkey  
and r_name = 'ASIA'  
and s_nationkey = n2.n_nationkey  
and o_orderdate between date '1995-01-01'  
and date '1996-12-31'  
and p_type = 'LARGE BRUSHED BRASS') as all_nations  
group by o_year  
order by o_year
shfshihuafeng commented 10 months ago

I fixed the bug see attachment 0001-bug-10227615-hashPartition-leak.patch

cgivre commented 10 months ago

@shfshihuafeng Can you please submit this as a pull request?

shfshihuafeng commented 10 months ago

ok @cgivre