Bug #40181 Partitions: hang if create index
Submitted: 20 Oct 2008 15:53 Modified: 8 Mar 2010 14:52
Reporter: Peter Gulutzan Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Partitions Severity:S3 (Non-critical)
Version:6.0.8-alpha-debug,5.4 OS:Linux (SUSE 10 32-bit)
Assigned to: Mikael Ronström CPU Architecture:Any
Tags: regression
Triage: Triaged: D1 (Critical)

[20 Oct 2008 15:53] Peter Gulutzan
Description:
I create an indexed partitioned table.
I insert a row. I insert a row.
I try to create a duplicate index, I fail, okay.
I try to create a new index, I hang, not okay.

How to repeat:
use test
create table t (s1 int) partition by hash(s1);
create index i on t (s1);
insert into t values (1);
insert into t select * from t;
create index i on t (s1);
create index i2 on t (s1);
[20 Oct 2008 16:05] Miguel Solorzano
Thank you for the bug report. Verified as described. Not repeatable on older released version 6.0.4.
[4 Dec 2008 10:20] Mattias Jonsson
Cannot repeat in 5.1, seems to be 6.0 only.
[27 Jul 2009 13:10] 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/79334

3477 Mikael Ronstrom	2009-07-27
      Bug#40181 Made use of tdc_remove_table instead of just setting share->version to 0 to make sure all unused table instances go away as part of ALTER TABLE
      modified:
        mysql-test/r/partition.result
        mysql-test/t/partition.test
        sql/sql_partition.cc
[27 Jul 2009 13:15] Mikael Ronström
Replaced table->s->version= 0;
by
tdc_remove_table(thd, TDC_RT_REMOVE_UNUSED,
                 table->s->db.str,
                 table->s->table_name.str);
with LOCK_open held at call
in sql_partition.cc
[27 Jul 2009 13: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/79335

3478 Mikael Ronstrom	2009-07-27
      Bug#40181 updated to use ER_DUP_KEYNAME instead of 1061
      modified:
        mysql-test/t/partition.test
[29 Jul 2009 9:50] 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/79509

3479 Mikael Ronstrom	2009-07-29
      Bug#40181, fixed a silly mistake where test case wasn't the right one
      modified:
        mysql-test/r/partition.result
        mysql-test/t/partition.test
[29 Jul 2009 10:09] Alexander Nozdrin
Bug#40973 has been marked as a duplicate of this one.
[29 Jul 2009 13:30] Alexander Nozdrin
Bug#46198 is a duplicate of this one.
[5 Aug 2009 12:18] Mattias Jonsson
After looking at the patch and the discussion of it, I approve the patch. OK to push
[5 Aug 2009 12:27] 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/80151

3515 Mikael Ronstrom	2009-08-05 [merge]
      Merge in bug#40181
      modified:
        mysql-test/r/partition.result
        mysql-test/t/partition.test
        sql/sql_partition.cc
[5 Aug 2009 13:08] 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/80159

3514 Mikael Ronstrom	2009-08-05
      Bug#40181 Made use of tdc_remove_table instead of just setting share->version to 0 to make sure all unused table instances go away as part of CREATE/ALTER TABLE
      modified:
        mysql-test/r/partition.result
        mysql-test/t/partition.test
        sql/sql_partition.cc
[20 Aug 2009 9:51] Dmitry Lenev
Bug #46321 "Deadlock in tdc_wait_for_old_versions() on non-concurrent DDL on partitions" was marked as duplicate of this bug.
[11 Sep 2009 13:29] Matthias Leich
Hi,

I detected today on mysql-next-bugfixing 2009-09-09
1. ... /mysql-next-bugfixing/mysql-test> bzr log | grep 40181
   ... /mysql-next-bugfixing/mysql-test>
   So the patch is not here.
2. My test:
   CREATE TABLE t1  ( f2 INTEGER, f1 INTEGER , primary key (f1))
   ENGINE = MyISAM PARTITION BY KEY (f1);
   DELETE   A , B FROM  t1  AS A NATURAL JOIN t1  B;
   --error ER_BAD_FIELD_ERROR
   ALTER TABLE t1 CHANGE COLUMN my_column f2 INTEGER;
   # <------ The next SELECT hangs endless.
   SELECT COUNT(*) FROM  t1;
Will this patch be ported to 5.4 ?
[14 Sep 2009 16:05] Bugs System
Pushed into 5.4.4-alpha (revid:alik@sun.com-20090914155317-m1g9wodmndzdj4l1) (version source revid:alik@sun.com-20090914155317-m1g9wodmndzdj4l1) (merge vers: 5.4.4-alpha) (pib:11)
[15 Sep 2009 10:07] Jon Stephens
Documented bugfix in the 5.4.4 changelog as follows:

        After attempting to create a duplicate index on a partitioned
        table (and having the attempt fail as expected), a subsequent
        attempt to create a new index on the table caused the server to
        hang.
      
Closed.
[16 Feb 2010 16:47] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100216101445-2ofzkh48aq2e0e8o) (version source revid:kostja@sun.com-20091211154405-c9yhiewr9o5d20rq) (merge vers: 6.0.14-alpha) (pib:16)
[16 Feb 2010 16:57] Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100216101208-33qkfwdr0tep3pf2) (version source revid:kostja@sun.com-20091211103945-198h3pt8w7ypk20u) (pib:16)
[16 Feb 2010 19:28] Jon Stephens
Already documented in the 6.0.14 changelog; no firther changelog entries appear necessary, so re-closing.
[6 Mar 2010 11:02] Bugs System
Pushed into 5.5.3-m3 (revid:alik@sun.com-20100306103849-hha31z2enhh7jwt3) (version source revid:vvaintroub@mysql.com-20100216221947-luyhph0txl2c5tc8) (merge vers: 5.5.99-m3) (pib:16)
[8 Mar 2010 14:37] Jon Stephens
Already documented in the 5.5.3 changelog; closed.