Bug #17642 mysqlbinlog: Restore from row-based binlog fails
Submitted: 22 Feb 2006 11:40 Modified: 1 Feb 2007 0:36
Reporter: Joerg Bruehe Email Updates:
Status: Closed
Category:Server: RBR Severity:S2 (Serious)
Version:5.1.7-beta OS:some Linux
Assigned to: Alexander Barkov Target Version:

[22 Feb 2006 11:40] Joerg Bruehe
Description:
Build of 5.1.7-beta, based on ChangeSet
  1.2154 06/02/21 18:24:28 joerg@mysql.com +1 -0
  configure.in  (in the new clone):
      This is a re-clone after tagging, so the version must be set back to 5.1.7-beta.

-------------------------------------------------------
*** r/mysqlbinlog_base64.result
--- r/mysqlbinlog_base64.reject
***************
*** 15,89
  5
  select * from t2;
  word
- Aarhus
- Aaron
- Ababa
- aback
..... (lines cut)
- Aberdeen
- Abernathy
- aberrant
- aberration
  drop table t1;
  drop table t2;
--- 15,19
-------------------------------------------------------

OCCURRED:
hammer-glibc23-5.1.log   normal+rowrepl   (Linux x86_64)
hammer-glibc23-5.1.log   ps+rowrepl+NDB
pegasos3-glibc23-5.1.log   normal+rowrepl  (Linux  PowerPC)
pegasos3-glibc23-5.1.log   ps+rowrepl+NDB
rhas3-x86-glibc23-5.1.log   normal+rowrepl  (Linux x86)

It passed in the NDB test run on rhas3-x86, so could this be a race condition?

How to repeat:
Detected by running the test suite.
[10 Apr 2006 19:44] Brian Pontz
Also happening with 5.1.9-pre

mysqlbinlog_base64             [ fail ]

Errors are (from PATH/mysqltest-time) :
mysqltest: Result length mismatch
(the last lines may be the most important ones)
Below are the diffs between actual and expected results:
-------------------------------------------------------
*** r/mysqlbinlog_base64.result
--- r/mysqlbinlog_base64.reject
***************
*** 15,89
  5
  select * from t2;
  word
- Aarhus
- Aaron
- Ababa
- aback
- abaft
- abandon
- abandoned
- abandoning
- abandonment
- abandons
- Aarhus
- Aaron
- Ababa
- aback
- abaft
- abandon
- abandoned
- abandoning
- abandonment
- abandons
- abase
- abased
- abasement
- abasements
- abases
- abash
- abashed
- abashes
- abashing
- abasing
- abate
- abated
- abatement
- abatements
- abater
- abates
- abating
- Abba
- abbe
- abbey
- abbeys
- abbot
- abbots
- Abbott
- abbreviate
- abbreviated
- abbreviates
- abbreviating
- abbreviation
- abbreviations
- Abby
- abdomen
- abdomens
- abdominal
- abduct
- abducted
- abduction
- abductions
- abductor
- abductors
- abducts
- Abe
- abed
- Abel
- Abelian
- Abelson
- Aberdeen
- Abernathy
- aberrant
- aberration
  drop table t1;
  drop table t2;
--- 15,19

nocona-icc-glibc23-5.1-community.log   normal+rowrepl
rhas3-x86-glibc23-5.1-community.log   normal+rowrepl
sunfire100c-5.1-community.log   normal+rowrepl
[31 Oct 2006 18:15] Joerg Bruehe
Occurred again in 5.1.12-beta, exactly same symptom.

OCCURRED:
butch-64bit-5.1-community.log   normal+rowrepl
butch-64bit-5.1-community.log   ps+rowrepl+NDB
Do-rpm-rhas3-x86-5.1-standard.log   ps+rowrepl+NDB
sol10-x86-5.1-community.log   ps+rowrepl+NDB
sunfire100a-64bit-5.1-community.log   normal+rowrepl
[24 Nov 2006 11:36] 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/15795

ChangeSet@1.2373, 2006-11-24 15:38:41+04:00, bar@mysql.com +2 -0
  Bug#17642 mysqlbinlog: Restore from row-based binlog fails
  Problem: mysqlbinlog_base64 failed sporadically.
  Reason: "mysqlbinglog --hexdump" could start before server
  writes everything into the log
  Fix: adding "flush logs" to garantee dumping at
  the safe moment of time.
[27 Nov 2006 16:26] Chuck Bell
I have reviewed this fix. The fix looks fine to me.
[15 Dec 2006 10: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/17038

ChangeSet@1.2362, 2006-12-14 14:05:25+04:00, bar@mysql.com +14 -0
  Bug#17642 mysqlbinlog: Restore from row-based binlog fails
  
  Problem: mysqlbinlog_base64 failed sporadically.
  
  Reason: Missing "flush logs" before running $MYSQL_BINLOG,
  which could start dumping the log file before server
  has finished writting into it.
  Fix:
  - implementing --force-if-open option to "mysqlbinlog"
  - adding --disable-force-if-open to make $MYSQL_BINLOG
    fail on non-closed log files, to garantee that nobody
    will forget "flush logs" in the future.
  - adding "flush logs" into all affected tests.
[22 Dec 2006 7:43] Alexander Barkov
Pushed into 5.1.15-rpl
[18 Jan 2007 15:35] Lars Thalmann
Pushed into 5.1.15
[1 Feb 2007 0:36] Jon Stephens
Thank you for your bug report. This issue has been committed to our source repository of
that product and will be incorporated into the next release.

If necessary, you can access the source repository and build the latest available
version, including the bug fix. More information about accessing the source trees is
available at

    http://dev.mysql.com/doc/en/installing-source.html

This appears to have been a testing issue only and not directly relevant to end users, so
I've closed the bug without taking further action.