Commit 9a753ef5 authored by Annamalai Gurusami's avatar Annamalai Gurusami

Bug #13943231: ALTER TABLE AFTER DISCARD MAY CRASH THE SERVER

The following scenario crashes our mysql server:

1.  set global innodb_file_per_table=1;
2.  create table t1(c1 int) engine=innodb;
3.  alter table t1 discard tablespace;
4.  alter table t1 add unique index(c1);

Step 4 crashes the server.  This patch introduces a check on discarded
tablespace to avoid the crash.

rb://1041 approved by Marko Makela
parent f23215ee
...@@ -665,6 +665,10 @@ ha_innobase::add_index( ...@@ -665,6 +665,10 @@ ha_innobase::add_index(
DBUG_RETURN(HA_ERR_NO_SUCH_TABLE); DBUG_RETURN(HA_ERR_NO_SUCH_TABLE);
} }
if (innodb_table->tablespace_discarded) {
DBUG_RETURN(-1);
}
/* Check that index keys are sensible */ /* Check that index keys are sensible */
error = innobase_check_index_keys(key_info, num_of_keys, innodb_table); error = innobase_check_index_keys(key_info, num_of_keys, innodb_table);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment