xtrabackup --slave-info does not handle multi-master replication

Bug #1551634 reported by Johan Nilsson
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Percona XtraBackup moved to https://jira.percona.com/projects/PXB
Status tracked in 2.4
2.4
Fix Released
Wishlist
Vasily Nemkov

Bug Description

When running Percona Xtrabackup 2.4.1, the option --slave-info does not include channel name.
And as far as I can understand when reviewing the code, multiple channels will not work correctly...

# xtrabackup --version
xtrabackup version 2.4.1 based on MySQL server 5.7.10 Linux (x86_64) (revision id: a2dc9d4)

# mysql -e "select @@version
+------------+
| @@version |
+------------+
| 5.7.11-log |
+------------+
# mysql -e "show slave status\G"
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: <host>
                  Master_User: <user>
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 151
               Relay_Log_File: mysql-relay-<host>.000011
                Relay_Log_Pos: 364
        Relay_Master_Log_File: mysql-bin.000003
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table: mysql.%
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 151
              Relay_Log_Space: 747
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 972
                  Master_UUID: 7095dd7c-d634-11e5-8252-6cae8b52a7ba
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp:
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set:
            Executed_Gtid_Set:
                Auto_Position: 0
         Replicate_Rewrite_DB:
                 Channel_Name: <channel>
           Master_TLS_Version:

# cat xtrabackup_slave_info
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=151

Looking at storage/innobase/xtrabackup/innobackupex, it seems like the info for xtrabackup_slave_info is fetched from 'SHOW SLAVE STATUS', when I guess that the correct way should be to select information from mysql.slave_master_info, mysql.slave_relay_log_info and mysql.gtid_executed.
An alternative solution whould be to get configured channel names from mysql.slave_master_info, and then do 'SHOW SLAVE STATUS FOR CHANNEL $channel_name'

Revision history for this message
Sergei Glushchenko (sergei.glushchenko) wrote :

Thank you for the bug report

Revision history for this message
Vasily Nemkov (vasily.nemkov) wrote :
Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PXB-1022

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.