[MDEV-3584] LP:798213 - --innodb-release-locks-early=1 breaks InnoDB crash recovery Created: 2011-06-16 Updated: 2015-02-02 Resolved: 2012-10-04 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Philip Stoev (Inactive) | Assignee: | Kristian Nielsen |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | Launchpad | ||
| Attachments: |
|
| Description |
|
As noted by knielsen, the group commit + SBR + release_locks_early test suffers sporadic failures. I was able to repeat against the latest mysql-5.3. All the failures seem to have the following in common:
Logs will be attached shortly. |
| Comments |
| Comment by Philip Stoev (Inactive) [ 2011-06-16 ] |
|
Re: Sporadic failure in the rqg_rpl_sbr_xtrabackup test |
| Comment by Philip Stoev (Inactive) [ 2011-06-16 ] |
|
Datadir and logs. The rqg log is in rqg.log.failing. The files for the cloned slave are in clonedslave . The files in slave-data are from a normal slave that is not affected by xtrabackup+restore. |
| Comment by Kristian Nielsen [ 2011-06-22 ] |
|
Re: --innodb-release-locks-early=1 breaks InnoDB crash recovery The problem only occurs when --innodb-release-locks-early=1 as well as the Suppose transaction A modifies row R, then starts to commit. The transaction It is now possible for another transaction B to also modify R, start Suppose now that we crash at this point, then restart the server and initiate In this case it is possible for InnoDB to roll back the transactions in the It appears that rollback in InnoDB will happen in reverse order of transaction Note that xtrabackup (and innobase hot backup) works by running the crash I think to fix this problem, it is necessary to change the order in which Alternatively, we could remove the --innodb-release-locks-early=1 feature |
| Comment by Kristian Nielsen [ 2011-06-22 ] |
|
Re: --innodb-release-locks-early=1 breaks InnoDB crash recovery |
| Comment by Kristian Nielsen [ 2011-06-22 ] |
|
.test file for mysql-test-run test case |
| Comment by Kristian Nielsen [ 2011-06-22 ] |
|
Re: --innodb-release-locks-early=1 breaks InnoDB crash recovery |
| Comment by Kristian Nielsen [ 2011-06-22 ] |
|
.opt file for mysql-test-run test case |
| Comment by Kristian Nielsen [ 2011-06-22 ] |
|
Re: --innodb-release-locks-early=1 breaks InnoDB crash recovery |
| Comment by Kristian Nielsen [ 2011-06-22 ] |
|
.result file for mysql-test-run test case |
| Comment by Kristian Nielsen [ 2011-06-22 ] |
|
Re: --innodb-release-locks-early=1 breaks InnoDB crash recovery main.innodb_release_locks_early_recovery [ fail ] CURRENT_TEST: main.innodb_release_locks_early_recovery mysqltest: Result length mismatch As explained above, we see here transaction c4 visible in table t1, even though it should have been rolled back (and is rolled back in table t2). |
| Comment by Kristian Nielsen [ 2011-07-05 ] |
|
Re: --innodb-release-locks-early=1 breaks InnoDB crash recovery |
| Comment by Rasmus Johansson (Inactive) [ 2011-07-05 ] |
|
Launchpad bug id: 798213 |