start 2 node by ignite.sh
execute the following SQL:
create table dwd_t_order_loan_apply (
order_id varchar,
identity_no varchar,
loan_date varchar,
primary key (order_id,identity_no)
) WITH
"template=partitioned,affinity_key=identity_no,CACHE_NAME=dwd_t_order_loan_apply";
create table dim_current_x_day (
id int,
biz_type int,
PRIMARY KEY (id)
) WITH "TEMPLATE=replicated,CACHE_NAME=dim_current_x_day";
INSERT INTO DWD_T_ORDER_LOAN_APPLY (ORDER_ID,IDENTITY_NO,LOAN_DATE)
VALUES ('100000081','510322199908266091','2023-11-09 15:05:04');
INSERT INTO DIM_CURRENT_X_DAY (ID,BIZ_TYPE) VALUES (1,1);
INSERT INTO DIM_CURRENT_X_DAY (ID,BIZ_TYPE) VALUES (3,1);
INSERT INTO DIM_CURRENT_X_DAY (ID,BIZ_TYPE) VALUES (7,1);
INSERT INTO DIM_CURRENT_X_DAY (ID,BIZ_TYPE) VALUES (15,1);
INSERT INTO DIM_CURRENT_X_DAY (ID,BIZ_TYPE) VALUES (30,1);
execute following query some times:
SELECT b.id,
max(last_trade) "last_trade"
from
(select max(loan_date) last_trade
from dwd_t_order_loan_apply where identity_no='510322199908266091'
) a JOIN dim_current_x_day b
GROUP BY b.id;
execute following command :
jmap -dump:format=b,file=/data/ignite.bin <ignite pid>
open ignite.bin by eclipse MAT:
At this point, you will see that there is data in the res instance
object in MapNodeResults, which can lead to a serious memory leak issue,
which is a serious vulnerability.
The normal SQL execution process involves releasing the resources held
in the res instance object in MapNodeResults after a SQL query is executed.
issues.apache.org
[IGNITE-22437] Memory leak in MapNodeResults - ASF JIRA <#>
🔗 https://issues.apache.org/jira/browse/IGNITE-22437
<https://issues.apache.org/jira/browse/IGNITE-22437>