Bug #93375 Documentation is incorrect about binary logging behavior when disk is full
Submitted: 27 Nov 2018 21:41 Modified: 7 Dec 2018 11:33
Reporter: Geoff Montee Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Documentation Severity:S3 (Non-critical)
Version:5.6, 5.7, 8.0 OS:Any
Assigned to: CPU Architecture:Any
Tags: binlog, documentation, replication

[27 Nov 2018 21:41] Geoff Montee
Description:
The documentation says the following:

"Writes to the binary log file and binary log index file are handled in the same way as writes to MyISAM tables. See Section B.6.3.4, “How MySQL Handles a Full Disk”."

https://dev.mysql.com/doc/refman/8.0/en/binary-log.html

And it also says:

"This section describes how MySQL responds to disk-full errors (such as “no space left on device”), and to quota-exceeded errors (such as “write failed” or “user block limit reached”).

This section is relevant for writes to MyISAM tables. It also applies for writes to binary log files and binary log index file, except that references to “row” and “record” should be understood to mean “event.”

When a disk-full condition occurs, MySQL does the following:

It checks once every minute to see whether there is enough space to write the current row. If there is enough space, it continues as if nothing had happened.

Every 10 minutes it writes an entry to the log file, warning about the disk-full condition.

To alleviate the problem, take the following actions:

To continue, you only have to free enough disk space to insert all records.

Alternatively, to abort the thread, use mysqladmin kill. The thread is aborted the next time it checks the disk (in one minute).

Other threads might be waiting for the table that caused the disk-full condition. If you have several “locked” threads, killing the one thread that is waiting on the disk-full condition enables the other threads to continue."

https://dev.mysql.com/doc/refman/8.0/en/full-disk.html

The note about binary logging behavior is not entirely correct. The actual behavior can depend on the value of the binlog_error_action option, which was added in 5.6.

https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_...

How to repeat:
See the relevant documentation pages.

Suggested fix:
Clarify the documentation.
[28 Nov 2018 7:21] MySQL Verification Team
Hello Geoff Montee,

Thank you for the report and feedback!

Thanks,
Umesh
[7 Dec 2018 11:33] Margaret Fisher
Posted by developer:
 
Thanks for pointing this out. The sentence you mention should have been revised when binary log group commit and the binlog_error_action system variable were introduced in MySQL 5.6. I have removed it and replaced it with a description based on binlog_error_action. This should show in the published docs shortly.