[MDEV-21216] InnoDB performs dirty read of TRX_SYS page before crash recovery Created: 2019-12-04 Updated: 2019-12-04 Resolved: 2019-12-04 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - InnoDB |
| Affects Version/s: | 5.5, 10.0, 10.1, 10.2, 10.3, 10.4, 10.5 |
| Fix Version/s: | 10.5.1 |
| Type: | Bug | Priority: | Major |
| Reporter: | Marko Mäkelä | Assignee: | Marko Mäkelä |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | recovery | ||
| Issue Links: |
|
||||||||||||
| Description |
|
InnoDB startup is discovering undo tablespaces in a dirty way. It is reading a possibly stale copy of the TRX_SYS page before processing any redo log records. A sign of this problem is the buf_pool_invalidate() call in innobase_start_or_create_for_mysql(). It should not be needed at all, and instead, in recv_recovery_from_checkpoint_start() we should assert that the buffer pool is empty before starting to apply redo log records. |