[MDEV-14988] innodb_read_only tries to modify files if transactions were recovered in COMMITTED state Created: 2018-01-18 Updated: 2018-02-13 Resolved: 2018-02-13 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - InnoDB, Storage Engine - XtraDB |
| Affects Version/s: | 10.0, 10.1, 10.2, 10.3 |
| Fix Version/s: | 10.0.35, 10.1.32, 10.2.14, 10.3.5 |
| Type: | Bug | Priority: | Major |
| Reporter: | Marko Mäkelä | Assignee: | Marko Mäkelä |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | crash, recovery, transactions, upstream | ||
| Issue Links: |
|
||||||||
| Description |
|
Because I had some doubts if my fix for
The test is a variation of innodb.read_only_recovery:
In MariaDB 5.5, there is no --innodb-read-only option, and therefore the last-but-one restart can be omitted. MariaDB 5.5 could be unaffected by this bug. This will trigger at least the following assertion failures:
This one occurs on 10.0:
In 10.2, the assertion expression is different, but the idea is the same:
|
| Comments |
| Comment by Marko Mäkelä [ 2018-02-13 ] | |||||||||||||||||||||||||||||||
|
The 10.2 patch is simple:
| |||||||||||||||||||||||||||||||
| Comment by Marko Mäkelä [ 2018-02-13 ] | |||||||||||||||||||||||||||||||
|
The test passes in 5.5, probably because there is no innodb_read_only mode. In 10.0, the UPDATE right before the restart with --loose-innodb-read-only is refused based on innodb_force_recovery=3:
But the read-only shutdown will crash, and the above 10.2 patch is needed in 10.0 already. | |||||||||||||||||||||||||||||||
| Comment by Marko Mäkelä [ 2018-02-13 ] | |||||||||||||||||||||||||||||||
|
Merged up to 10.2 so far. In 10.3 some of the code changes will have to be omitted. |