1. 03 Nov, 2009 1 commit
    • Alfranio Correia's avatar
      WL#2687 WL#5072 BUG#40278 BUG#47175 · 19c380aa
      Alfranio Correia authored
      Non-transactional updates that take place inside a transaction present problems
      for logging because they are visible to other clients before the transaction
      is committed, and they are not rolled back even if the transaction is rolled
      back. It is not always possible to log correctly in statement format when both
      transactional and non-transactional tables are used in the same transaction.
      
      In the current patch, we ensure that such scenario is completely safe under the
      ROW and MIXED modes.
      19c380aa
  2. 29 Oct, 2009 2 commits
  3. 27 Oct, 2009 1 commit
  4. 23 Oct, 2009 5 commits
  5. 20 Oct, 2009 1 commit
    • unknown's avatar
      Bug#13963 SHOW SLAVE HOSTS is unreliable · 36fd029e
      unknown authored
            
            Before the patch, slaves only appear in the output of SHOW SLAVE HOSTS 
            when report-host option is set. If an expected slave does not appear in  
            the list, nobody knows whether the slave does not connect or has started
            without the "report-host" option. The output also contains a strange  
            field "Rpl_recovery_rank" which has never been implemented and the manual 
            of MySQL5.4 declares that the field has been removed from MySQL5.4.
                                              
            This patch is done with these,
            According to the manual of MySQL5.4, "Rpl_recovery_rank" is removed.
            Slaves will register themselves to master no matter if report_host option is set
            or not. When slaves are registering themselves, their Server_ids, report_host
            and other information are together sent to master. Sever_ids are never null 
            and is unique in one replication group. Slaves always can be identified with  
            different Server_ids no matter if report_host exists.
      36fd029e
  6. 19 Oct, 2009 3 commits
    • Sven Sandberg's avatar
      BUG#39934: Slave stops for engine that only support row-based logging · 631139c1
      Sven Sandberg authored
      Post-push fix.
      Problem: In a previous patch for BUG#39934, rpl_idempotency.test
      was split in two tests. The mtr suppressions in the original test
      did not make it into the new test. This caused pushbuild warnings.
      Fix: copy the mtr suppressions from rpl_idempotency.test to
      rpl_row_idempotency.test
      
      
      mysql-test/suite/rpl/r/rpl_row_idempotency.result:
        updated result file
      mysql-test/suite/rpl/t/rpl_row_idempotency.test:
        copied the warnings from rpl_idempotency.test to
        rpl_row_idempotency.test
      631139c1
    • Sven Sandberg's avatar
      BUG#39934 - post-push fixes. · be75d8ad
      Sven Sandberg authored
      The rpl_ndb/combinations file was introduced as part of the fix.
      The file contained an error: ndb suites shall not run with
      binlog_format=mixed. Removed that combination.
      
      mysql-test/suite/rpl_ndb/combinations:
        removed binlog_format=statement combination since ndb does not
        support statement format.
      mysql-test/suite/rpl_ndb/t/rpl_ndb_mixed_tables.test:
        Added have_binlog_format_mixed_or_row.inc.
      be75d8ad
    • Sven Sandberg's avatar
      BUG#39934: Slave stops for engine that only support row-based logging · d7787383
      Sven Sandberg authored
      post-push fixes. the test case tried to use a udf that had not been loaded. removed the udf.
      
      
      mysql-test/suite/rpl_ndb/r/rpl_ndb_binlog_format_errors.result:
        updated result file
      mysql-test/suite/rpl_ndb/t/rpl_ndb_binlog_format_errors.test:
        myfunc_int() was supposed to be a udf. but the udf was not loaded.
        since the test already uses another plugin, and we don't support
        multiple plugin directories, i removed the udf function. it was not
        strictly needed.
      d7787383
  7. 18 Oct, 2009 2 commits
    • He Zhenxing's avatar
      Postfix of bug#45674 · d8dee8cb
      He Zhenxing authored
      rpl_semi_sync_master_wait_sessions was reset by FLUSH STATUS,
      which could cause the master fail to wake up waiting sessions and
      result in master timeout waiting for slave reply.
      
      rpl_semi_sync_master_wait_session should not be reset, this 
      problem is fixed by this patch.
      
      
      plugin/semisync/semisync_master_plugin.cc:
        Change wait_sessions from SHOW_LONG back to SHOW_FUNC so that it will not be reset by FLUSH STATUS.
      d8dee8cb
    • He Zhenxing's avatar
      Manual merge 5.1-rep+2 to 5.1-rep+3 · 96305128
      He Zhenxing authored
      96305128
  8. 14 Oct, 2009 2 commits
    • Sven Sandberg's avatar
      BUG#39934: Slave stops for engine that only support row-based logging · 66481aeb
      Sven Sandberg authored
      Post-push fix.
      Problem: After the original bugfix, if a statement is unsafe,
      binlog_format=mixed, and engine is statement-only, a warning was
      generated and the statement executed. However, it is a fundamental
      principle of binlogging that binlog_format=mixed should guarantee
      correct logging, no compromise. So correct behavior is to generate
      an error and don't execute the statement.
      Fix: Generate error instead of warning.
      Since issue_unsafe_warnings can only generate one error message,
      this allows us to simplify the code a bit too:
      decide_logging_format does not have to save the error code for
      issue_unsafe_warnings
      
      
      mysql-test/suite/binlog/r/binlog_statement_insert_delayed.result:
        updated result file
      mysql-test/suite/binlog/r/binlog_stm_ps.result:
        updated result file
      mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result:
        updated result file
      mysql-test/suite/binlog/r/binlog_unsafe.result:
        updated result file
      mysql-test/suite/rpl/r/rpl_stm_found_rows.result:
        updated result file
      mysql-test/suite/rpl/r/rpl_stm_loadfile.result:
        updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_binlog_format_errors.result:
        updated result file
      mysql-test/suite/rpl_ndb/t/rpl_ndb_binlog_format_errors.test:
        updated test:
         - ER_BINLOG_UNSAFE_AND_STMT_ENGINE is now an error.
         - added test for multiple types of unsafety
      sql/share/errmsg.txt:
         - Reformulated ER_BINLOG_UNSAFE_AND_STMT_ENGINE to reflect that it
           is now an error, not a warning.
         - Added "Reason for unsafeness" to ER_BINLOG_UNSAFE_STATEMENT and
           ER_BINLOG_UNSAFE_AND_STMT_ENGINE.
      sql/sql_class.cc:
        In decide_logging_format:
         - generate an error immediately in case 3, instead of scheduling a
           warning to be generated later. also updated comments accordingly
         - in case 7, there is only one unsafe warning error code now, so we
           don't need to store it in binlog_unsafe_warning_flags
           (see changes in sql_lex.h)
         - fixed compilation warning in DBUG_PRINT
        
        In issue_binlog_warning:
         - moved array of error codes to sql_lex.h (so that they are
           accessible also from decide_logging_format)
         - simplified code after the first set of bits in
           binlog_unsafe_warning_flags was removed
      sql/sql_class.h:
         - got rid of enum_binlog_stmt_warning. It's not needed anymore
           since we only have one type of unsafe warning (one of them
           turned into an error)
         - updated comments accordingly
      sql/sql_lex.cc:
        added initialization of the array of error codes that has been
        moved from THD::issue_unsafe_warnings to LEX.
      sql/sql_lex.h:
        Moved array of error codes from THD::issue_unsafe_warnings to LEX.
      66481aeb
    • He Zhenxing's avatar
      Postfix after merge semi-sync with heartbeat · 6ae50d8a
      He Zhenxing authored
      Use ev_offset instead of 1 as the packet header offset when getting
      log position from events for heartbeat
      
      call reset_transmit_packet before calling send_heartbeat_event
      
      
      sql/sql_repl.cc:
        Use ev_offset instead of 1 as the packet header offset when getting log position from events for heartbeat
        call reset_transmit_packet before calling send_heartbeat_event
      6ae50d8a
  9. 13 Oct, 2009 1 commit
  10. 12 Oct, 2009 5 commits
    • He Zhenxing's avatar
      Backport post fix for semisync · 48e98026
      He Zhenxing authored
      Remove functions that no longer needed
      Fix warning suppressions
      
      mysql-test/suite/rpl/t/rpl_semi_sync.test:
        Fix warning suppressions
      plugin/semisync/semisync_slave.cc:
        Remove functions that no longer needed
      plugin/semisync/semisync_slave.h:
        Remove functions that no longer needed
      48e98026
    • He Zhenxing's avatar
      Backport BUG#47298 Semisync: always wait until timeout if no semi-sync slave available · 1a7c7a40
      He Zhenxing authored
      Add an option to control whether the master should keep waiting
      until timeout when it detected that there is no semi-sync slave
      available.
      
      The bool option 'rpl_semi_sync_master_wait_no_slave' is 1 by
      defalt, and will keep waiting until timeout. When set to 0, the
      master will switch to asynchronous replication immediately when
      no semi-sync slave is available.
      1a7c7a40
    • He Zhenxing's avatar
      BUG#45674 FLUSH STATUS does not reset semisynchronous counters · 26b47d93
      He Zhenxing authored
      Semi-sync status were not reset by FLUSH STATUS, this was because
      all semi-sync status variables are defined as SHOW_FUNC and FLUSH
      STATUS could only reset SHOW_LONG type variables.
      
      This problem is fixed by change all status variables that should
      be reset by FLUSH STATUS from SHOW_FUNC to SHOW_LONG.
      
      After the fix, the following status variables will be reset by
      FLUSH STATUS:
        Rpl_semi_sync_master_yes_tx
        Rpl_semi_sync_master_no_tx
      
      Note: normally, FLUSH STATUS itself will be written into binlog
      and be replicated, so after FLUSH STATS, one of
        Rpl_semi_sync_master_yes_tx
        Rpl_semi_sync_master_no_tx
      can be 1 dependent on the semi-sync status. So it's recommended
      to use FLUSH NO_WRITE_TO_BINLOG STATUS to avoid this.
      26b47d93
    • He Zhenxing's avatar
      Backport Bug#45852 Semisynch: Last_IO_Error: Fatal error: Failed to run 'after_queue_event' hook · 825dce21
      He Zhenxing authored
      Errors when send reply to master should never cause the IO thread
      to stop, because master can fall back to async replication if it
      does not get reply from slave.
      
      The problem is fixed by deliberately ignoring the return value of
      slaveReply.
      825dce21
    • He Zhenxing's avatar
      Backport BUG#45848 Semisynchronous replication internals are visible in SHOW PROCESSLIST and logs · f8155de0
      He Zhenxing authored
      Semi-sync uses an extra connection from slave to master to send
      replies, this is a normal client connection, and used a normal
      SET query to set the reply information on master, which is visible
      to user and may cause some confusion and complaining.
      
      This problem is fixed by using the method of sending reply by
      using the same connection that is used by master dump thread to
      send binlog to slave. Since now the semi-sync plugins are integrated
      with the server code, it is not a problem to use the internal net
      interfaces to do this.
      
      The master dump thread will mark the event requires a reply and
      wait for the reply when the event just sent is the last event
      of a transaction and semi-sync status is ON; And the slave will
      send a reply to master when it received such an event that requires
      a reply.
      f8155de0
  11. 10 Oct, 2009 1 commit
  12. 09 Oct, 2009 1 commit
  13. 07 Oct, 2009 2 commits
  14. 06 Oct, 2009 1 commit
  15. 03 Oct, 2009 5 commits
    • Serge Kozlov's avatar
      WL#3788 · 494cb46d
      Serge Kozlov authored
      It is backport patch.
      This adds new test case for testing affects of some variables to replication.
      494cb46d
    • He Zhenxing's avatar
      Manual merge semi-sync to 5.1-rep+2 · f108d059
      He Zhenxing authored
      f108d059
    • He Zhenxing's avatar
      Fix semisync master/slave status always showed as OFF on sparc · d8724a45
      He Zhenxing authored
      On sparc, semisync master/slave status is always showed as OFF, this
      is fixed by change rpl_semisync_master/slave_status variables from
      long to char.
      
      plugin/semisync/semisync_master.cc:
        Change rpl_semisync_master_status variables from long to char
      plugin/semisync/semisync_master.h:
        Change rpl_semisync_master_status variables from long to char
      plugin/semisync/semisync_slave.cc:
        Change rpl_semisync_slave_status variables from long to char
      plugin/semisync/semisync_slave.h:
        Change rpl_semisync_slave_status variables from long to char
      d8724a45
    • He Zhenxing's avatar
      Auto merge · a8c14d9e
      He Zhenxing authored
      a8c14d9e
    • He Zhenxing's avatar
      Post fix result file · d51bd444
      He Zhenxing authored
      d51bd444
  16. 02 Oct, 2009 7 commits