[MDEV-28415] ALTER TABLE on a large table hangs InnoDB Created: 2022-04-26 Updated: 2022-04-27 Resolved: 2022-04-27 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - InnoDB |
| Affects Version/s: | 10.2, 10.3, 10.4 |
| Fix Version/s: | 10.2.44, 10.3.35, 10.4.25 |
| Type: | Bug | Priority: | Blocker |
| Reporter: | Marko Mäkelä | Assignee: | Marko Mäkelä |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | not-10.5 | ||
| Issue Links: |
|
||||||||||||||||||||||||
| Description |
|
MySQL 5.7.38 includes the following change without a test case: |
| Comments |
| Comment by Marko Mäkelä [ 2022-04-26 ] |
|
The change from MySQL is triggering an assertion failure in mtr_t::memo_modify_page(), catching an attempted modification of a non-leaf page that is not associated with the mini-transaction. The change must be reworked. |
| Comment by Marko Mäkelä [ 2022-04-26 ] |
|
The function PageBulk::release() is buffer-fixing the pages before releasing the exclusive latches on them, so even though the page latches will be released, the pages will be pinned in the buffer pool. They may be written out, but not relocated or evicted. Based on the limited information available, it seems possible to me that the MySQL 5.7 hang could have been fixed in MariaDB Server 10.5.7 by |
| Comment by Marko Mäkelä [ 2022-04-26 ] |
|
The MySQL commit message mentions that the page cleaner threads hang. That is something related to In the end, I believe that it is simplest to remove the page latch wait from the page cleaners (essentially port a small part of |