• unknown's avatar
    Bug#17642 mysqlbinlog: Restore from row-based binlog fails · e653222d
    unknown authored
    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.
    
    
    client/mysqlbinlog.cc:
      Implementing --force-if-open option with TRUE by default
    mysql-test/mysql-test-run.pl:
      Using --disable-force-if-open for all tests to avoid
      sporadic test failures because of running "mysqlbinlog"
      on a non-flushed binlog files.
    mysql-test/r/binlog_row_mix_innodb_myisam.result:
      FLush log before running dumping.
    mysql-test/r/binlog_stm_mix_innodb_myisam.result:
      FLush log before running dumping.
    mysql-test/r/mysqlbinlog.result:
      FLush log before running dumping.
    mysql-test/r/mysqlbinlog2.result:
      FLush log before running dumping.
    mysql-test/r/mysqlbinlog_base64.result:
      FLush log before running dumping.
    mysql-test/r/user_var-binlog.result:
      FLush log before running dumping.
    mysql-test/t/binlog_row_mix_innodb_myisam.test:
      FLush log before running dumping.
    mysql-test/t/binlog_stm_mix_innodb_myisam.test:
      FLush log before running dumping.
    mysql-test/t/mysqlbinlog.test:
      FLush log before running dumping.
      
      Adding new tests:
      - checking that $MYSQL_BINLOG returns an error on a non-closed binlog
      file because of --disable-force-if-open
      - checking that it does not return an error with --force-if-open
    mysql-test/t/mysqlbinlog2.test:
      FLush log before running dumping.
    mysql-test/t/mysqlbinlog_base64.test:
      FLush log before running dumping.
    mysql-test/t/user_var-binlog.test:
      FLush log before running dumping.
    e653222d
mysqlbinlog2.result 27 KB