1. 29 Sep, 2008 1 commit
  2. 28 Sep, 2008 1 commit
    • He Zhenxing's avatar
      BUG#38734 rpl_server_id2 sync_with_master failed · a4cd8862
      He Zhenxing authored
      Rotate event is automatically generated and written when rotating binary
      log or relay log. Rotate events for relay logs are usually ignored by slave
      SQL thread becuase they have the same server id as that of the slave.
      However, if --replicate-same-server-id is enabled, rotate event
      for relay log would be treated as if it's a rotate event from master, and
      would be executed by slave to update the rli->group_master_log_name and
      rli->group_master_log_pos to a wrong value and cause the MASTER_POS_WAIT
      function to fail and return NULL.
      
      This patch fixed this problem by setting a flag bit (LOG_EVENT_RELAY_LOG_F)
      in the event to tell the SQL thread to ignore these Rotate events generated
      for relay logs.
      
      This patch also added another binlog event flag bit (LOG_EVENT_ARTIFICIAL_F)
      to distinquish faked events, the method used before this was by checking if
      log_pos was zero.
      
      
      sql/log.h:
        Add a member to MYSQL_BIN_LOG to distinguish binary log from relay log.
      sql/log_event.cc:
        Change artificial_event member to LOG_EVENT_ARTIFICIAL_F flag
        
        If LOG_EVENT_RELAY_LOG_F is set in the event flags for a rotate event, ignore it when updating position
        
        Refactored the code in Rotate_log_event::do_update_pos
      sql/log_event.h:
        Add LOG_EVENT_RELAY_LOG_F flag to Log_event flags
        Add RELAY_LOG flag to Rotate_log_event flags
      sql/sql_repl.cc:
        Set LOG_EVENT_ARTIFICIAL_F for fake rotate events
      a4cd8862
  3. 22 Sep, 2008 4 commits
  4. 20 Sep, 2008 4 commits
  5. 15 Sep, 2008 5 commits
  6. 11 Sep, 2008 4 commits
  7. 10 Sep, 2008 2 commits
  8. 09 Sep, 2008 1 commit
  9. 06 Sep, 2008 4 commits
  10. 05 Sep, 2008 13 commits
  11. 04 Sep, 2008 1 commit