diff options
author | Annamalai Gurusami <annamalai.gurusami@oracle.com> | 2012-05-16 15:23:56 +0530 |
---|---|---|
committer | Annamalai Gurusami <annamalai.gurusami@oracle.com> | 2012-05-16 15:23:56 +0530 |
commit | 7a6c449c62ae86872aeef489895e1f016b921da6 (patch) | |
tree | d50259017bcef7ade0f5e28da7873c6fd2644ac6 /storage | |
parent | bcb5d73767fbc04c88d3c8b05eafbdc9a905ea1f (diff) | |
download | mariadb-git-7a6c449c62ae86872aeef489895e1f016b921da6.tar.gz |
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
Diffstat (limited to 'storage')
-rw-r--r-- | storage/innodb_plugin/handler/handler0alter.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/storage/innodb_plugin/handler/handler0alter.cc b/storage/innodb_plugin/handler/handler0alter.cc index e2702b157af..6f02b500d96 100644 --- a/storage/innodb_plugin/handler/handler0alter.cc +++ b/storage/innodb_plugin/handler/handler0alter.cc @@ -665,6 +665,10 @@ ha_innobase::add_index( DBUG_RETURN(HA_ERR_NO_SUCH_TABLE); } + if (innodb_table->tablespace_discarded) { + DBUG_RETURN(-1); + } + /* Check that index keys are sensible */ error = innobase_check_index_keys(key_info, num_of_keys, innodb_table); |