| Bug #57113 | ha_partition::extra(ha_extra_function): Assertion `m_extra_cache' failed | ||
|---|---|---|---|
| Submitted: | 29 Sep 2010 19:25 | Modified: | 1 Oct 2010 19:46 | 
| Reporter: | Elena Stepanova | Email Updates: | |
| Status: | Duplicate | Impact on me: | |
| Category: | MySQL Server: Partitions | Severity: | S2 (Serious) | 
| Version: | 5.1-bugteam-debug, 5.5.7-rc-debug | OS: | Any | 
| Assigned to: | Assigned Account | CPU Architecture: | Any | 
| Tags: | regression | ||
   [30 Sep 2010 13:14]
   Mattias Jonsson        
  regression introduced by the fix for bug#55458.
   [30 Sep 2010 13:33]
   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/119542 3482 Mattias Jonsson 2010-09-30 Bug#55458: Partitioned MyISAM table gets crashed by multi-table update Bug#57113: ha_partition::extra(ha_extra_function): Assertion `m_extra_cache' failed Fix for bug#55458 included DBUG_ASSERTS causing debug builds of the server to crash on another multi-table update. Removed the asserts since they where wrong. @ mysql-test/r/partition.result updated result @ mysql-test/t/partition.test Added test for bug#57113 @ sql/ha_partition.cc Removed the assert for m_extra_cache when ::extra(HA_PREPARE_FOR_UPDATE) was called.
   [30 Sep 2010 13:59]
   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/119550 3482 Mattias Jonsson 2010-09-30 Bug#55458: Partitioned MyISAM table gets crashed by multi-table update Bug#57113: ha_partition::extra(ha_extra_function): Assertion `m_extra_cache' failed Fix for bug#55458 included DBUG_ASSERTS causing debug builds of the server to crash on another multi-table update. Removed the asserts since they where wrong. (updated after testing the patch in 5.5). @ mysql-test/r/partition.result updated result @ mysql-test/t/partition.test Added test for bug#57113 @ sql/ha_partition.cc Removed the assert for m_extra_cache when ::extra(HA_PREPARE_FOR_UPDATE) was called.
   [30 Sep 2010 14:07]
   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/119553 3211 Mattias Jonsson 2010-09-30 [merge] Manual merge of post push fix for bug#55458 (bug#57113) into mysql-5.5-bugteam
   [1 Oct 2010 19:46]
   Mattias Jonsson        
  closing as duplicate of bug#55458. (pushed fix into mysql-5.1-bugteam, mysql-5.5-bugteam and mysql-trunk-merge)
   [1 Nov 2010 18:59]
   Bugs System        
  Pushed into mysql-5.1 5.1.53 (revid:build@mysql.com-20101101184443-o2olipi8vkaxzsqk) (version source revid:build@mysql.com-20101101184443-o2olipi8vkaxzsqk) (merge vers: 5.1.53) (pib:21)
   [9 Nov 2010 19:46]
   Bugs System        
  Pushed into mysql-5.5 5.5.7-rc (revid:sunanda.menon@sun.com-20101109182959-otkxq8vo2dcd13la) (version source revid:sunanda.menon@sun.com-20101109182959-otkxq8vo2dcd13la) (merge vers: 5.5.7-rc) (pib:21)
   [13 Nov 2010 16:05]
   Bugs System        
  Pushed into mysql-trunk 5.6.99-m5 (revid:alexander.nozdrin@oracle.com-20101113155825-czmva9kg4n31anmu) (version source revid:alexander.nozdrin@oracle.com-20101113152450-2zzcm50e7i4j35v7) (merge vers: 5.6.1-m4) (pib:21)
   [13 Nov 2010 16:36]
   Bugs System        
  Pushed into mysql-next-mr (revid:alexander.nozdrin@oracle.com-20101113160336-atmtmfb3mzm4pz4i) (version source revid:vasil.dimov@oracle.com-20100629074804-359l9m9gniauxr94) (pib:21)


Description: Version: '5.5.7-rc-debug-log' mysqld: sql/ha_partition.cc:5701: virtual int ha_partition::extra(ha_extra_function): Assertion `m_extra_cache' failed. 100929 21:42:01 - mysqld got signal 6 ; #5 0x00002b07facc3fb0 in abort () from /lib64/libc.so.6 #6 0x00002b07facbc286 in __assert_fail () from /lib64/libc.so.6 #7 0x0000000000a4675b in ha_partition::extra (this=0x1a2d3e0, operation=HA_EXTRA_PREPARE_FOR_UPDATE) at /sql/ha_partition.cc:5701 #8 0x0000000000682372 in multi_update::send_data (this=0x19f1a68, not_used_values=@0x4588a280) at /sql/sql_update.cc:1693 #9 0x0000000000616f1e in end_send (join=0x1a05cf0, join_tab=0x1a0a720, end_of_records=false) at /sql/sql_select.cc:12546 #10 0x000000000061e3cf in evaluate_join_record (join=0x1a05cf0, join_tab=0x1a0a4c8, error=0) at /sql/sql_select.cc:11763 #11 0x000000000061e578 in sub_select (join=0x1a05cf0, join_tab=0x1a0a4c8, end_of_records=false) at /sql/sql_select.cc:11639 #12 0x000000000061e3cf in evaluate_join_record (join=0x1a05cf0, join_tab=0x1a0a270, error=0) at /sql/sql_select.cc:11763 #13 0x000000000061e578 in sub_select (join=0x1a05cf0, join_tab=0x1a0a270, end_of_records=false) at /sql/sql_select.cc:11639 #14 0x000000000062ee1c in do_select (join=0x1a05cf0, fields=0x4588a280, table=0x0, procedure=0x0) at /sql/sql_select.cc:11404 #15 0x000000000064129f in JOIN::exec (this=0x1a05cf0) at /sql/sql_select.cc:2356 #16 0x000000000063c132 in mysql_select (thd=0x196ba40, rref_pointer_array=0x196ddb8, tables=0x19f0ad8, wild_num=0, fields=@0x4588a280, conds=0x19f18e0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=1342177408, result=0x19f1a68, unit=0x196d5e8, select_lex=0x196dbe8) at /sql/sql_select.cc:2550 #17 0x000000000068016d in mysql_multi_update (thd=0x196ba40, table_list=0x19f0ad8, fields=0x196dcf0, values=0x196e0c8, conds=0x19f18e0, options=0, handle_duplicates=DUP_ERROR, ignore=false, unit=0x196d5e8, select_lex=0x196dbe8, result=0x4588b0c0) at /sql/sql_update.cc:1188 #18 0x00000000005ed8d8 in mysql_execute_command (thd=0x196ba40) at /sql/sql_parse.cc:2878 #19 0x00000000005f2c86 in mysql_parse (thd=0x196ba40, rawbuf=0x19f0910 "UPDATE t_celosia_ddl_partitions t1, t_celosia_ddl_no_partitions t2\nSET t1.year = '1955'\n WHERE t1.name = 'FooBar'", length=114, parser_state=0x4588b9e0) at /sql/sql_parse.cc:5594 #20 0x00000000005f3868 in dispatch_command (command=COM_QUERY, thd=0x196ba40, packet=0x1a28b01 "UPDATE t_celosia_ddl_partitions t1, t_celosia_ddl_no_partitions t2\nSET t1.year = '1955'\n WHERE t1.name = 'FooBar'", packet_length=114) at /sql/sql_parse.cc:1139 #21 0x00000000005f4cc7 in do_command (thd=0x196ba40) at /sql/sql_parse.cc:811 #22 0x00000000006c2d46 in do_handle_one_connection (thd_arg=0x196ba40) at /sql/sql_connect.cc:1192 #23 0x00000000006c2e41 in handle_one_connection (arg=0x196ba40) at /sql/sql_connect.cc:1131 #24 0x000000000092c01c in pfs_spawn_thread (arg=0x1a1f260) at /storage/perfschema/pfs.cc:1015 #25 0x00002b07fa6e4143 in start_thread () from /lib64/libpthread.so.0 #26 0x00002b07fad538cd in clone () from /lib64/libc.so.6 thd->query at 0x19f0910 = UPDATE t_celosia_ddl_partitions t1, t_celosia_ddl_no_partitions t2 SET t1.year = '1955' WHERE t1.name = 'FooBar' thd->thread_id=2 thd->killed=NOT_KILLED Not reproducible on 5.5.6-rc and 5.1.51. Reproducible on 5.6.1-m4-debug and 5.6.99-debug (did not fit into the Version field) How to repeat: --source include/have_innodb.inc --disable_warnings DROP DATABASE IF EXISTS celosia_features; --enable_warnings CREATE DATABASE celosia_features; USE celosia_features; CREATE TABLE t_celosia_ddl_partitions ( id INT NOT NULL PRIMARY KEY, name VARCHAR(16) NOT NULL, year YEAR, INDEX name (name(8)) ) PARTITION BY HASH(id) PARTITIONS 2; INSERT INTO t_celosia_ddl_partitions VALUES ( 1, 'FooBar', '1924' ); CREATE TABLE t_celosia_ddl_no_partitions ( id INT ); INSERT INTO t_celosia_ddl_no_partitions VALUES ( 1 ),( 2 ); UPDATE t_celosia_ddl_partitions t1, t_celosia_ddl_no_partitions t2 SET t1.year = '1955' WHERE t1.name = 'FooBar'; DROP DATABASE celosia_features; --exit