summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorAnnamalai Gurusami <annamalai.gurusami@oracle.com>2012-05-16 15:23:56 +0530
committerAnnamalai Gurusami <annamalai.gurusami@oracle.com>2012-05-16 15:23:56 +0530
commit7a6c449c62ae86872aeef489895e1f016b921da6 (patch)
treed50259017bcef7ade0f5e28da7873c6fd2644ac6 /storage
parentbcb5d73767fbc04c88d3c8b05eafbdc9a905ea1f (diff)
downloadmariadb-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.cc4
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);