Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Not a Bug
-
10.5.10, 10.6.3
-
Linux Ubuntu 20.04 LTS
Description
log_close() may display a log_overwrite_warning() which contains the text:
InnoDB: The age of the last checkpoint is <age>, which exceeds the log capacity <capacity>.
This is printed using sql_print_error, meaning it appears as an ERROR in the log.
However, log_close() appears to simply treat this as a warning when the redo log is full and will return PAGE_FLUSH_SYNC to indicate that "furious flushing is needed".
Therefore, this appears not to be an error that would result in important redo log entries being overwritten. Instead, this appears to just be an indication that the redo logs are full and that the server will pause to flush before continuing.
Incorrectly reporting this as an ERROR will cause users to worry that there is a data integrity problem, when in reality it's just an informational note.
I am getting many of these ERRORs in my logs on a slave server when I do a shutdown with innodb_fast_shutdown = 0, on a database that regularly writes around 200MB per minute to the 1G redo log file and therefore fills it up every few minutes.
Here is an example of the error messages on shutdown:
2022-02-05 14:08:29 0 [Note] /usr/sbin/mariadbd (initiated by: root[root] @ localhost []): Normal shutdown
|
2022-02-05 14:08:29 0 [Note] InnoDB: FTS optimize thread exiting.
|
2022-02-05 14:08:29 0 [Note] InnoDB: to purge 9 transactions
|
2022-02-05 14:08:30 0 [Note] InnoDB: Starting shutdown...
|
2022-02-05 14:08:30 0 [Note] InnoDB: Dumping buffer pool(s) to /mariadb/ib_buffer_pool
|
2022-02-05 14:08:30 0 [Note] InnoDB: Restricted to 32388 pages due to innodb_buf_pool_dump_pct=25
|
2022-02-05 14:08:30 0 [Note] InnoDB: Buffer pool(s) dump completed at 220205 14:08:30
|
2022-02-05 14:11:05 0 [ERROR] InnoDB: The age of the last checkpoint is 966376793, which exceeds the log capacity 966365799.
|
2022-02-05 14:11:21 0 [ERROR] InnoDB: The age of the last checkpoint is 994921739, which exceeds the log capacity 966365799.
|
2022-02-05 14:11:37 0 [ERROR] InnoDB: The age of the last checkpoint is 1022257877, which exceeds the log capacity 966365799.
|
2022-02-05 14:11:53 0 [ERROR] InnoDB: The age of the last checkpoint is 1047226930, which exceeds the log capacity 966365799.
|
2022-02-05 14:12:09 0 [ERROR] InnoDB: The age of the last checkpoint is 1071228676, which exceeds the log capacity 966365799.
|
2022-02-05 14:12:25 0 [ERROR] InnoDB: The age of the last checkpoint is 1093753956, which exceeds the log capacity 966365799.
|
2022-02-05 14:12:41 0 [ERROR] InnoDB: The age of the last checkpoint is 1112481150, which exceeds the log capacity 966365799.
|
2022-02-05 14:12:54 0 [Note] InnoDB: Waiting for change buffer merge to complete number of bytes of change buffer just merged: 192206046
|
2022-02-05 14:13:00 0 [Note] InnoDB: Removed temporary tablespace data file: "./ibtmp1"
|
2022-02-05 14:13:00 0 [Note] InnoDB: Shutdown completed; log sequence number 236522592867138; transaction id 35631972102
|
2022-02-05 14:13:00 0 [Note] /usr/sbin/mariadbd: Shutdown complete
|
Attachments
Issue Links
- relates to
-
MDEV-14462 Confusing error message: ib_logfiles are too small for innodb_thread_concurrency=0
- Closed
-
MDEV-19895 Support "autoset" in SET GLOBAL for AUTO_SET system variables
- Open
-
MDEV-29905 Change buffer operations fail to check for log file overflow
- Closed
-
MDEV-29982 Improve the InnoDB log overwrite error message
- Closed