1--source include/have_innodb.inc
2--source include/have_debug.inc
3# Valgrind does not work well with test that crashes the server
4--source include/not_valgrind.inc
5
6--let $rpl_topology=1->2
7--source include/rpl_init.inc
8
9--echo *** Test crashing master, causing slave IO thread to reconnect while SQL thread is running ***
10
11--connection server_1
12call mtr.add_suppression("Checking table:");
13call mtr.add_suppression("client is using or hasn't closed the table properly");
14call mtr.add_suppression("Table .* is marked as crashed and should be repaired");
15flush tables;
16
17ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
18CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
19INSERT INTO t1 VALUES (1, 0);
20--save_master_pos
21
22--connection server_2
23--sync_with_master
24SET sql_log_bin=0;
25call mtr.add_suppression('Master command COM_REGISTER_SLAVE failed: failed registering on master, reconnecting to try again');
26SET sql_log_bin=1;
27--source include/stop_slave.inc
28--replace_result $MASTER_MYPORT MASTER_PORT
29eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $MASTER_MYPORT,
30     MASTER_USE_GTID=CURRENT_POS;
31
32--connection server_1
33INSERT INTO t1 VALUES (2,1);
34INSERT INTO t1 VALUES (3,1);
35
36--connection server_2
37--source include/start_slave.inc
38
39--connection server_1
40
41--write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
42wait-rpl_gtid_crash.test
43EOF
44
45let $1=200;
46--disable_query_log
47while ($1)
48{
49  eval INSERT INTO t1 VALUES ($1 + 10, 2);
50  dec $1;
51}
52--enable_query_log
53--source include/save_master_gtid.inc
54
55SET SESSION debug_dbug="+d,crash_dispatch_command_before";
56--error 2006,2013
57SELECT 1;
58--source include/wait_until_disconnected.inc
59
60--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
61restart-rpl_gtid_crash.test
62EOF
63
64--enable_reconnect
65--source include/wait_until_connected_again.inc
66
67--connection server_2
68--source include/sync_with_master_gtid.inc
69
70--connection server_1
71INSERT INTO t1 VALUES (1000, 3);
72--source include/save_master_gtid.inc
73
74--connection server_2
75--source include/sync_with_master_gtid.inc
76
77--connection server_1
78DROP TABLE t1;
79--save_master_pos
80
81--echo *** Test crashing the master mysqld and check that binlog state is recovered. ***
82--connection server_2
83--sync_with_master
84--source include/stop_slave.inc
85RESET MASTER;
86SET GLOBAL gtid_slave_pos='';
87
88--connection server_1
89RESET MASTER;
90--replace_column 2 # 4 # 5 #
91SHOW BINLOG EVENTS IN 'master-bin.000001' LIMIT 1,1;
92CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
93
94--connection server_2
95--source include/start_slave.inc
96
97--connection server_1
98SET gtid_domain_id= 1;
99INSERT INTO t1 VALUES (1);
100INSERT INTO t1 VALUES (2);
101FLUSH LOGS;
102SET gtid_domain_id= 2;
103INSERT INTO t1 VALUES (3);
104FLUSH LOGS;
105--source include/show_binary_logs.inc
106--replace_column 2 # 4 # 5 # 6 #
107SHOW BINLOG EVENTS IN 'master-bin.000003' LIMIT 1,1;
108
109--write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
110wait
111EOF
112
113SET SESSION debug_dbug="+d,crash_dispatch_command_before";
114--error 2006,2013
115SELECT 1;
116--source include/wait_until_disconnected.inc
117
118--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
119restart
120EOF
121
122--enable_reconnect
123--source include/wait_until_connected_again.inc
124
125--source include/show_binary_logs.inc
126--replace_column 2 # 4 # 5 # 6 #
127SHOW BINLOG EVENTS IN 'master-bin.000004' LIMIT 1,1;
128--save_master_pos
129
130--connection server_2
131--sync_with_master
132SELECT * FROM t1 ORDER BY a;
133
134
135--echo *** Test crashing slave at various points and check that it recovers crash-safe. ***
136
137# Crash the slave just before updating mysql.gtid_slave_pos table.
138--source include/stop_slave.inc
139--write_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
140wait
141EOF
142# We do not have to save @@GLOBAL.debug_dbug, it is reset when slave crashes.
143SET GLOBAL debug_dbug="+d,inject_crash_before_write_rpl_slave_state";
144START SLAVE;
145
146--connection server_1
147INSERT INTO t1 VALUES (4);
148--source include/save_master_gtid.inc
149
150--connection server_2
151--source include/wait_until_disconnected.inc
152
153--append_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
154restart: --skip-slave-start=0
155EOF
156
157--enable_reconnect
158--source include/wait_until_connected_again.inc
159
160--source include/sync_with_master_gtid.inc
161
162# Crash the slave just before committing.
163--source include/stop_slave.inc
164--write_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
165wait
166EOF
167START SLAVE;
168--error 0,2006,2013
169SET GLOBAL debug_dbug="+d,crash_commit_before";
170
171--connection server_1
172INSERT INTO t1 VALUES (5);
173--source include/save_master_gtid.inc
174
175--connection server_2
176--source include/wait_until_disconnected.inc
177
178--append_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
179restart: --skip-slave-start=0
180EOF
181
182--enable_reconnect
183--source include/wait_until_connected_again.inc
184
185--source include/sync_with_master_gtid.inc
186
187# Crash the slave just after committing.
188--source include/stop_slave.inc
189--write_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
190wait
191EOF
192START SLAVE;
193--error 0,2006,2013
194SET GLOBAL debug_dbug="+d,crash_commit_after";
195
196--connection server_1
197INSERT INTO t1 VALUES (6);
198--source include/save_master_gtid.inc
199
200--connection server_2
201--source include/wait_until_disconnected.inc
202
203--append_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
204restart: --skip-slave-start=0
205EOF
206
207--enable_reconnect
208--source include/wait_until_connected_again.inc
209
210--source include/sync_with_master_gtid.inc
211
212# Crash the slave just before updating relay-log.info
213--source include/stop_slave.inc
214--write_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
215wait
216EOF
217SET GLOBAL debug_dbug="+d,inject_crash_before_flush_rli";
218--error 0,2006,2013
219START SLAVE;
220
221--connection server_1
222INSERT INTO t1 VALUES (7);
223--source include/save_master_gtid.inc
224
225--connection server_2
226--source include/wait_until_disconnected.inc
227
228--append_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
229restart: --skip-slave-start=0
230EOF
231
232--enable_reconnect
233--source include/wait_until_connected_again.inc
234
235--source include/sync_with_master_gtid.inc
236
237# Crash the slave just after updating relay-log.info
238--source include/stop_slave.inc
239--write_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
240wait
241EOF
242SET GLOBAL debug_dbug="+d,inject_crash_after_flush_rli";
243--error 0,2006,2013
244START SLAVE;
245
246--connection server_1
247INSERT INTO t1 VALUES (8);
248--source include/save_master_gtid.inc
249
250--connection server_2
251--source include/wait_until_disconnected.inc
252
253--append_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
254restart: --skip-slave-start=0
255EOF
256
257--enable_reconnect
258--source include/wait_until_connected_again.inc
259
260--source include/sync_with_master_gtid.inc
261
262
263# Check that everything was replicated correctly.
264SELECT * FROM t1 ORDER BY a;
265
266
267--echo *** MDEV-4725: Incorrect recovery when crash in the middle of writing an event group ***
268
269--connection server_2
270--write_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
271wait
272EOF
273
274--let $old_gtid_strict= `SELECT @@gtid_strict_mode`
275SET GLOBAL debug_dbug="+d,crash_before_writing_xid";
276
277--connection server_1
278INSERT INTO t1 VALUES (9), (10);
279--let $saved_gtid=`SELECT @@last_gtid`
280--save_master_pos
281
282--connection server_2
283--source include/wait_until_disconnected.inc
284
285# The bug was that during crash recovery we would update the binlog state
286# with the GTID of the half-written event group at the end of the slaves
287# binlog, even though this event group was not committed.
288# We restart the server with gtid_strict_mode; this way, we get an error
289# about duplicate gtid when the slave re-executes the event group, if the
290# binlog crash recovery is incorrect.
291--append_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
292restart: --gtid_strict_mode=1
293EOF
294
295--enable_reconnect
296--source include/wait_until_connected_again.inc
297
298SHOW VARIABLES like 'gtid_strict_mode';
299--source include/start_slave.inc
300--sync_with_master
301--disable_query_log
302eval SET GLOBAL gtid_strict_mode= $old_gtid_strict;
303--enable_query_log
304
305
306--echo *** MDEV-6462: Incorrect recovery on a slave reconnecting to crashed master ***
307
308--connection server_1
309set sql_log_bin= 0;
310call mtr.add_suppression("Error writing file 'master-bin'");
311set sql_log_bin= 1;
312--connection server_2
313set sql_log_bin= 0;
314call mtr.add_suppression("The server_id of master server changed in the middle of GTID");
315call mtr.add_suppression("Unexpected change of master binlog file name in the middle of GTID");
316set sql_log_bin= 1;
317
318--connection server_1
319--write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
320wait
321EOF
322
323SET GLOBAL debug_dbug="+d,inject_error_writing_xid";
324BEGIN;
325INSERT INTO t1 VALUES (11);
326--error ER_ERROR_ON_WRITE
327COMMIT;
328SET GLOBAL debug_dbug="+d,crash_dispatch_command_before";
329--error 2006,2013
330COMMIT;
331
332--source include/wait_until_disconnected.inc
333
334# Simulate that we reconnect to a different server (new server_id).
335--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
336restart: --server-id=3
337EOF
338
339--enable_reconnect
340--source include/wait_until_connected_again.inc
341
342SELECT @@GLOBAL.server_id;
343SELECT * from t1 WHERE a > 10 ORDER BY a;
344--disable_query_log
345eval SELECT IF(INSTR(@@gtid_binlog_pos, '$saved_gtid'), "Binlog pos ok", CONCAT("Unexpected binlog pos: ", @@gtid_binlog_pos, "; does not contain the GTID $saved_gtid.")) AS gtid_check;
346--enable_query_log
347
348--echo # Wait 30 seconds for SQL thread to catch up with IO thread
349--connection server_2
350--let $wait_timeout= 300
351while ($wait_timeout != 0)
352{
353  --let $read_log_pos= query_get_value('SHOW SLAVE STATUS', Read_Master_Log_Pos, 1)
354  --let $exec_log_pos= query_get_value('SHOW SLAVE STATUS', Exec_Master_Log_Pos, 1)
355  if ($read_log_pos == $exec_log_pos)
356  {
357    --let $wait_timeout= 0
358  }
359  if ($read_log_pos != $exec_log_pos)
360  {
361    --sleep 0.1
362    --dec $wait_timeout
363  }
364}
365if ($read_log_pos != $exec_log_pos)
366{
367  --die Timeout wait for SQL thread to catch up with IO thread
368}
369
370SELECT * from t1 WHERE a > 10 ORDER BY a;
371--disable_query_log
372eval SELECT IF(INSTR(@@gtid_binlog_pos, '$saved_gtid'), "Binlog pos ok", CONCAT("Unexpected binlog pos: ", @@gtid_binlog_pos, "; does not contain the GTID $saved_gtid.")) AS gtid_check;
373eval SELECT IF(INSTR(@@gtid_slave_pos, '$saved_gtid'), "Slave pos ok", CONCAT("Unexpected slave pos: ", @@gtid_slave_pos, "; does not contain the GTID $saved_gtid.")) AS gtid_check;
374eval SELECT IF(INSTR(@@gtid_current_pos, '$saved_gtid'), "Current pos ok", CONCAT("Unexpected current pos: ", @@gtid_current_pos, "; does not contain the GTID $saved_gtid.")) AS gtid_check;
375--enable_query_log
376
377--echo # Repeat this with additional transactions on the master
378
379--connection server_1
380--write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
381wait
382EOF
383
384SET GLOBAL debug_dbug="+d,inject_error_writing_xid";
385BEGIN;
386INSERT INTO t1 VALUES (12);
387--error ER_ERROR_ON_WRITE
388COMMIT;
389SET GLOBAL debug_dbug="+d,crash_dispatch_command_before";
390--error 2006,2013
391COMMIT;
392
393--source include/wait_until_disconnected.inc
394
395# Simulate that we reconnect to a different server (new server_id).
396--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
397restart: --server-id=1
398EOF
399
400--enable_reconnect
401--source include/wait_until_connected_again.inc
402
403SELECT @@GLOBAL.server_id;
404INSERT INTO t1 VALUES (13);
405INSERT INTO t1 VALUES (14);
406--let $saved_gtid=`SELECT @@last_gtid`
407SELECT * from t1 WHERE a > 10 ORDER BY a;
408--source include/save_master_gtid.inc
409
410--connection server_2
411--source include/sync_with_master_gtid.inc
412SELECT * from t1 WHERE a > 10 ORDER BY a;
413
414--connection server_1
415--write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
416wait
417EOF
418
419SET GLOBAL debug_dbug="+d,inject_error_writing_xid";
420BEGIN;
421INSERT INTO t1 VALUES (21);
422--error ER_ERROR_ON_WRITE
423COMMIT;
424SET GLOBAL debug_dbug="+d,crash_dispatch_command_before";
425--error 2006,2013
426COMMIT;
427
428--source include/wait_until_disconnected.inc
429
430# Simulate that we reconnect to the same server (same server_id).
431--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
432restart
433EOF
434
435--enable_reconnect
436--source include/wait_until_connected_again.inc
437
438SELECT @@GLOBAL.server_id;
439SELECT * from t1 WHERE a > 10 ORDER BY a;
440--disable_query_log
441eval SELECT IF(INSTR(@@gtid_binlog_pos, '$saved_gtid'), "Binlog pos ok", CONCAT("Unexpected binlog pos: ", @@gtid_binlog_pos, "; does not contain the GTID $saved_gtid.")) AS gtid_check;
442eval SELECT IF(INSTR(@@gtid_current_pos, '$saved_gtid'), "Current pos ok", CONCAT("Unexpected current pos: ", @@gtid_current_pos, "; does not contain the GTID $saved_gtid.")) AS gtid_check;
443--enable_query_log
444
445--echo # Wait 30 seconds for SQL thread to catch up with IO thread
446--connection server_2
447--let $wait_timeout= 300
448while ($wait_timeout != 0)
449{
450  --let $read_log_pos= query_get_value('SHOW SLAVE STATUS', Read_Master_Log_Pos, 1)
451  --let $exec_log_pos= query_get_value('SHOW SLAVE STATUS', Exec_Master_Log_Pos, 1)
452  if ($read_log_pos == $exec_log_pos)
453  {
454    --let $wait_timeout= 0
455  }
456  if ($read_log_pos != $exec_log_pos)
457  {
458    --sleep 0.1
459    --dec $wait_timeout
460  }
461}
462if ($read_log_pos != $exec_log_pos)
463{
464  --die Timeout wait for SQL thread to catch up with IO thread
465}
466
467SELECT * from t1 WHERE a > 10 ORDER BY a;
468--disable_query_log
469eval SELECT IF(INSTR(@@gtid_binlog_pos, '$saved_gtid'), "Binlog pos ok", CONCAT("Unexpected binlog pos: ", @@gtid_binlog_pos, "; does not contain the GTID $saved_gtid.")) AS gtid_check;
470eval SELECT IF(INSTR(@@gtid_slave_pos, '$saved_gtid'), "Slave pos ok", CONCAT("Unexpected slave pos: ", @@gtid_slave_pos, "; does not contain the GTID $saved_gtid.")) AS gtid_check;
471eval SELECT IF(INSTR(@@gtid_current_pos, '$saved_gtid'), "Current pos ok", CONCAT("Unexpected current pos: ", @@gtid_current_pos, "; does not contain the GTID $saved_gtid.")) AS gtid_check;
472--enable_query_log
473
474--echo # Repeat this with additional transactions on the master
475
476--connection server_1
477--write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
478wait
479EOF
480
481SET GLOBAL debug_dbug="+d,inject_error_writing_xid";
482BEGIN;
483INSERT INTO t1 VALUES (22);
484--error ER_ERROR_ON_WRITE
485COMMIT;
486SET GLOBAL debug_dbug="+d,crash_dispatch_command_before";
487--error 2006,2013
488COMMIT;
489
490--source include/wait_until_disconnected.inc
491
492--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
493restart
494EOF
495
496--enable_reconnect
497--source include/wait_until_connected_again.inc
498
499INSERT INTO t1 VALUES (23);
500INSERT INTO t1 VALUES (24);
501--let $saved_gtid=`SELECT @@last_gtid`
502SELECT * from t1 WHERE a > 10 ORDER BY a;
503--source include/save_master_gtid.inc
504
505--connection server_2
506--source include/sync_with_master_gtid.inc
507SELECT * from t1 WHERE a > 10 ORDER BY a;
508
509--echo # Repeat this with slave restart
510
511--connection server_1
512--write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
513wait
514EOF
515
516SET GLOBAL debug_dbug="+d,inject_error_writing_xid";
517BEGIN;
518INSERT INTO t1 VALUES (25);
519--error ER_ERROR_ON_WRITE
520COMMIT;
521SET GLOBAL debug_dbug="+d,crash_dispatch_command_before";
522--error 2006,2013
523COMMIT;
524
525--source include/wait_until_disconnected.inc
526
527--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
528restart
529EOF
530
531--connection server_1
532--enable_reconnect
533--source include/wait_until_connected_again.inc
534
535--connection server_2
536--echo # Wait 30 seconds for IO thread to connect and SQL thread to catch up
537--echo # with IO thread.
538--let $wait_timeout= 300
539while ($wait_timeout != 0)
540{
541  --let $connected=`SELECT COUNT(*) > 0 FROM information_schema.processlist WHERE State = 'Waiting for master to send event'`
542  if ($connected)
543  {
544    --let $read_log_pos= query_get_value('SHOW SLAVE STATUS', Read_Master_Log_Pos, 1)
545    --let $exec_log_pos= query_get_value('SHOW SLAVE STATUS', Exec_Master_Log_Pos, 1)
546    if ($read_log_pos == $exec_log_pos)
547    {
548      --let $wait_timeout= 0
549    }
550    if ($read_log_pos != $exec_log_pos)
551    {
552      --sleep 0.1
553      --dec $wait_timeout
554    }
555  }
556  if (!$connected)
557  {
558    --sleep 0.1
559    --dec $wait_timeout
560  }
561}
562if (`SELECT NOT $connected OR $read_log_pos != $exec_log_pos`)
563{
564  --die Timeout wait for IO thread to connect and SQL thread to catch up with IO thread
565}
566
567--source include/stop_slave.inc
568
569--connection server_1
570--disable_query_log
571eval SELECT IF(INSTR(@@gtid_binlog_pos, '$saved_gtid'), "Binlog pos ok", CONCAT("Unexpected binlog pos: ", @@gtid_binlog_pos, "; does not contain the GTID $saved_gtid.")) AS gtid_check;
572eval SELECT IF(INSTR(@@gtid_current_pos, '$saved_gtid'), "Current pos ok", CONCAT("Unexpected current pos: ", @@gtid_current_pos, "; does not contain the GTID $saved_gtid.")) AS gtid_check;
573--enable_query_log
574INSERT INTO t1 VALUES (26);
575INSERT INTO t1 VALUES (27);
576SELECT * from t1 WHERE a > 10 ORDER BY a;
577--source include/save_master_gtid.inc
578
579--connection server_2
580--disable_query_log
581eval SELECT IF(INSTR(@@gtid_binlog_pos, '$saved_gtid'), "Binlog pos ok", CONCAT("Unexpected binlog pos: ", @@gtid_binlog_pos, "; does not contain the GTID $saved_gtid.")) AS gtid_check;
582eval SELECT IF(INSTR(@@gtid_slave_pos, '$saved_gtid'), "Slave pos ok", CONCAT("Unexpected slave pos: ", @@gtid_slave_pos, "; does not contain the GTID $saved_gtid.")) AS gtid_check;
583eval SELECT IF(INSTR(@@gtid_current_pos, '$saved_gtid'), "Current pos ok", CONCAT("Unexpected current pos: ", @@gtid_current_pos, "; does not contain the GTID $saved_gtid.")) AS gtid_check;
584--enable_query_log
585--source include/start_slave.inc
586--source include/sync_with_master_gtid.inc
587SELECT * from t1 WHERE a > 10 ORDER BY a;
588
589
590--echo *** MDEV-6391: GTID binlog state not recovered if mariadb-bin.state is removed ***
591
592--connection server_2
593--source include/stop_slave.inc
594
595# Do some misc. transactions, stop the master, drop the master-bin.state file.
596# Start the master back up, check that binlog state is correct.
597
598--connection server_1
599
600INSERT INTO t1 VALUES (30);
601SET @old_server_id= @@server_id;
602SET @old_domain_id= @@gtid_domain_id;
603
604SET SESSION server_id= 10;
605INSERT INTO t1 VALUES (31);
606INSERT INTO t1 VALUES (32);
607SET SESSION gtid_domain_id= 1;
608SET SESSION server_id=11;
609INSERT INTO t1 VALUES (33);
610SET SESSION gtid_domain_id= 2;
611INSERT INTO t1 VALUES (34);
612SET SESSION server_id= 10;
613INSERT INTO t1 VALUES (35);
614INSERT INTO t1 VALUES (36);
615SET SESSION gtid_domain_id= 0;
616SET SESSION server_id= 12;
617INSERT INTO t1 VALUES (37);
618SET SESSION gtid_domain_id= @old_domain_id;
619SET SESSION server_id= @old_server_id;
620INSERT INTO t1 VALUES (38);
621INSERT INTO t1 VALUES (39);
622SELECT * FROM t1 WHERE a >= 30 ORDER BY a;
623--source include/save_master_gtid.inc
624
625--let OLD_STATE= `SELECT @@gtid_binlog_state`
626
627--let $datadir= `SELECT @@datadir`
628
629--write_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
630wait
631EOF
632shutdown_server;
633--source include/wait_until_disconnected.inc
634
635--remove_file $datadir/master-bin.state
636
637--append_file $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
638restart
639EOF
640--enable_reconnect
641--source include/wait_until_connected_again.inc
642
643--let NEW_STATE= `SELECT @@gtid_binlog_state`
644
645--perl
646my $old= $ENV{'OLD_STATE'};
647my $new= $ENV{'NEW_STATE'};
648# Make them order-independent, for easy comparison.
649$old= join(",", sort(split(",", $old)));
650$new= join(",", sort(split(",", $new)));
651die "ERROR: new binlog state '$new' differs from old '$old'\n"
652  unless $old eq $new;
653EOF
654
655--connection server_2
656--source include/start_slave.inc
657--source include/sync_with_master_gtid.inc
658SELECT * FROM t1 WHERE a >= 30 ORDER BY a;
659
660
661--connection server_1
662DROP TABLE t1;
663
664--connection default
665--enable_reconnect
666--source include/wait_until_connected_again.inc
667
668--source include/rpl_end.inc
669