Bug #41541 | Valgrind warnings on packed MyISAM table | ||
---|---|---|---|
Submitted: | 17 Dec 2008 12:25 | Modified: | 13 May 2009 23:28 |
Reporter: | Sergei Glukhov | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: MyISAM storage engine | Severity: | S3 (Non-critical) |
Version: | 5.0, 5.1, 6.0 | OS: | Any |
Assigned to: | Satya B | CPU Architecture: | Any |
Tags: | pushbuild, sporadic, test failure, valgrind |
[17 Dec 2008 12:25]
Sergei Glukhov
[17 Dec 2008 13:25]
MySQL Verification Team
Thank you for the bug report. Verified as described: ==25497== Invalid read of size 1 ==25497== at 0x84F5DF: fill_buffer (mi_packrec.c:1446) ==25497== by 0x84F623: fill_and_get_bits (mi_packrec.c:1417) ==25497== by 0x85182A: _mi_read_pack_info (mi_packrec.c:382) ==25497== by 0x845B91: mi_open (mi_open.c:498) ==25497== by 0x6B4942: ha_myisam::open(char const*, int, unsigned) (ha_myisam.cc:633) ==25497== by 0x6AEE61: handler::ha_open(char const*, int, int) (handler.cc:1414) ==25497== by 0x62A561: openfrm(THD*, char const*, char const*, unsigned, unsigned, unsigned, st_table*) (table.cc:929) ==25497== by 0x61E92B: _ZL17open_unireg_entryP3THDP8st_tablePKcS4_S4_P10TABLE_LISTP11st_mem_rootj (sql_base.cc:2457) ==25497== by 0x621432: open_table(THD*, TABLE_LIST*, st_mem_root*, bool*, unsigned) (sql_base.cc:1922) ==25497== by 0x621BDE: open_tables(THD*, TABLE_LIST**, unsigned*, unsigned) (sql_base.cc:2761) ==25497== by 0x621F67: open_normal_and_derived_tables(THD*, TABLE_LIST*, unsigned) (sql_base.cc:3101) ==25497== by 0x6F6A47: mysqld_list_fields(THD*, TABLE_LIST*, char const*) (sql_show.cc:587) ==25497== Address 0xc8b9a03 is 0 bytes after a block of size 4,155 alloc'd ==25497== at 0x4C265AE: malloc (vg_replace_malloc.c:207) ==25497== by 0x88E1D2: my_malloc (my_malloc.c:34) ==25497== by 0x850E85: _mi_read_pack_info (mi_packrec.c:211) ==25497== by 0x845B91: mi_open (mi_open.c:498) ==25497== by 0x6B4942: ha_myisam::open(char const*, int, unsigned) (ha_myisam.cc:633) ==25497== by 0x6AEE61: handler::ha_open(char const*, int, int) (handler.cc:1414) ==25497== by 0x62A561: openfrm(THD*, char const*, char const*, unsigned, unsigned, unsigned, st_table*) (table.cc:929) ==25497== by 0x61E92B: _ZL17open_unireg_entryP3THDP8st_tablePKcS4_S4_P10TABLE_LISTP11st_mem_rootj (sql_base.cc:2457) ==25497== by 0x621432: open_table(THD*, TABLE_LIST*, st_mem_root*, bool*, unsigned) (sql_base.cc:1922) ==25497== by 0x621BDE: open_tables(THD*, TABLE_LIST**, unsigned*, unsigned) (sql_base.cc:2761) ==25497== by 0x621F67: open_normal_and_derived_tables(THD*, TABLE_LIST*, unsigned) (sql_base.cc:3101) ==25497== by 0x6F6A47: mysqld_list_fields(THD*, TABLE_LIST*, char const*) (sql_show.cc:587) ==25497== ==25497== 1 errors in context 2 of 6: ==25497== Invalid read of size 1 ==25497== at 0x84F5D6: fill_buffer (mi_packrec.c:1446) ==25497== by 0x84F623: fill_and_get_bits (mi_packrec.c:1417) ==25497== by 0x85182A: _mi_read_pack_info (mi_packrec.c:382) ==25497== by 0x845B91: mi_open (mi_open.c:498) ==25497== by 0x6B4942: ha_myisam::open(char const*, int, unsigned) (ha_myisam.cc:633) ==25497== by 0x6AEE61: handler::ha_open(char const*, int, int) (handler.cc:1414) ==25497== by 0x62A561: openfrm(THD*, char const*, char const*, <cut>
[25 Feb 2009 12:23]
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/67528 2754 Satya B 2009-02-25 Fix for BUG#41541 - Valgrind warnings on packed MyISAM table myisampack tool with valgrind throws "invalid read size" errors when a table with varchar or text field exist This happens because when we try to read a record into the buffer we alway assume that the remaing buffer to read is always equal to word size(4 or 8 or 2 bytes) we read. Sometimes we have buffer size less than word size and trying to read the entire word size will end up in valgrind errors Fixed by reading byte by byte when we detect the buffer size is less than the word size modified: mysql-test/r/myisampack.result mysql-test/t/myisampack.test storage/myisam/mi_packrec.c
[2 Mar 2009 17:29]
Ingo Strüwing
Please fix some minor problems. See email.
[3 Mar 2009 11:37]
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/68103 2754 Satya B 2009-03-03 Fix for BUG#41541 - Valgrind warnings on packed MyISAM table After the table is compressed by the myisampack utility, opening the table by the server produces valgrind warnings. This happens because when we try to read a record into the buffer we alway assume that the remaining buffer to read is always equal to word size(4 or 8 or 2 bytes) we read. Sometimes we have remaining buffer size less than word size and trying to read the entire word size will end up in valgrind errors Fixed by reading byte by byte when we detect the remaining buffer size is less than the word size modified: mysql-test/r/myisampack.result mysql-test/t/myisampack.test storage/myisam/mi_packrec.c
[4 Mar 2009 4:28]
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/68164 2754 Satya B 2009-03-04 Fix for BUG#41541 - Valgrind warnings on packed MyISAM table After the table is compressed by the myisampack utility, opening the table by the server produces valgrind warnings. This happens because when we try to read a record into the buffer we alway assume that the remaining buffer to read is always equal to word size(4 or 8 or 2 bytes) we read. Sometimes we have remaining buffer size less than word size and trying to read the entire word size will end up in valgrind errors. Fixed by reading byte by byte when we detect the remaining buffer size is less than the word size. modified: mysql-test/r/myisampack.result mysql-test/t/myisampack.test storage/myisam/mi_packrec.c
[23 Mar 2009 14:26]
Alexander Nozdrin
Bug#43577 has been marked as a duplicate of this one.
[24 Mar 2009 14:43]
Sergey Vojtovich
Approved with wishlist.
[25 Mar 2009 9:16]
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/70319 2743 Satya B 2009-03-25 Fix for BUG#41541 - Valgrind warnings on packed MyISAM table After the table is compressed by the myisampack utility, opening the table by the server produces valgrind warnings. This happens because when we try to read a record into the buffer we alway assume that the remaining buffer to read is always equal to word size(4 or 8 or 2 bytes) we read. Sometimes we have remaining buffer size less than word size and trying to read the entire word size will end up in valgrind errors. Fixed by reading byte by byte when we detect the remaining buffer size is less than the word size. modified: myisam/mi_packrec.c mysql-test/r/myisampack.result mysql-test/t/myisampack.test
[5 May 2009 18:51]
Bugs System
Pushed into 5.0.82 (revid:davi.arnaut@sun.com-20090505184158-dvmedh8n472y8np5) (version source revid:davi.arnaut@sun.com-20090505184158-dvmedh8n472y8np5) (merge vers: 5.0.82) (pib:6)
[5 May 2009 19:39]
Bugs System
Pushed into 5.1.35 (revid:davi.arnaut@sun.com-20090505190206-9xmh7dlc6kom8exp) (version source revid:davi.arnaut@sun.com-20090505190206-9xmh7dlc6kom8exp) (merge vers: 5.1.35) (pib:6)
[6 May 2009 14:06]
Bugs System
Pushed into 6.0.12-alpha (revid:svoj@sun.com-20090506125450-yokcmvqf2g7jhujq) (version source revid:horst@mysql.com-20090327184517-25eq077q2beocs6y) (merge vers: 6.0.11-alpha) (pib:6)
[13 May 2009 23:28]
Paul DuBois
Noted in 5.0.82, 5.1.35, 6.0.12 changelogs. Compressing a table with the myisampack utility caused the server to produce Valgrind warnings when it opened the table.
[15 Jun 2009 8:26]
Bugs System
Pushed into 5.1.35-ndb-6.3.26 (revid:jonas@mysql.com-20090615074202-0r5r2jmi83tww6sf) (version source revid:jonas@mysql.com-20090615070837-9pccutgc7repvb4d) (merge vers: 5.1.35-ndb-6.3.26) (pib:6)
[15 Jun 2009 9:05]
Bugs System
Pushed into 5.1.35-ndb-7.0.7 (revid:jonas@mysql.com-20090615074335-9hcltksp5cu5fucn) (version source revid:jonas@mysql.com-20090615072714-rmfkvrbbipd9r32c) (merge vers: 5.1.35-ndb-7.0.7) (pib:6)
[15 Jun 2009 9:46]
Bugs System
Pushed into 5.1.35-ndb-6.2.19 (revid:jonas@mysql.com-20090615061520-sq7ds4yw299ggugm) (version source revid:jonas@mysql.com-20090615054654-ebgpz7elwu1xj36j) (merge vers: 5.1.35-ndb-6.2.19) (pib:6)