Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 10.0.12-galera
    • Component/s: None
    • Labels:
      None

      Description

      [6:26:01 PM] Jan Lindström: Here is what needs to be tested:
      [6:26:10 PM] Jan Lindström: 1) set up a galera cluster with 2 nodes
      [6:26:20 PM] Jan Lindström: 2) insert data to node 1
      [6:26:28 PM] Jan Lindström: 3) insert data to node 2
      [6:26:49 PM] Jan Lindström: now see what kind of gtids are stored to binlogs on both nodes
      [6:27:06 PM] Jan Lindström: in setup you should set server_id and domain_id on both nodes to lets say 1
      [6:27:21 PM] Jan Lindström: 4) remove node 2 from cluster
      [6:27:38 PM] Jan Lindström: 5) insert more data to node 2
      [6:27:58 PM] Jan Lindström: 6) but node 2 back to cluster and see what happens at sst
      [6:28:07 PM] Jan Lindström: 7) observer again gtids on binlogs
      [6:28:20 PM] Jan Lindström: 8) remove node 2 from cluster
      [6:28:25 PM] Jan Lindström: 9) insert data to node 1
      [6:28:34 PM] Jan Lindström: 10) bring node2 back to cluster
      [6:28:51 PM] Jan Lindström: 11) observer what happens at sst, and gtids on binlogs

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            nirbhay_c Nirbhay Choubey added a comment -

            Configuration:

            Node 1:
            log-error
            binlog-format=row
            innodb_autoinc_lock_mode=2
            log-bin
            log-slave-updates=1
            gtid-strict-mode=1
            wsrep_provider=/home/nirbhay/project/packages/galera-25.3.2-src/libgalera_smm.so
            wsrep_cluster_address=gcomm://
            server-id=1

            Node 2:
            log-error
            binlog-format=row
            innodb_autoinc_lock_mode=2
            log-bin
            log-slave-updates=1
            gtid-strict-mode=1
            wsrep_provider=/home/nirbhay/project/packages/galera-25.3.2-src/libgalera_smm.so
            wsrep_cluster_address=gcomm://127.0.0.1:4567
            wsrep_provider_options=gmcast.listen_addr=tcp://127.0.0.1:4569
            server-id=1

            Node 3:
            log-error
            binlog-format=row
            innodb_autoinc_lock_mode=2
            log-bin
            log-slave-updates=1
            gtid-strict-mode=1
            wsrep_provider=/home/nirbhay/project/packages/galera-25.3.2-src/libgalera_smm.so
            wsrep_cluster_address=gcomm://127.0.0.1:4567
            wsrep_provider_options=gmcast.listen_addr=tcp://127.0.0.1:4570
            server-id=1

            Scenario 1:

            (a) Insert some records through node#1
            CREATE TABLE t1(c1 INT PRIMARY KEY) ENGINE=InnoDB;
            INSERT INTO t1 VALUES (1);
            INSERT INTO t1 VALUES (2);
            INSERT INTO t1 VALUES (3);

            GTID (same across all the nodes)
            0-1-1
            0-1-2
            0-1-3
            0-1-4

            (b) Stop node#2, insert some more records through node#1 and put node#2 back into the cluster.
            i. Stop node#2
            ii. One node#1
            INSERT INTO t1 VALUES (4);
            INSERT INTO t1 VALUES (5);
            iii. Put node#2 back into the cluster

            GTID (same across all the nodes)
            0-1-1
            0-1-2
            0-1-3
            0-1-4
            0-1-5
            0-1-6

            • Note: IST is performed to get the missing writesets.

            Scenario 2:

            (a) Insert some records through node#1
            CREATE TABLE t1(c1 INT PRIMARY KEY) ENGINE=InnoDB;
            INSERT INTO t1 VALUES (1);
            INSERT INTO t1 VALUES (2);
            INSERT INTO t1 VALUES (3);

            GTID (same across all the nodes)
            0-1-1
            0-1-2
            0-1-3
            0-1-4

            (b) Stop node#1, insert some more records through node#2 and put node#1 back into the cluster.
            i. Stop node#1
            ii. One node#2
            INSERT INTO t1 VALUES (4);
            INSERT INTO t1 VALUES (5);
            iii. Put node#1 back into the cluster

            GTID (same on all the nodes)
            0-1-1
            0-1-2
            0-1-3
            0-1-4
            0-1-5
            0-1-6

            • Note: IST is performed to get the missing writesets.

            Scenario 3:
            (a) Insert some records through node#1
            CREATE TABLE t1(c1 INT PRIMARY KEY) ENGINE=InnoDB;
            INSERT INTO t1 VALUES (1);
            INSERT INTO t1 VALUES (2);
            INSERT INTO t1 VALUES (3);
            (b) Remove node#2 from cluster (SET @@global.wsrep_cluster_address='gcomm://’
            i. insert some records on node#2
            INSERT INTO t1 VALUES (4);
            INSERT INTO t1 VALUES (5);
            (c) Put node#2 back into the cluster (SET @@global.wsrep_cluster_address='gcomm://127.0.0.1:4567'
            i. node#2 shuts down with the following error:

            140307 17:57:52 [ERROR] WSREP: Local state seqno (6) is greater than group seqno (4): states diverged. Aborting to avoid potential data loss. Remove '/home/nirbhay/project/repo/maria/testing/galera_gtid/maria-10.0-galera/data2//grastate.dat' file and restart if you wish to continue. (FATAL)
            at galera/src/replicator_str.cpp:state_transfer_required():33
            140307 17:57:52 [Note] WSREP: applier thread exiting (code:8)
            140307 17:57:52 [Note] WSREP: starting shutdown
            140307 17:57:52 [Note] ./bin/mysqld: Normal shutdown

            Scenario 4:

            (a) Insert some records through node#1
            (b) Remove node#2 from cluster
            i. Change the domain_id of node#2
            ii. Insert some records in node#2
            (c) Put node#2 back into the cluster
            Result: Same as scenario #3.

            Show
            nirbhay_c Nirbhay Choubey added a comment - Configuration: Node 1: log-error binlog-format=row innodb_autoinc_lock_mode=2 log-bin log-slave-updates=1 gtid-strict-mode=1 wsrep_provider=/home/nirbhay/project/packages/galera-25.3.2-src/libgalera_smm.so wsrep_cluster_address=gcomm:// server-id=1 Node 2: log-error binlog-format=row innodb_autoinc_lock_mode=2 log-bin log-slave-updates=1 gtid-strict-mode=1 wsrep_provider=/home/nirbhay/project/packages/galera-25.3.2-src/libgalera_smm.so wsrep_cluster_address=gcomm://127.0.0.1:4567 wsrep_provider_options=gmcast.listen_addr=tcp://127.0.0.1:4569 server-id=1 Node 3: log-error binlog-format=row innodb_autoinc_lock_mode=2 log-bin log-slave-updates=1 gtid-strict-mode=1 wsrep_provider=/home/nirbhay/project/packages/galera-25.3.2-src/libgalera_smm.so wsrep_cluster_address=gcomm://127.0.0.1:4567 wsrep_provider_options=gmcast.listen_addr=tcp://127.0.0.1:4570 server-id=1 Scenario 1: (a) Insert some records through node#1 CREATE TABLE t1(c1 INT PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); INSERT INTO t1 VALUES (2); INSERT INTO t1 VALUES (3); GTID (same across all the nodes) 0-1-1 0-1-2 0-1-3 0-1-4 (b) Stop node#2, insert some more records through node#1 and put node#2 back into the cluster. i. Stop node#2 ii. One node#1 INSERT INTO t1 VALUES (4); INSERT INTO t1 VALUES (5); iii. Put node#2 back into the cluster GTID (same across all the nodes) 0-1-1 0-1-2 0-1-3 0-1-4 0-1-5 0-1-6 Note: IST is performed to get the missing writesets. Scenario 2: (a) Insert some records through node#1 CREATE TABLE t1(c1 INT PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); INSERT INTO t1 VALUES (2); INSERT INTO t1 VALUES (3); GTID (same across all the nodes) 0-1-1 0-1-2 0-1-3 0-1-4 (b) Stop node#1, insert some more records through node#2 and put node#1 back into the cluster. i. Stop node#1 ii. One node#2 INSERT INTO t1 VALUES (4); INSERT INTO t1 VALUES (5); iii. Put node#1 back into the cluster GTID (same on all the nodes) 0-1-1 0-1-2 0-1-3 0-1-4 0-1-5 0-1-6 Note: IST is performed to get the missing writesets. Scenario 3: (a) Insert some records through node#1 CREATE TABLE t1(c1 INT PRIMARY KEY) ENGINE=InnoDB; INSERT INTO t1 VALUES (1); INSERT INTO t1 VALUES (2); INSERT INTO t1 VALUES (3); (b) Remove node#2 from cluster (SET @@global.wsrep_cluster_address='gcomm://’ i. insert some records on node#2 INSERT INTO t1 VALUES (4); INSERT INTO t1 VALUES (5); (c) Put node#2 back into the cluster (SET @@global.wsrep_cluster_address='gcomm://127.0.0.1:4567' i. node#2 shuts down with the following error: 140307 17:57:52 [ERROR] WSREP: Local state seqno (6) is greater than group seqno (4): states diverged. Aborting to avoid potential data loss. Remove '/home/nirbhay/project/repo/maria/testing/galera_gtid/maria-10.0-galera/data2//grastate.dat' file and restart if you wish to continue. (FATAL) at galera/src/replicator_str.cpp:state_transfer_required():33 140307 17:57:52 [Note] WSREP: applier thread exiting (code:8) 140307 17:57:52 [Note] WSREP: starting shutdown 140307 17:57:52 [Note] ./bin/mysqld: Normal shutdown Scenario 4: (a) Insert some records through node#1 (b) Remove node#2 from cluster i. Change the domain_id of node#2 ii. Insert some records in node#2 (c) Put node#2 back into the cluster Result: Same as scenario #3.
            Hide
            nirbhay_c Nirbhay Choubey added a comment -

            GTID support has been added to rsync and mysqldump SST methods.
            However, xtrabackup-v2 and xtrabackup SST methods are affected by
            https://bugs.launchpad.net/percona-xtrabackup/+bug/1326967

            Show
            nirbhay_c Nirbhay Choubey added a comment - GTID support has been added to rsync and mysqldump SST methods. However, xtrabackup-v2 and xtrabackup SST methods are affected by https://bugs.launchpad.net/percona-xtrabackup/+bug/1326967

              People

              • Assignee:
                jplindst Jan Lindström
                Reporter:
                jplindst Jan Lindström
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Due:
                  Created:
                  Updated:
                  Resolved: