Current Path : /home/usr.opt/mysql57/mysql-test/suite/group_replication/r/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : /home/usr.opt/mysql57/mysql-test/suite/group_replication/r/gr_primary_key_conflict.result |
include/group_replication.inc 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] ############################################################ # 1. Create a table on server1. [connection server1] CREATE TABLE t1 (c1 INT PRIMARY KEY); include/rpl_sync.inc ############################################################ # 2. Set a debug sync before broadcast message to group on # connection server_1. # Commit a transaction that will be block before broadcast. [connection server_1] SET @debug_save= @@GLOBAL.DEBUG; SET @@GLOBAL.DEBUG='d,group_replication_before_message_broadcast'; BEGIN; INSERT INTO t1 VALUES (1); COMMIT; ############################################################ # 3. Wait until server_1 connection reaches the # group_replication_before_message_broadcast debug sync point. [connection server1] ############################################################ # 4. Execute a transaction on server2, that will reach first # certification, since server_1 is blocked before broadcast. [connection server2] INSERT INTO t1 VALUES (1); ############################################################ # 5. Signal the waiting thread on server_1 to resume. [connection server1] SET DEBUG_SYNC='now SIGNAL waiting'; SET @@GLOBAL.DEBUG= @debug_save; ############################################################ # 6. It will end up in an error stating that it was aborted, # since transactions are conflicting and server2 was # ordered first. [connection server2] include/sync_slave_sql_with_master.inc [connection server_1] ERROR HY000: Plugin instructed the server to rollback the current transaction. ############################################################ # 7. Assert that number of certified transactions are the # expected ones. [connection server1] include/assert.inc [The value of Count_Transactions_Checked should be 3 after starting group replication] include/assert.inc [The value of Count_Conflicts_Detected should be 1 after starting group replication] ############################################################ # Checking the positive case in which there is no conflict. ############################################################ ############################################################ # 1. Set a debug sync before broadcast message to group on # connection server_1. # Commit a transaction that will be block before broadcast. [connection server_1] SET @@GLOBAL.DEBUG='d,group_replication_before_message_broadcast'; BEGIN; INSERT INTO t1 VALUES (2); COMMIT; ############################################################ # 2. Wait until server_1 connection reaches the # group_replication_before_message_broadcast debug sync point. [connection server1] ############################################################ # 3. Execute a transaction on server2, that will reach first # certification, since server_1 is blocked before broadcast. [connection server2] INSERT INTO t1 VALUES (3); include/sync_slave_sql_with_master.inc ############################################################ # 4. Signal the waiting thread on server_1 to resume. [connection server1] SET DEBUG_SYNC='now SIGNAL waiting'; SET @@GLOBAL.DEBUG= @debug_save; ######################################################################## # 5. It will execute without error as the conflicting transactions have # been removed. [connection server_1] include/rpl_sync.inc ############################################################ # 6. Assert that number of certified transactions are the # expected ones. [connection server1] include/assert.inc [Table t1 will contain row after the above execution] include/assert.inc [Table t1 will contain row after the above execution] include/assert.inc [Table t1 will contain row after the above execution] include/assert.inc [Table t1 will contain 3 rows after the above execution] include/assert.inc [The value of Count_Transactions_Checked should be 5 after starting group replication] include/assert.inc [The value of Count_Conflicts_Detected should be 1 after starting group replication] ############################################################ # Clean up. DROP TABLE t1; include/group_replication_end.inc