Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
1.21.1
-
None
Description
Describe the bug
megerjoin leak when RecordIterator allocate memory exception with OutOfMemoryException{}
Steps to reproduce the behavior:
- prepare data for tpch 1s
- set direct memory 5g
- set planner.enable_hashjoin =false to ensure use mergejoin operator。
- set drill.memory.debug.allocator =true (Check for memory leaks )
- 20 concurrent for tpch sql8
- when it had OutOfMemoryException or null EXCEPTION , stopped all sql.
- finding memory leak
Expected behavior
when all sql sop , we should find direct memory is 0 AND could not find leak log like following.
Allocator(op:2:0:11:MergeJoinPOP) 1000000/73728/4874240/10000000000 (res/actual/peak/limit)
Error detail, log output or screenshots
Unable to allocate buffer of size XX (rounded from XX) due to memory limit (). Current allocation: xx
sql
// code placeholder 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