[MDEV-6408] Test MGC 10.0 GTID behaviour Created: 2014-03-04  Updated: 2014-06-30  Due: 2014-03-14  Resolved: 2014-06-30

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: None
Fix Version/s: 10.0.12-galera

Type: Bug Priority: Minor
Reporter: Jan Lindström (Inactive) Assignee: Jan Lindström (Inactive)
Resolution: Fixed Votes: 0
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



 Comments   
Comment by Nirbhay Choubey (Inactive) [ 2014-06-25 ]

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.

Comment by Nirbhay Choubey (Inactive) [ 2014-06-25 ]

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

Generated at Thu Feb 08 07:11:40 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.