- Apply patch on top of 8.0.21 export LD_LIBRARY_PATH=/export/umesh/utils/gcc-9.2/lib64 export CC=/export/umesh/utils/gcc-9.2/bin/gcc export CPP=/export/umesh/utils/gcc-9.2/bin/cpp export CXX=/export/umesh/utils/gcc-9.2/bin/c++ MYSQL_VERSION="8021" TARGET=/export/umesh/server/source/bugs/src_build/fb_builds/100299/$MYSQL_VERSION rm -rf /export/umesh/server/source/bugs/src_build/fb_builds/100299/$MYSQL_VERSION rm -rf bld/ mkdir bld && cd bld rm -rf CMakeCache.txt /export/umesh/utils/cmake-3.14.4/bin/cmake ../mysql-8.0.21 \ -DBUILD_CONFIG=mysql_release \ -DCMAKE_INSTALL_PREFIX=$TARGET \ -DWITH_BOOST=../mysql-8.0.21/boost \ -DCMAKE_BUILD_TYPE=debug make -j 16 make install cd ../8021 cp bin/mysqld-debug bin/mysqld --- include/group_replication.inc [rpl_server_count=3] Warnings: Note #### Sending passwords in plain text without SSL/TLS is extremely insecure. Note #### Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information. [connection server1] connect conn1 SET PERSIST group_replication_local_address=@@group_replication_local_address, PERSIST group_replication_group_seeds=@@group_replication_group_seeds; SELECT group_replication_set_as_primary(@@server_uuid); group_replication_set_as_primary(@@server_uuid) Primary server switched to: 71d8c065-ccd2-11ea-843d-0010e05f3e06 SELECT * FROM performance_schema.replication_group_members; CHANNEL_NAME MEMBER_ID MEMBER_HOST MEMBER_PORT MEMBER_STATE MEMBER_ROLE MEMBER_VERSION group_replication_applier 71d8c065-ccd2-11ea-843d-0010e05f3e06 127.0.0.1 13000 ONLINE PRIMARY 8.0.21 group_replication_applier 71ea5063-ccd2-11ea-82e1-0010e05f3e06 127.0.0.1 13004 ONLINE SECONDARY 8.0.21 group_replication_applier 71edf959-ccd2-11ea-8380-0010e05f3e06 127.0.0.1 13002 ONLINE SECONDARY 8.0.21 CREATE TABLE t1 (c1 INT PRIMARY KEY, c2 INT) ENGINE=InnoDB; SHOW TABLES; Tables_in_test t1 connect conn2 SET PERSIST group_replication_local_address=@@group_replication_local_address, PERSIST group_replication_group_seeds=@@group_replication_group_seeds; SHOW TABLES; Tables_in_test t1 connect conn3 SET PERSIST group_replication_local_address=@@group_replication_local_address, PERSIST group_replication_group_seeds=@@group_replication_group_seeds; SHOW TABLES; Tables_in_test t1 ## n2 will not write relaylog connect conn2 SET GLOBAL DEBUG='+d,wait_write_realylog_until_server_down'; ## n3 will write relaylog, while not finish transaction connect conn3 SET GLOBAL DEBUG='+d,wait_until_server_down'; connect conn1_2 INSERT INTO t1 VALUES (1,1),(2,2);; ## sleep 10 to ensure n3 already write relaylog ## then shutdown n3 first connect conn3 [shutdown n3] ## wait n3 leave the group_replication ## then shutdown n2 later connection conn2 SELECT * FROM performance_schema.replication_group_members; CHANNEL_NAME MEMBER_ID MEMBER_HOST MEMBER_PORT MEMBER_STATE MEMBER_ROLE MEMBER_VERSION group_replication_applier 71d8c065-ccd2-11ea-843d-0010e05f3e06 127.0.0.1 13000 ONLINE PRIMARY 8.0.21 group_replication_applier 71ea5063-ccd2-11ea-82e1-0010e05f3e06 127.0.0.1 13004 UNREACHABLE SECONDARY 8.0.21 group_replication_applier 71edf959-ccd2-11ea-8380-0010e05f3e06 127.0.0.1 13002 ONLINE SECONDARY 8.0.21 [shutdown n2] connection conn1 ## and then shutdown n1 [shutdown n1] [start n3] connect conn3 # restart SELECT * FROM t1; c1 c2 SELECT @@gtid_executed; @@gtid_executed 727318bd-ccd2-11ea-843d-0010e05f3e06:1-4 [start n2] connect conn2 # restart SELECT * FROM t1; c1 c2 SELECT @@gtid_executed; @@gtid_executed 727318bd-ccd2-11ea-843d-0010e05f3e06:1-4 [start n1] connect conn1 # restart SELECT * FROM t1; c1 c2 SELECT @@gtid_executed; @@gtid_executed 727318bd-ccd2-11ea-843d-0010e05f3e06:1-4 connect conn1 set global group_replication_bootstrap_group=on; start group_replication; set global group_replication_bootstrap_group=oFF; SELECT * FROM t1; c1 c2 INSERT INTO t1 VALUES (11,11),(22,22); connect conn2 start group_replication; SELECT * FROM performance_schema.replication_group_members; CHANNEL_NAME MEMBER_ID MEMBER_HOST MEMBER_PORT MEMBER_STATE MEMBER_ROLE MEMBER_VERSION group_replication_applier 71d8c065-ccd2-11ea-843d-0010e05f3e06 127.0.0.1 13000 ONLINE PRIMARY 8.0.21 group_replication_applier 71edf959-ccd2-11ea-8380-0010e05f3e06 127.0.0.1 13002 ONLINE SECONDARY 8.0.21 SELECT * FROM t1; c1 c2 11 11 22 22 connect conn3 SELECT * FROM t1; c1 c2 start group_replication; ERROR HY000: The server is not configured properly to be an active member of the group. Please see more details on error log. SELECT * FROM performance_schema.replication_group_members; CHANNEL_NAME MEMBER_ID MEMBER_HOST MEMBER_PORT MEMBER_STATE MEMBER_ROLE MEMBER_VERSION group_replication_applier 71ea5063-ccd2-11ea-82e1-0010e05f3e06 127.0.0.1 13004 OFFLINE SELECT * FROM t1; c1 c2 1 1 2 2