← Back to team overview

enterprise-support team mailing list archive

[Bug 1703346] [NEW] Binlog corruption when tmpdir gets full

 

Public bug reported:

In a situation where disk partition used for tmpdir has little free
space, and large enough write  transaction is executed, which does not
fit in binlog_cache_size, an individual write fails with error, but
actual binary log gets corrupted, causing the slave to fail.

Reproduced for InnoDB tables with compound primary key, with standard
replication as well as for PXC.

Example error messages when tmpdir gets full (ML* of MY* files gets
created, apparently depending on whether total transaction file can't be
increased (ML) or individual update query (MY)):

master [localhost] {msandbox} (test) > update test1 set a=a+1,b=b+1,c=c+2 limit 110000;
ERROR 3 (HY000): Error writing file '/home/przemek/sandboxes/rsandbox_mysql-5_6_36/tmp/MLFgYjKP' (Errcode: 28 - No space left on device)
master [localhost] {msandbox} (test) > update test1 set a=a+1,b=b+1,c=c+2 limit 210000;
ERROR 3 (HY000): Error writing file '/home/przemek/sandboxes/rsandbox_mysql-5_6_36/tmp/MYUTuIOS' (Errcode: 28 - No space left on device)

Example error on the slave side:

                Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'binlog truncated in the middle of event; consider out of disk space on master; the first event 'mysql-bin.000008' at 12574553, the last event read from './mysql-bin.000009' at 10668433, the last byte read from './mysql-bin.000009' at 10668452.'
               Last_SQL_Errno: 1032
               Last_SQL_Error: Could not execute Update_rows event on table test.u1; Can't find record in 'u1', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.000009, end_log_pos 10668433

Example error on PXC slave node:

2017-07-07 18:50:39 8665 [ERROR] Error in Log_event::read_log_event(): 'Sanity check failed', data_len: 0, event_type: 0
2017-07-07 18:50:39 8665 [ERROR] WSREP: applier could not read binlog event, seqno: 378308, len: 2680586
2017-07-07 18:50:47 8665 [Warning] WSREP: Failed to apply app buffer: seqno: 378308, status: 1
         at galera/src/trx_handle.cpp:apply():351
Retrying 2th time

Example output from mysqlbinlog tool:

ERROR: Error in Log_event::read_log_event(): 'Found invalid event in binary log', data_len: 2180319, event_type: 0
ERROR: Could not read entry at offset 7233086: Error in log format or read error.
WARNING: The range of printed events ends with a row event or a table map event that does not have the STMT_END_F flag set. This might be because the last statement was not fully written to the log, or because you are using a --stop-position or --stop-datetime that refers to an event in the middle of a statement. The event(s) from the partial statement have not been written to output.

Test case to be found in upstream bug report:
https://bugs.mysql.com/bug.php?id=86991

** Affects: mysql-server
     Importance: Unknown
         Status: Unknown

** Affects: percona-server
     Importance: Undecided
         Status: New

** Affects: percona-server/5.6
     Importance: Undecided
         Status: Confirmed

** Affects: percona-server/5.7
     Importance: Undecided
         Status: New

** Affects: percona-xtradb-cluster
     Importance: Undecided
         Status: Confirmed

** Affects: percona-xtradb-cluster/5.6
     Importance: Undecided
         Status: Confirmed

** Affects: percona-xtradb-cluster/5.7
     Importance: Undecided
         Status: New


** Tags: i195910

** Also affects: percona-xtradb-cluster
   Importance: Undecided
       Status: New

** Also affects: percona-xtradb-cluster/5.6
   Importance: Undecided
       Status: New

** Also affects: percona-xtradb-cluster/5.7
   Importance: Undecided
       Status: New

** Also affects: percona-server/5.6
   Importance: Undecided
       Status: New

** Also affects: percona-server/5.7
   Importance: Undecided
       Status: New

** Bug watch added: MySQL Bug System #72457
   http://bugs.mysql.com/bug.php?id=72457

** Also affects: mysql-server via
   http://bugs.mysql.com/bug.php?id=72457
   Importance: Unknown
       Status: Unknown

** Changed in: percona-xtradb-cluster/5.6
       Status: New => Confirmed

** Changed in: percona-server/5.6
       Status: New => Confirmed

-- 
You received this bug notification because you are a member of Ubuntu
Server/Client Support Team, which is subscribed to MySQL.
Matching subscriptions: Ubuntu Server/Client Support Team
https://bugs.launchpad.net/bugs/1703346

Title:
  Binlog corruption when tmpdir gets full

To manage notifications about this bug go to:
https://bugs.launchpad.net/mysql-server/+bug/1703346/+subscriptions


Follow ups