Bug #106041 purge binary log fails when disk is full
Submitted: 5 Jan 2022 9:23 Modified: 11 Jan 2022 14:21
Reporter: Aftab Khan Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server: Logging Severity:S2 (Serious)
Version:8.0 OS:Any
Assigned to: MySQL Verification Team CPU Architecture:Any

[5 Jan 2022 9:23] Aftab Khan
Description:
Attempting to purge binary logs raises error

 purge master logs before now() - interval 3 day;
ERROR 29 (HY000): File '/box/mysql_binlog/app/bin.~rec~' not found (OS errno 28 - No space left on device)

From error log:

2022-01-05T01:10:20.253282-08:00 2605810 [ERROR] [MY-010846] [Server] MYSQL_BIN_LOG::open_purge_index_file failed to open register file.
2022-01-05T01:10:20.253788-08:00 2605810 [ERROR] [MY-010840] [Server] MYSQL_BIN_LOG::purge_logs failed to sync the index file.

How to repeat:
When no free space left for binary logs then try purging binary logs

show variables where variable_name in('log_bin_basename', 'datadir');
+------------------+---------------------------+
| Variable_name    | Value                     |
+------------------+---------------------------+
| datadir          | /box/mysql/app/           |
| log_bin_basename | /box/mysql_binlog/app/bin |
+------------------+---------------------------+
2 rows in set (0.01 sec)
[11 Jan 2022 14:21] MySQL Verification Team
Hi Mr. Khan,

Thank you for your bug report.

However, purging does require additional disk space. Hence, you have to free some space first.

Not a bug.