Details
-
Bug
-
Status: Closed (View Workflow)
-
Blocker
-
Resolution: Fixed
-
10.11.3, 10.6.13, 10.8.8, 10.9.6, 10.10.4, 10.6.14, 10.6.15, 10.6.16, 10.11.4, 10.11.5, 10.11.6, 11.0(EOL), 11.1(EOL), 11.2, 11.3(EOL)
Description
In MDEV-26827, an error was introduced in a rarely executed code path of the buf_flush_page_cleaner() thread. As a result, the function buf_flush_LRU() could be invoked while not holding buf_pool.mutex.
This may explain the failures that have been reported in MDEV-33189, MDEV-33208 and MDEV-33178. More testing is needed to be sure. I caught this bug by accident in a debug build:
mariadbd: /mariadb/10.6/storage/innobase/buf/buf0flu.cc:1787: ulint buf_flush_LRU(ulint, bool): Assertion `((&(&buf_pool.mutex)->m_mutex)->count > 0 && pthread_equal(pthread_self(), (&(&buf_pool.mutex)->m_mutex)->thread))' failed.
|
This bug can be worked around by setting innodb_adaptive_flushing=OFF.
Attachments
Issue Links
- is caused by
-
MDEV-26827 Make page flushing even faster
- Closed
- is duplicated by
-
MDEV-33178 Random slave replication error, others continues without error
- Closed
- relates to
-
MDEV-33189 Server crash after reading outside of bounds on ibdata1 , file corrupted, no auto-recovery
- Closed
-
MDEV-33208 InnoDB: Trying to access update undo rec field 50 in index `PRIMARY` of table NNN but index has only 14 fields
- Closed