Skip to content

Commit

Permalink
MDEV-11504 binlog_encryption.encrypted_master_switch_to_unencrypted f…
Browse files Browse the repository at this point in the history
…ails sporadically in buildbot

The reason is a simple race condition. Initially the test was meant to synchronize with master
before showing tables, but it turned out that the slave IO thread should fail by this point,
and synchronization was removed along with a server bugfix. Now added an intermediate sync
instead, to make sure that slave has replicated events before the point of failure
  • Loading branch information
elenst committed Dec 8, 2016
1 parent e1e1fbc commit 8e702bc
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ INSERT INTO table3_no_encryption SELECT NULL,NOW(),b FROM table3_no_encryption;
#####################################################
connection server_2;
start slave;
connection server_1;
connection server_2;
include/wait_for_slave_io_error.inc [errno=1236]
connection server_2;
connection server_2;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@ INSERT INTO table1_no_encryption SELECT NULL,NOW(),b FROM table1_no_encryption;
--let SEARCH_PATTERN= table1_no_encryption
--source include/search_pattern_in_file.inc

# We are storing the position now, because up to this point the slave
# should be able to synchronize with master
--save_master_pos

--echo #####################################################
--echo # Part 2: restart master, now with binlog encryption
--echo #####################################################
Expand Down Expand Up @@ -102,14 +106,22 @@ INSERT INTO table3_no_encryption VALUES (NULL,NOW(),'data_no_encryption');
INSERT INTO table3_no_encryption SELECT NULL,NOW(),b FROM table3_no_encryption;
INSERT INTO table3_no_encryption SELECT NULL,NOW(),b FROM table3_no_encryption;

--save_master_pos

--echo #####################################################
--echo # Check: resume replication and check how it goes
--echo #####################################################
--connection server_2

--connection server_2
start slave;
# The slave should be able to synchronize with master up to
# the previously saved position (when the log was still unencrypted)
--sync_with_master

--connection server_1
# Now save the current position and make slave to try to syncrhonize.
# It shouldn't work, the slave IO thread is expected to abort with an error
--save_master_pos

--connection server_2
--let slave_io_errno=1236
--source include/wait_for_slave_io_error.inc

Expand Down

0 comments on commit 8e702bc

Please sign in to comment.