diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2017-12-13 18:02:09 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2017-12-13 18:02:09 +0200 |
commit | b46fa627caaa00d32ca30b9bd09b5cb2dd99629b (patch) | |
tree | 00dcfdcf5bf2dfeb75bbe87c388b9233481ce72b /mysql-test/suite | |
parent | 6559ba71a564aecad487dee1fbb52fc42c768c8e (diff) | |
download | mariadb-git-b46fa627caaa00d32ca30b9bd09b5cb2dd99629b.tar.gz |
MDEV-12352 InnoDB shutdown should not be blocked by a large transaction rollback
row_undo_step(), trx_rollback_active(): Abort the rollback of a
recovered ordinary transaction if fast shutdown has been initiated.
trx_rollback_resurrected(): Convert an aborted-rollback transaction
into a fake XA PREPARE transaction, so that fast shutdown can proceed.
Diffstat (limited to 'mysql-test/suite')
-rw-r--r-- | mysql-test/suite/innodb/r/recovery_shutdown.result | 5 | ||||
-rw-r--r-- | mysql-test/suite/innodb/t/recovery_shutdown.test | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/mysql-test/suite/innodb/r/recovery_shutdown.result b/mysql-test/suite/innodb/r/recovery_shutdown.result index 028a0bd6239..861461dd072 100644 --- a/mysql-test/suite/innodb/r/recovery_shutdown.result +++ b/mysql-test/suite/innodb/r/recovery_shutdown.result @@ -45,6 +45,11 @@ BEGIN; INSERT INTO t1 (a) SELECT NULL FROM t; UPDATE t1 SET a=a+100, b=a; DELETE FROM t1; +INSERT INTO t1(a) SELECT NULL FROM t; +INSERT INTO t1(a) SELECT NULL FROM t1; +INSERT INTO t1(a) SELECT NULL FROM t1; +INSERT INTO t1(a) SELECT NULL FROM t1; +INSERT INTO t1(a) SELECT NULL FROM t1; SET GLOBAL innodb_flush_log_at_trx_commit=1; CREATE TABLE u(a SERIAL) ENGINE=INNODB; # Kill and restart diff --git a/mysql-test/suite/innodb/t/recovery_shutdown.test b/mysql-test/suite/innodb/t/recovery_shutdown.test index ea38bd19a9f..28b80cd3818 100644 --- a/mysql-test/suite/innodb/t/recovery_shutdown.test +++ b/mysql-test/suite/innodb/t/recovery_shutdown.test @@ -31,6 +31,12 @@ eval DELETE FROM t$c; dec $c; } +INSERT INTO t1(a) SELECT NULL FROM t; +INSERT INTO t1(a) SELECT NULL FROM t1; +INSERT INTO t1(a) SELECT NULL FROM t1; +INSERT INTO t1(a) SELECT NULL FROM t1; +INSERT INTO t1(a) SELECT NULL FROM t1; + --connection default SET GLOBAL innodb_flush_log_at_trx_commit=1; CREATE TABLE u(a SERIAL) ENGINE=INNODB; |