summaryrefslogtreecommitdiff
path: root/mysql-test/suite/innodb/r/alter_kill.result
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/innodb/r/alter_kill.result')
-rw-r--r--mysql-test/suite/innodb/r/alter_kill.result78
1 files changed, 78 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/r/alter_kill.result b/mysql-test/suite/innodb/r/alter_kill.result
new file mode 100644
index 00000000000..9b24fddf9ef
--- /dev/null
+++ b/mysql-test/suite/innodb/r/alter_kill.result
@@ -0,0 +1,78 @@
+#
+# Bug#16720368 INNODB CRASHES ON BROKEN #SQL*.IBD FILE AT STARTUP
+#
+SET GLOBAL innodb_file_per_table=1;
+CREATE TABLE bug16720368_1 (a INT PRIMARY KEY) ENGINE=InnoDB;
+connect con1,localhost,root;
+CREATE TABLE bug16720368 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
+INSERT INTO bug16720368 (a) VALUES (1),(2),(3),(4),(5),(6),(7),(8);
+connection default;
+# Cleanly shutdown mysqld
+disconnect con1;
+# Corrupt FIL_PAGE_OFFSET in bug16720368.ibd,
+# and update the checksum to the "don't care" value.
+# Restart mysqld
+# This will succeed after a clean shutdown, due to
+# fil_open_single_table_tablespace(check_space_id=FALSE).
+SELECT COUNT(*) FROM bug16720368;
+COUNT(*)
+8
+INSERT INTO bug16720368_1 VALUES(1);
+# The table is unaccessible, because after a crash we will
+# validate the tablespace header.
+SELECT COUNT(*) FROM bug16720368;
+ERROR 42S02: Table 'test.bug16720368' doesn't exist in engine
+INSERT INTO bug16720368 VALUES(0,1);
+ERROR 42S02: Table 'test.bug16720368' doesn't exist in engine
+# The table is readable thanks to innodb-force-recovery.
+SELECT COUNT(*) FROM bug16720368;
+COUNT(*)
+8
+INSERT INTO bug16720368 VALUES(0,1);
+# Shut down the server cleanly to hide the corruption.
+# The table is accessible, because after a clean shutdown we will
+# NOT validate the tablespace header.
+# We can modify the existing pages, but we cannot allocate or free
+# any pages, because that would hit the corruption on page 0.
+SELECT COUNT(*) FROM bug16720368;
+COUNT(*)
+9
+# Shut down the server to uncorrupt the data.
+# Restart the server after uncorrupting the file.
+INSERT INTO bug16720368 VALUES(9,1);
+SELECT COUNT(*) FROM bug16720368;
+COUNT(*)
+10
+DROP TABLE bug16720368, bug16720368_1;
+#
+# Bug#16735660 ASSERT TABLE2 == NULL, ROLLBACK OF RESURRECTED TXNS,
+# DICT_TABLE_ADD_TO_CACHE
+#
+SET GLOBAL innodb_file_per_table=1;
+CREATE TEMPORARY TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
+BEGIN;
+INSERT INTO t1 VALUES(42);
+connect con1,localhost,root;
+CREATE TABLE bug16735660 (a INT PRIMARY KEY) ENGINE=InnoDB;
+XA START 'x';
+INSERT INTO bug16735660 VALUES(1),(2),(3);
+XA END 'x';
+XA PREPARE 'x';
+connection default;
+# Kill the server
+disconnect con1;
+# Attempt to start without an *.ibd file.
+FOUND 1 /\[ERROR\] InnoDB: Tablespace [0-9]+ was not found at .*test.bug16735660.ibd/ in mysqld.1.err
+SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
+SELECT * FROM bug16735660;
+a
+1
+2
+3
+XA RECOVER;
+formatID gtrid_length bqual_length data
+1 1 0 x
+XA ROLLBACK 'x';
+SELECT * FROM bug16735660;
+a
+DROP TABLE bug16735660;