Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.4(EOL), 10.5, 10.6, 10.11, 11.0(EOL)
-
None
Description
For the following test case a statement memory leak is detected when the server is built with -DWITH_PROTECT_STATEMENT_MEMROOT:BOOL=ON
CREATE TABLE t1 (a varchar(10)) ENGINE=MYISAM; |
CREATE TABLE t2 (b varchar(10) CHARACTER SET utf8) ENGINE=MYISAM; |
INSERT INTO t1 VALUES ('b'), ('a'), ('c'); |
INSERT INTO t2 VALUES ('c'), ('d'), ('b'); |
PREPARE stmt FROM "SELECT t1.a FROM t1 WHERE t1.a IN (SELECT t2.b FROM t2)"; |
EXECUTE stmt; |
EXECUTE stmt; |
DEALLOCATE PREPARE stmt; |
DROP TABLE t1,t2; |
The leak is detected in the function Type_std_attributes::agg_item_set_converter()
with the following memory allocation
Item_direct_ref_to_item *ref=
|
new (thd->mem_root) Item_direct_ref_to_item(thd, *arg);
|
Attachments
Issue Links
- blocks
-
MDEV-14959 Control over memory allocated for SP/PS
-
- Closed
-
- relates to
-
MDEV-32569 Failure when executing PS for query using IN subquery
-
- Closed
-
Activity
Field | Original Value | New Value |
---|---|---|
Priority | Major [ 3 ] | Critical [ 2 ] |
Assignee | Igor Babaev [ igor ] | Dmitry Shulga [ JIRAUSER47315 ] |
Link |
This issue blocks |
Status | Open [ 1 ] | In Progress [ 3 ] |
Assignee | Dmitry Shulga [ JIRAUSER47315 ] | Oleksandr Byelkin [ sanja ] |
Status | In Progress [ 3 ] | In Review [ 10002 ] |
Assignee | Oleksandr Byelkin [ sanja ] | Dmitry Shulga [ JIRAUSER47315 ] |
Status | In Review [ 10002 ] | Stalled [ 10000 ] |
Fix Version/s | 10.4.32 [ 29300 ] | |
Fix Version/s | 10.5.23 [ 29012 ] | |
Fix Version/s | 10.6.16 [ 29014 ] | |
Fix Version/s | 10.10.7 [ 29018 ] | |
Fix Version/s | 10.11.6 [ 29020 ] | |
Fix Version/s | 11.0.4 [ 29021 ] | |
Fix Version/s | 11.1.3 [ 29023 ] | |
Fix Version/s | 10.4 [ 22408 ] | |
Resolution | Fixed [ 1 ] | |
Status | Stalled [ 10000 ] | Closed [ 6 ] |
Description |
For the following test case a statement memory leak is detected when the server is built with -DWITH_PROTECT_STATEMENT_MEMROOT:BOOL=ON
{code:sql} CREATE TABLE t1 (a varchar(10)) ENGINE=MYISAM; CREATE TABLE t2 (b varchar(10) CHARACTER SET utf8) ENGINE=MYISAM; INSERT INTO t1 VALUES ('b'), ('a'), ('c'); INSERT INTO t2 VALUES ('c'), ('d'), ('b'); PREPARE stmt FROM "SELECT t1.a FROM t1 WHERE t1.a IN (SELECT t2.b FROM t2)"; EXECUTE stmt; EXECUTE stmt; DEALLOCATE PREPARE stmt; DROP TABLE t1,t1; {code} The leak is detected in the function Type_std_attributes::agg_item_set_converter() with the following memory allocation {code} Item_direct_ref_to_item *ref= new (thd->mem_root) Item_direct_ref_to_item(thd, *arg); {code} |
For the following test case a statement memory leak is detected when the server is built with -DWITH_PROTECT_STATEMENT_MEMROOT:BOOL=ON
{code:sql} CREATE TABLE t1 (a varchar(10)) ENGINE=MYISAM; CREATE TABLE t2 (b varchar(10) CHARACTER SET utf8) ENGINE=MYISAM; INSERT INTO t1 VALUES ('b'), ('a'), ('c'); INSERT INTO t2 VALUES ('c'), ('d'), ('b'); PREPARE stmt FROM "SELECT t1.a FROM t1 WHERE t1.a IN (SELECT t2.b FROM t2)"; EXECUTE stmt; EXECUTE stmt; DEALLOCATE PREPARE stmt; DROP TABLE t1,t2 ; {code} The leak is detected in the function Type_std_attributes::agg_item_set_converter() with the following memory allocation {code} Item_direct_ref_to_item *ref= new (thd->mem_root) Item_direct_ref_to_item(thd, *arg); {code} |
Description |
For the following test case a statement memory leak is detected when the server is built with -DWITH_PROTECT_STATEMENT_MEMROOT:BOOL=ON
{code:sql} CREATE TABLE t1 (a varchar(10)) ENGINE=MYISAM; CREATE TABLE t2 (b varchar(10) CHARACTER SET utf8) ENGINE=MYISAM; INSERT INTO t1 VALUES ('b'), ('a'), ('c'); INSERT INTO t2 VALUES ('c'), ('d'), ('b'); PREPARE stmt FROM "SELECT t1.a FROM t1 WHERE t1.a IN (SELECT t2.b FROM t2)"; EXECUTE stmt; EXECUTE stmt; DEALLOCATE PREPARE stmt; DROP TABLE t1,t2 ; {code} The leak is detected in the function Type_std_attributes::agg_item_set_converter() with the following memory allocation {code} Item_direct_ref_to_item *ref= new (thd->mem_root) Item_direct_ref_to_item(thd, *arg); {code} |
For the following test case a statement memory leak is detected when the server is built with -DWITH_PROTECT_STATEMENT_MEMROOT:BOOL=ON
{code:sql} CREATE TABLE t1 (a varchar(10)) ENGINE=MYISAM; CREATE TABLE t2 (b varchar(10) CHARACTER SET utf8) ENGINE=MYISAM; INSERT INTO t1 VALUES ('b'), ('a'), ('c'); INSERT INTO t2 VALUES ('c'), ('d'), ('b'); PREPARE stmt FROM "SELECT t1.a FROM t1 WHERE t1.a IN (SELECT t2.b FROM t2)"; EXECUTE stmt; EXECUTE stmt; DEALLOCATE PREPARE stmt; DROP TABLE t1,t2; {code} The leak is detected in the function Type_std_attributes::agg_item_set_converter() with the following memory allocation {code} Item_direct_ref_to_item *ref= new (thd->mem_root) Item_direct_ref_to_item(thd, *arg); {code} |
Link |
This issue relates to |
The branch for review is bb-10.4-
MDEV-32369