MDEV-23339 innodb_force_recovery=2 may still abort the rollback of recovered transactions
trx_rollback_active(), trx_rollback_resurrected(): Replace an incorrect condition that we failed to replace in commit b68f1d847f1fc00eed795e20162effc8fbc4119b (MDEV-21217).
This commit is contained in:
parent
2107e3bb9c
commit
c5d4dd2533
@ -11,4 +11,3 @@
|
|||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
create-index-debug : MDEV-13680 InnoDB may crash when btr_page_alloc() fails
|
create-index-debug : MDEV-13680 InnoDB may crash when btr_page_alloc() fails
|
||||||
innodb_force_recovery_rollback : MDEV-22889 InnoDB occasionally breaks ACID
|
|
||||||
|
@ -12,6 +12,6 @@ SET GLOBAL innodb_flush_log_at_trx_commit=1;
|
|||||||
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
||||||
disconnect con0;
|
disconnect con0;
|
||||||
connection default;
|
connection default;
|
||||||
SELECT * FROM t0 LOCK IN SHARE MODE;
|
SELECT * FROM t0 LIMIT 0 LOCK IN SHARE MODE;
|
||||||
a
|
a
|
||||||
DROP TABLE t0,t1;
|
DROP TABLE t0,t1;
|
||||||
|
@ -30,5 +30,6 @@ CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
|||||||
disconnect con0;
|
disconnect con0;
|
||||||
connection default;
|
connection default;
|
||||||
# If the rollback was aborted, we would end up in a lock wait here.
|
# If the rollback was aborted, we would end up in a lock wait here.
|
||||||
SELECT * FROM t0 LOCK IN SHARE MODE;
|
# The LIMIT 0 works around MDEV-22889 InnoDB occasionally breaks ACID
|
||||||
|
SELECT * FROM t0 LIMIT 0 LOCK IN SHARE MODE;
|
||||||
DROP TABLE t0,t1;
|
DROP TABLE t0,t1;
|
||||||
|
@ -611,7 +611,7 @@ trx_rollback_active(
|
|||||||
|
|
||||||
if (trx->error_state != DB_SUCCESS) {
|
if (trx->error_state != DB_SUCCESS) {
|
||||||
ut_ad(trx->error_state == DB_INTERRUPTED);
|
ut_ad(trx->error_state == DB_INTERRUPTED);
|
||||||
ut_ad(!srv_is_being_started);
|
ut_ad(srv_shutdown_state != SRV_SHUTDOWN_NONE);
|
||||||
ut_ad(!srv_undo_sources);
|
ut_ad(!srv_undo_sources);
|
||||||
ut_ad(srv_fast_shutdown);
|
ut_ad(srv_fast_shutdown);
|
||||||
ut_ad(!dictionary_locked);
|
ut_ad(!dictionary_locked);
|
||||||
@ -701,7 +701,7 @@ func_exit:
|
|||||||
trx_free_resurrected(trx);
|
trx_free_resurrected(trx);
|
||||||
return(TRUE);
|
return(TRUE);
|
||||||
case TRX_STATE_ACTIVE:
|
case TRX_STATE_ACTIVE:
|
||||||
if (!srv_is_being_started
|
if (srv_shutdown_state != SRV_SHUTDOWN_NONE
|
||||||
&& !srv_undo_sources && srv_fast_shutdown) {
|
&& !srv_undo_sources && srv_fast_shutdown) {
|
||||||
fake_prepared:
|
fake_prepared:
|
||||||
trx->state = TRX_STATE_PREPARED;
|
trx->state = TRX_STATE_PREPARED;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user