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