Description:
Since bug #39168 is fixed, the errors are less frequent but they can still happen. It would be useful to have some improved logging when they occur.
Version: '5.1.50-enterprise-gpl-advanced-debug' socket: '' port: 3306 MySQL
100823 15:54:31 InnoDB: ERROR: the age of the last checkpoint is 7560364,
InnoDB: which exceeds the log group capacity 7546061.
InnoDB: If you are using big BLOB or TEXT rows, you must set the
InnoDB: combined size of log files at least 10 times bigger than the
InnoDB: largest such row.
100823 15:54:47 InnoDB: ERROR: the age of the last checkpoint is 25865105,
InnoDB: which exceeds the log group capacity 7546061.
InnoDB: If you are using big BLOB or TEXT rows, you must set the
InnoDB: combined size of log files at least 10 times bigger than the
InnoDB: largest such row.
Apparently, the first message is a benign WARNING since there is a safety margin that has not been exceeded.
The second message could be dangerous, since InnoDB's ability to recover is impeded - then the message should say ERROR.
How to repeat:
have small innodb_log_file_size, run a random workload with many blobs until errors appear in the logs.
Suggested fix:
o) distinguish between warning/error printouts of this message.
o) please make the warning less than 5 lines in length, or print once only.
o) please write the percentage difference so we don't have to calculate it.
o) time to reword that "..at least 10 times..", since a 4G limit doesn't allow this for all scenarios.
o) if the error margin is near limits, innodb should enable the innodb_monitor to print extra info about current status.
o) add anything else that can improve error message content, root cause analysis.