| Bug #38693 | leaked memory with blobs! | ||
|---|---|---|---|
| Submitted: | 9 Aug 2008 19:31 | Modified: | 10 Nov 2008 19:22 |
| Reporter: | Shane Bester | ||
| Status: | Closed | ||
| Category: | Server: DML | Severity: | S2 (Serious) |
| Version: | 5.0.66a, 5.1.26, 5.1.28, 6.0.7 | OS: | Any |
| Assigned to: | Georgi Kodinov | Target Version: | 5.1+ |
| Tags: | memory leak | ||
| Triage: | Triaged: D2 (Serious) | ||
[9 Aug 2008 19:31]
Shane Bester
[9 Aug 2008 19:33]
Shane Bester
some info so i don't forget
Attachment: bug38693_more_info.txt (text/plain), 18.76 KiB.
[9 Aug 2008 21:14]
Shane Bester
testcase. (yeah, same testcase that used for bug #38692 !)
Attachment: bug38692.c (text/plain), 7.42 KiB.
[9 Aug 2008 22:10]
Shane Bester
let the testcase run a few hundred repetitions since the blob contents and length is non-deterministic
[3 Oct 2008 11:35]
Shane Bester
from 5.1-bugteam (5.1.30-debug) another related valgrind leak: 2,432,048 bytes in 1,340 blocks are still reachable in loss record 7 of 7 at 0x4005400: malloc by 0x858ABC8: _mymalloc (safemalloc.c:137) by 0x821F6CC: String::real_alloc by 0x81F9F52: Field_blob::store by 0x814F28C: Item_hex_string::save_in_field by 0x827643A: fill_record_n_invoke_before_triggers by 0x82C5165: mysql_insert by 0x823B5DA: mysql_execute_command by 0x823FBC3: mysql_parse by 0x8240284: dispatch_command by 0x8241770: do_command(THD*) (sql_parse.cc:809) by 0x822F947: handle_one_connection (sql_connect.cc:1115)
[15 Oct 2008 15:56]
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/56274 2706 Georgi Kodinov 2008-10-15 Bug #38693: leaked memory with blobs! If delayed insert fails to upgrade the lock it was not freeing the temporary memory storage used to keep newly constructed blob values in memory. Fixed by iterating over the remaining rows in the delayed insert rowset and freeing the blob storage for each row. No test suite because it involves concurrent delayed inserts on a table and cannot easily be made deterministic. Added a correct valgrind suppression for Fedora 9.
[24 Oct 2008 10:42]
Bugs System
Pushed into 5.0.72 (revid:kgeorge@mysql.com-20081015135552-q9xwufjz42vd3kgw) (version source revid:kgeorge@mysql.com-20081015135552-q9xwufjz42vd3kgw) (pib:5)
[24 Oct 2008 22:19]
Paul DuBois
Noted in 5.0.72 changelog. If delayed insert failed to upgrade the lock, it did not free the temporary memory storage used to keep newly constructed BLOB values in memory, resulting in a memory leak. Setting report to NDI pending push into 5.1.x, 6.0.x.
[10 Nov 2008 11:51]
Bugs System
Pushed into 6.0.8-alpha (revid:kgeorge@mysql.com-20081015135552-q9xwufjz42vd3kgw) (version source revid:kgeorge@mysql.com-20081021085131-2v86qbmg27inufx2) (pib:5)
[10 Nov 2008 12:35]
Bugs System
Pushed into 5.1.30 (revid:kgeorge@mysql.com-20081015135552-q9xwufjz42vd3kgw) (version source revid:kgeorge@mysql.com-20081021075503-bsoq43pkwy82ksuv) (pib:5)
[10 Nov 2008 19:22]
Paul DuBois
Note in 51..31, 6.0.8 changelogs.
[11 Nov 2008 17:30]
Paul DuBois
6.0.9 changelog, not 6.0.8.
[19 Jan 12:22]
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-20090108105244-8opp3i85jw0uj5ib) (merge vers: 5.1.31-ndb-6.2.17) (pib:6)
[19 Jan 14:00]
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 17:06]
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)
