Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.5, 10.6, 10.11, 11.0(EOL), 11.1(EOL), 11.2(EOL), 11.3(EOL)
Description
As noted in MDEV-32681, the invocation of buf_page_t::clear_oldest_modification() in trx_purge_truncate_history() is unsafe. The buf_flush_page_cleaner() thread may advance the checkpoint before mtr_t::commit_shrink() has finished executing. This may cause a previously committed transaction to be treated as uncommitted. The server could crash or hang while trying to roll back the "uncommitted" transaction. With the data.tar.xz that is attached to MDEV-32681, the rollback would try to free an undo log page multiple times and possibly end up in an infinite loop.
Attachments
Issue Links
- is caused by
-
MDEV-26445 innodb_undo_log_truncate is unnecessarily slow
- Closed
- relates to
-
MDEV-33009 Server hangs for a long time with innodb_undo_log_truncate=ON
- Closed
-
MDEV-32681 Test case innodb.undo_truncate_recover frequent failure
- Closed