3928 Hemant Kumar 2012-06-29
Removing the entry for partition_locking_4 test from disabled.def file.
modified:
mysql-test/t/disabled.def
3927 kevin.lewis@stripped 2012-06-29
Bug #14213568
ASSERTION FAILURE IN RENAME TABLE AFTER DISCARD TABLESPACE
The design and intent of WL5522 and Online Index Rebuild is that a
tablespace can be renamed and the dictionary restructured while it
is discarded. The assertion found in this bug happened during Online
Index Rebuild of a clustered index. In order to support this, the
attempt to update SYS_DATAFILES is skipped during the rename file
portion of row_merge_rename_tables() which is part of ha_innobase::
commit_inplace_alter_table().
The RENAME TABLE command already worked while the tablespace is
discarded. Everything in the dictionary is renamed, but
fil_rename_tablespace() is not called in dict_table_rename_in_cache()
when the tablespace is discarded.
Since a table can be renamed while discarded, it became obvious that
whenever a remote tablespace is discarded, the associated link file
should also be deleted. Previously, in the WL5980 patch, the link
file was left behind when a tablespace was discarded. But since the
discarded tablespace can be renamed it really makes no sense to leave
a link file pointing to a tablespace file that does not exist.
There was another assert during TRUNCATE so I had to add a protection
in row_truncate_table_for_mysql() so that it does not attempt to
truncate a tablespace that is discarded or missing.
When adding a test script for this into innodb-wl5980-discard,
I tried many different statements against local and remmote tablespaces
that are both discarded and just plain missing.
Tablespace configurations
=========================
Local, Discarded
Remote, Discarded
Local, Missing
Remote, Missing
SQL Statements tried
====================
SELECT
SHOW CREATE TABLE
INSERT
RENAME TABLE
TRUNCATE TABLE
ALTER TABLE ADD PRIMARY KEY, ALGORITHM=COPY
ALTER TABLE ADD PRIMARY KEY, ALGORITHM=INPLACE
ALTER TABLE KEY ROW_FORMAT=REDUNDANT, ALGORITHM=COPY
ALTER TABLE KEY ROW_FORMAT=REDUNDANT, ALGORITHM=INPLACE
ALTER TABLE KEY ROW_FORMAT=REDUNDANT, ALGORITHM=COPY
ALTER TABLE KEY ROW_FORMAT=REDUNDANT, ALGORITHM=INPLACE
The result file show that none of the statements above work on
a tablespace that is missing. But the follwong SQL work on a
discarded tablespace;
SHOW CREATE TABLE
RENAME TABLE
ALTER TABLE ADD PRIMARY KEY, ALGORITHM=INPLACE
ALTER TABLE KEY ROW_FORMAT=REDUNDANT, ALGORITHM=INPLACE
ALTER TABLE KEY ROW_FORMAT=REDUNDANT, ALGORITHM=INPLACE
In fact, the inplace alter statements will create a new empty
tablespace which is no longer marked as discarded.
Approved by Sunny in rb:1120
modified:
mysql-test/suite/innodb/r/innodb-multiple-tablespaces.result
mysql-test/suite/innodb/r/innodb-wl5980-discard.result
mysql-test/suite/innodb/t/innodb-multiple-tablespaces.test
mysql-test/suite/innodb/t/innodb-wl5980-discard.test
storage/innobase/dict/dict0load.cc
storage/innobase/fil/fil0fil.cc
storage/innobase/handler/ha_innodb.cc
storage/innobase/row/row0merge.cc
storage/innobase/row/row0mysql.cc
=== modified file 'mysql-test/t/disabled.def'
--- a/mysql-test/t/disabled.def 2012-06-15 21:11:49 +0000
+++ b/mysql-test/t/disabled.def 2012-06-29 06:56:30 +0000
@@ -15,5 +15,4 @@ sum_distinct-big : Bug#11764126
archive-big : Bug#11817185 2011-03-10 Anitha Disabled since this leads to timeout on Solaris Sparc
log_tables-big : Bug#11756699 2010-11-15 mattiasj report already exists
ds_mrr-big @solaris : Bug#14168107 2012-04-03 Hemant disabled new test added by Olav Sandstå,since this leads to timeout on Solaris on slow sparc servers
-partition_locking_4 : Bug#13924750 2012-04-04 lost connection.
mysql_embedded_client_test : Bug#13964673 2012-04-16 amitbha since most of the test cases are failing
No bundle (reason: useless for push emails).| Thread |
|---|
| • bzr push into mysql-5.6 branch (hemant.hk.kumar:3927 to 3928) | Hemant Kumar | 29 Jun |