[MCOL-550] Possible mem leak and crash in columnstore's mysqld Created: 2017-02-07 Updated: 2017-04-21 Resolved: 2017-04-21 |
|
| Status: | Closed |
| Project: | MariaDB ColumnStore |
| Component/s: | MariaDB Server |
| Affects Version/s: | 1.0.7 |
| Fix Version/s: | 1.1.0 |
| Type: | Bug | Priority: | Critical |
| Reporter: | David Hall (Inactive) | Assignee: | Daniel Lee (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
All |
||
| Description |
|
There's a data item in lex called result, a pointer to a select_result item. This is created and set by parse_sql(). During columnstore processing, we run parse_sql multiple times, throwing away the result object. Not deleteing – throwing away. When certain queries are sent via pipe to the client, the result item isn't thrown away and an assert happens. I believe we throw it away in most processing just to avoid the assert, but it needs to be cleaned up instead. Put the following query into a file and pipe it to the client to cause the assert: select lo_orderkey into outfile '/tmp/bug3520.txt' from (select lo_orderkey from lineorder group by 1 union all select lo_orderkey from lineorder group by 1 union all select lo_orderkey from lineorder group by 1 union all select lo_orderkey from lineorder group by 1 union all select lo_orderkey from lineorder group by 1) x; |
| Comments |
| Comment by David Hall (Inactive) [ 2017-02-07 ] |
|
Got rid of all the result=0 lines and replaced with a delete result |
| Comment by Daniel Lee (Inactive) [ 2017-04-21 ] |
|
Build verified: Github source [root@localhost mariadb-columnstore-server]# git show Merge pull request #42 from mariadb-corporation/ Make audit plugin display columnstore original query in logging [root@localhost mariadb-columnstore-server]# cd mariadb-columnstore-engine/ Merge pull request #156 from mariadb-corporation/ |