[MDEV-23339] innodb_force_recovery=2 may still abort the rollback of recovered transactions Created: 2020-07-30  Updated: 2020-07-30  Resolved: 2020-07-30

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB
Affects Version/s: 10.0.34, 10.1.30, 10.2.12, 10.3.3, 10.4.0, 10.5.0
Fix Version/s: 10.2.33, 10.3.24, 10.4.14, 10.5.5

Type: Bug Priority: Major
Reporter: Marko Mäkelä Assignee: Marko Mäkelä
Resolution: Fixed Votes: 0
Labels: rr-profile-analyzed

Issue Links:
Blocks
is blocked by MDEV-21217 innodb_force_recovery=2 may wrongly a... Closed
Relates
relates to MDEV-22889 InnoDB occasionally breaks the isolat... Open

 Description   

The fix of MDEV-21217 is incomplete. As observed in MDEV-22889, a condition in trx_rollback_resurrected() is wrongly referring to !srv_is_being_started instead of the proper condition srv_shutdown_state != SRV_SHUTDOWN_NONE. As a result, the recovered transaction would remain in its incomplete state, holding record and table locks and conflicting with any new transactions that may be started.

The purge of transaction history is not affected by this bug, because it will be disabled by innodb_force_recovery=2.



 Comments   
Comment by Marko Mäkelä [ 2020-07-30 ]

I was unable to repeat the problem locally. I did enable the test innodb.innodb_force_recovery_rollback but added a LIMIT 0 clause in order to work around MDEV-22889.

Generated at Thu Feb 08 09:21:40 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.