Bug #10798 If relay log fails to rotate, slave will crash after
Submitted: 23 May 2005 11:36 Modified: 26 Feb 2007 21:23
Reporter: Guilhem Bichot
Status: Closed
Category:Server: Replication Severity:S3 (Non-critical)
Version:4.0 OS:Linux (linux)
Assigned to: Ramil Kalimullin Target Version:

[23 May 2005 11:36] Guilhem Bichot
Description:
When relay log rotation fails (for whatever reasons), the relay log is internally marked
as "closed" but when the I/O thread later wants to write to it it fails to notice this, so
tries to write to a closed log, and it segfaults.

How to repeat:
A user gets it on Linux:
http://forums.mysql.com/read.php?26,16055,26861#msg-26861
and by looking at code it is clear that I/O thread tries to write to an IO_CACHE which has
been end_io_cache()d already (so it writes to freed memory).
[18 Dec 2006 12:49] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/17107

ChangeSet@1.2598, 2006-12-18 15:50:21+04:00, ramil@mysql.com +1 -0
  Fix for bug #10798: If relay log fails to rotate, slave will crash after
  
  The relay log may not be open for some reason (e.g. disk error) after rotation,
  and using it causes the slave crash.
  
  Fix: check we have it open before access, return error otherwise.
[18 Dec 2006 14:09] Guilhem Bichot
approved with minor comments sent by mail
[18 Dec 2006 14:38] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/17114

ChangeSet@1.2598, 2006-12-18 17:38:59+04:00, ramil@mysql.com +1 -0
  Fix for bug #10798: If relay log fails to rotate, slave will crash after
  
  The relay log may not be open for some reason (e.g. disk error) after rotation,
  and using it causes the slave crash.
  
  Fix: check we have it open before access, return error otherwise.
[14 Feb 2007 15:56] Chad MILLER
Available in 4.1.23, 5.0.36, and 5.1.16-beta.
[26 Feb 2007 21:23] Paul DuBois
Noted in 4.1.23, 5.0.36, 5.1.16 changelogs.

If a slave server closed its relay log (for example, due to an error
during log rotation), the I/O thread did not recognize this and still
tried to write to the log, causing a server crash.