Bug #37956 memory leak and / or crash with geometry and prepared statements!
| Submitted: | 8 Jul 2008 7:45 | Modified: | 28 Jan 2009 21:40 |
|---|---|---|---|
| Reporter: | Shane Bester (Platinum Quality Contributor) | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Prepared statements | Severity: | S1 (Critical) |
| Version: | 5.0.66a, 5.1.26 | OS: | Any |
| Assigned to: | Sergei Glukhov | CPU Architecture: | Any |
| Tags: | memory leak | ||
[8 Jul 2008 7:49]
Shane Bester
full valgrind summary attached to avoid wrapping.
Attachment: bug37956_valgrind_details.txt (text/plain), 9.71 KiB.
[7 Aug 2008 17:19]
Shane Bester
the leaking/offending statement has been found. when executing this query as prepared statement with random parameters, we have this error and a memory leak of about 2kb: select point(?,?) mysql_stmt_execute failed: Cannot get geometry object from data you send to the GEOMETRY field (1416) running as a normal query in mysql client and even using PREPARE syntax works fine though. will upload a small testcase later.
[8 Aug 2008 8:03]
Shane Bester
causes memory leaks and/or crashes of server !
Attachment: bug37956.c (text/plain), 8.70 KiB.
[8 Aug 2008 8:06]
Shane Bester
verified. it's possible this might be related to bug #37671 but i don't remember seeing memory leak in that one. please check when fixing.
[25 Nov 2008 15:15]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/59808 2722 Sergey Glukhov 2008-11-25 Bug#37956 memory leak and / or crash with geometry and prepared statements! Bug#37671 crash on prepared statement + cursor + geometry + too many open files! if mysql_execute_command() returns error then free materialized_cursor object. is_rnd_inited is added to satisfy rnd_end() assertion (handler may be uninitialized in some cases)
[25 Nov 2008 17:13]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/59828 2722 Sergey Glukhov 2008-11-25 Bug#37956 memory leak and / or crash with geometry and prepared statements! Bug#37671 crash on prepared statement + cursor + geometry + too many open files! if mysql_execute_command() returns error then free materialized_cursor object. is_rnd_inited is added to satisfy rnd_end() assertion (handler may be uninitialized in some cases)
[8 Dec 2008 12:46]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/60901 2722 Sergey Glukhov 2008-12-08 Bug#37956 memory leak and / or crash with geometry and prepared statements! Bug#37671 crash on prepared statement + cursor + geometry + too many open files! if mysql_execute_command() returns error then free materialized_cursor object. is_rnd_inited is added to satisfy rnd_end() assertion (handler may be uninitialized in some cases)
[10 Dec 2008 14:14]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/61216 2722 Sergey Glukhov 2008-12-10 Bug#37956 memory leak and / or crash with geometry and prepared statements! Bug#37671 crash on prepared statement + cursor + geometry + too many open files! if mysql_execute_command() returns error then free materialized_cursor object. is_rnd_inited is added to satisfy rnd_end() assertion (handler may be uninitialized in some cases)
[6 Jan 2009 13:56]
Bugs System
Pushed into 5.0.76 (revid:joro@sun.com-20090105160414-8q9j4bi1klkfwiup) (version source revid:azundris@mysql.com-20081230114734-nmsc37ak330zlygn) (merge vers: 5.0.76) (pib:6)
[8 Jan 2009 21:32]
Paul DuBois
Noted in 5.0.76 changelog. Use of spatial data types in prepared statements could cause memory leaks or server crashes. Setting report to NDI pending push into 5.1.x/6.0.x.
[15 Jan 2009 6:37]
Bugs System
Pushed into 5.1.31 (revid:joro@sun.com-20090115053147-tx1oapthnzgvs1ro) (version source revid:azundris@mysql.com-20081230114838-cn52tu180wcrvh0h) (merge vers: 5.1.31) (pib:6)
[15 Jan 2009 16:29]
Paul DuBois
Noted in 5.1.31 changelog. Setting report to NDI pending push into 6.0.x.
[19 Jan 2009 11:23]
Bugs System
Pushed into 5.1.31-ndb-6.2.17 (revid:tomas.ulin@sun.com-20090119095303-uwwvxiibtr38djii) (version source revid:tomas.ulin@sun.com-20090115073240-1wanl85vlvw2she1) (merge vers: 5.1.31-ndb-6.2.17) (pib:6)
[19 Jan 2009 13:01]
Bugs System
Pushed into 5.1.31-ndb-6.3.21 (revid:tomas.ulin@sun.com-20090119104956-guxz190n2kh31fxl) (version source revid:tomas.ulin@sun.com-20090119104956-guxz190n2kh31fxl) (merge vers: 5.1.31-ndb-6.3.21) (pib:6)
[19 Jan 2009 15:15]
Jon Stephens
Setting status back to NDI pending merge to 6.0 tree.
[19 Jan 2009 16:07]
Bugs System
Pushed into 5.1.31-ndb-6.4.1 (revid:tomas.ulin@sun.com-20090119144033-4aylstx5czzz88i5) (version source revid:tomas.ulin@sun.com-20090119144033-4aylstx5czzz88i5) (merge vers: 5.1.31-ndb-6.4.1) (pib:6)
[20 Jan 2009 19:00]
Bugs System
Pushed into 6.0.10-alpha (revid:joro@sun.com-20090119171328-2hemf2ndc1dxl0et) (version source revid:azundris@mysql.com-20081230114916-c290n83z25wkt6e4) (merge vers: 6.0.9-alpha) (pib:6)
[28 Jan 2009 21:40]
Paul DuBois
Noted in 6.0.10 changelog.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.082 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
Description: running my application testsuite against 5.1 under valgrind, then shutting down the server causes valgrind to print these warnings: 4,636 (996 direct, 3,640 indirect) bytes in 1 blocks are definitely lost in loss record 7 of 8 at 0x4005400: malloc by 0x849AF99: my_malloc by 0x849B940: alloc_root by 0x817284D: sql_alloc by 0x811FF19: Item::tmp_table_field_from_field_type by 0x8226E2C: create_tmp_field_from_item by 0x82273A4: create_tmp_field by 0x8227F7F: create_tmp_table by 0x831793E: select_union::create_result_table by 0x8327AB7: Select_materialize::send_fields by 0x82431E6: JOIN::exec() by 0x82460ED: mysql_select [sbester@box1 mysql-5.1]$ valgrind --version valgrind-3.2.1 3,640 bytes in 3 blocks are indirectly lost in loss record 8 of 8 at 0x4005400: malloc by 0x849AF99: my_malloc by 0x849B940: alloc_root by 0x8327ADF: Select_materialize::send_fields by 0x82431E6: JOIN::exec() by 0x82460ED: mysql_select by 0x824664C: handle_select by 0x81CFA73: execute_sqlcom_select by 0x81D2774: mysql_execute_command by 0x8327E38: mysql_open_cursor by 0x8253DD6: Prepared_statement::execute by 0x82550A8: Prepared_statement::execute_loop How to repeat: I will find the offending queries and make a testcase later.