Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.3(EOL), 10.4(EOL), 10.5, 10.6, 10.7(EOL), 10.8(EOL), 10.9(EOL), 10.10(EOL), 10.11
Description
A log excerpt that was originally posted in MDEV-27784 strongly suggests that the change buffer merge may cause an InnoDB log file overflow:
2022-10-24 23:20:16 0 [Note] InnoDB: FTS optimize thread exiting.
|
2022-10-24 23:20:16 0 [Note] InnoDB: to purge 5 transactions
|
2022-10-24 23:20:17 0 [Note] InnoDB: Starting shutdown...
|
2022-10-24 23:20:17 0 [Note] InnoDB: Dumping buffer pool(s) to /data/maria_data/ib_buffer_pool
|
2022-10-24 23:20:17 0 [Note] InnoDB: Restricted to 354860 pages due to innodb_buf_pool_dump_pct=25
|
2022-10-24 23:20:17 0 [Note] InnoDB: Buffer pool(s) dump completed at 221024 23:20:17
|
2022-10-24 23:57:37 0 [ERROR] InnoDB: The age of the last checkpoint is 966373838, which exceeds the log capacity 966365799.
|
2022-10-24 23:57:53 0 [ERROR] InnoDB: The age of the last checkpoint is 974973721, which exceeds the log capacity 966365799.
|
2022-10-24 23:58:09 0 [ERROR] InnoDB: The age of the last checkpoint is 983054253, which exceeds the log capacity 966365799.
|
2022-10-24 23:58:25 0 [ERROR] InnoDB: The age of the last checkpoint is 991661268, which exceeds the log capacity 966365799.
|
...
|
2022-10-25 2:02:57 0 [ERROR] InnoDB: The age of the last checkpoint is 4351924949, which exceeds the log capacity 966365799.
|
At this point, the server was forcibly killed, and it was unable to recover, because the last valid checkpoint had been overwritten 4½ times.
A design constraint is that before any buffer page latch is acquired in a mini-transaction that will write something, log_free_check() must be called. In the entire change buffer subsystem, only the function ibuf_remove_free_page() contains such a call, added in MDEV-13637.
Attachments
Issue Links
- relates to
-
MDEV-29982 Improve the InnoDB log overwrite error message
- Closed
-
MDEV-29984 innodb_fast_shutdown=0 fails to report change buffer merge progress
- Closed
-
MDEV-30009 InnoDB shutdown hangs when the change buffer is corrupted
- Closed
-
MDEV-13637 InnoDB change buffer housekeeping can cause redo log overrun and possibly deadlocks
- Closed
-
MDEV-27734 Set innodb_change_buffering=none by default
- Closed
-
MDEV-27784 log_overwrite_warning displays an error instead of a warning
- Closed