mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Manual merge of mysql-5.1-bugteam into mysql-trunk-merge.
Conflicts: Text conflict in mysql-test/suite/rpl/t/rpl_get_master_version_and_clock.test Text conflict in sql/item_func.cc
This commit is contained in:
@ -7,34 +7,24 @@ start slave;
|
||||
call mtr.add_suppression("Slave I/O: Master command COM_REGISTER_SLAVE failed: .*");
|
||||
call mtr.add_suppression("Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; .*");
|
||||
call mtr.add_suppression("Slave I/O thread .* register on master");
|
||||
SELECT IS_FREE_LOCK("debug_lock.before_get_UNIX_TIMESTAMP");
|
||||
IS_FREE_LOCK("debug_lock.before_get_UNIX_TIMESTAMP")
|
||||
1
|
||||
SELECT GET_LOCK("debug_lock.before_get_UNIX_TIMESTAMP", 1000);
|
||||
GET_LOCK("debug_lock.before_get_UNIX_TIMESTAMP", 1000)
|
||||
1
|
||||
set global debug= 'd,debug_lock.before_get_UNIX_TIMESTAMP';
|
||||
stop slave;
|
||||
SET @@global.debug= "+d,'debug_lock.before_get_UNIX_TIMESTAMP'";
|
||||
start slave;
|
||||
SELECT RELEASE_LOCK("debug_lock.before_get_UNIX_TIMESTAMP");
|
||||
RELEASE_LOCK("debug_lock.before_get_UNIX_TIMESTAMP")
|
||||
1
|
||||
slave is going to hang in get_master_version_and_clock
|
||||
slave is unblocked
|
||||
SET DEBUG_SYNC='now SIGNAL signal.get_unix_timestamp';
|
||||
Check network error happened here
|
||||
NETWORK ERROR
|
||||
SELECT IS_FREE_LOCK("debug_lock.before_get_SERVER_ID");
|
||||
IS_FREE_LOCK("debug_lock.before_get_SERVER_ID")
|
||||
1
|
||||
SELECT GET_LOCK("debug_lock.before_get_SERVER_ID", 1000);
|
||||
GET_LOCK("debug_lock.before_get_SERVER_ID", 1000)
|
||||
1
|
||||
set global debug= 'd,debug_lock.before_get_SERVER_ID';
|
||||
set @@global.debug = "-d,'debug_lock.before_get_UNIX_TIMESTAMP'";
|
||||
stop slave;
|
||||
SET @@global.debug= "+d,'debug_lock.before_get_SERVER_ID'";
|
||||
start slave;
|
||||
SELECT RELEASE_LOCK("debug_lock.before_get_SERVER_ID");
|
||||
RELEASE_LOCK("debug_lock.before_get_SERVER_ID")
|
||||
1
|
||||
slave is going to hang in get_master_version_and_clock
|
||||
slave is unblocked
|
||||
SET DEBUG_SYNC='now SIGNAL signal.get_server_id';
|
||||
Check network error happened here
|
||||
NETWORK ERROR
|
||||
set @@global.debug = "-d,'debug_lock.before_get_SERVER_ID'";
|
||||
set global debug= '';
|
||||
reset master;
|
||||
include/stop_slave.inc
|
||||
@ -43,3 +33,4 @@ start slave;
|
||||
*** must be having the replicate-same-server-id IO thread error ***
|
||||
Slave_IO_Errno= 1593
|
||||
Slave_IO_Error= Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).
|
||||
SET DEBUG_SYNC= 'RESET';
|
||||
|
@ -4,11 +4,9 @@ reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
SET DEBUG_SYNC= 'RESET';
|
||||
include/stop_slave.inc
|
||||
SELECT GET_LOCK("debug_lock.before_get_running_status_yes", 1000);
|
||||
GET_LOCK("debug_lock.before_get_running_status_yes", 1000)
|
||||
1
|
||||
set global debug= 'd,debug_lock.before_get_running_status_yes';
|
||||
set global debug= 'd,dbug.before_get_running_status_yes';
|
||||
Slave_running, Slave_IO_Running, Slave_SQL_Running, must be OFF, NO, NO in three following queries
|
||||
SHOW STATUS LIKE 'Slave_running';
|
||||
Variable_name Value
|
||||
@ -22,9 +20,7 @@ Variable_name Value
|
||||
Slave_running OFF
|
||||
Slave_IO_Running= No
|
||||
Slave_SQL_Running= No
|
||||
SELECT RELEASE_LOCK("debug_lock.before_get_running_status_yes");
|
||||
RELEASE_LOCK("debug_lock.before_get_running_status_yes")
|
||||
1
|
||||
SET DEBUG_SYNC='now SIGNAL signal.io_thread_let_running';
|
||||
Slave_running, Slave_IO_Running, Slave_SQL_Running must be OFF YES NO in three following queries
|
||||
SHOW STATUS LIKE 'Slave_running';
|
||||
Variable_name Value
|
||||
@ -39,4 +35,5 @@ Slave_running ON
|
||||
Slave_IO_Running= Yes
|
||||
Slave_SQL_Running= Yes
|
||||
set global debug= '';
|
||||
SET DEBUG_SYNC= 'RESET';
|
||||
End of tests
|
||||
|
@ -16,8 +16,16 @@
|
||||
|
||||
source include/master-slave.inc;
|
||||
source include/have_debug.inc;
|
||||
source include/have_debug_sync.inc;
|
||||
|
||||
#
|
||||
# The test is not supposed to have any binglog affairs.
|
||||
# Hence it's enough it to run only with one binlog format
|
||||
#
|
||||
source include/have_binlog_format_mixed.inc;
|
||||
|
||||
connection slave;
|
||||
|
||||
call mtr.add_suppression("Slave I/O: .* failed with error: Lost connection to MySQL server at 'reading initial communication packet'");
|
||||
call mtr.add_suppression("Slave I/O: Master command COM_REGISTER_SLAVE failed: .*");
|
||||
call mtr.add_suppression("Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; .*");
|
||||
@ -26,20 +34,16 @@ call mtr.add_suppression("Slave I/O thread .* register on master");
|
||||
#Test case 1: Try to get the value of the UNIX_TIMESTAMP from master under network disconnection
|
||||
let $debug_saved= `select @@global.debug`;
|
||||
|
||||
let $debug_lock= "debug_lock.before_get_UNIX_TIMESTAMP";
|
||||
eval SELECT IS_FREE_LOCK($debug_lock);
|
||||
eval SELECT GET_LOCK($debug_lock, 1000);
|
||||
|
||||
set global debug= 'd,debug_lock.before_get_UNIX_TIMESTAMP';
|
||||
# set up two parameters to pass into extra/rpl_tests/rpl_get_master_version_and_clock
|
||||
let $dbug_sync_point= 'debug_lock.before_get_UNIX_TIMESTAMP';
|
||||
let $debug_sync_action= 'now SIGNAL signal.get_unix_timestamp';
|
||||
source extra/rpl_tests/rpl_get_master_version_and_clock.test;
|
||||
|
||||
#Test case 2: Try to get the value of the SERVER_ID from master under network disconnection
|
||||
connection slave;
|
||||
let $debug_lock= "debug_lock.before_get_SERVER_ID";
|
||||
eval SELECT IS_FREE_LOCK($debug_lock);
|
||||
eval SELECT GET_LOCK($debug_lock, 1000);
|
||||
|
||||
set global debug= 'd,debug_lock.before_get_SERVER_ID';
|
||||
let $dbug_sync_point= 'debug_lock.before_get_SERVER_ID';
|
||||
let $debug_sync_action= 'now SIGNAL signal.get_server_id';
|
||||
source extra/rpl_tests/rpl_get_master_version_and_clock.test;
|
||||
|
||||
eval set global debug= '$debug_saved';
|
||||
@ -63,4 +67,9 @@ let $last_io_error= query_get_value("show slave status", Last_IO_Error, 1);
|
||||
echo Slave_IO_Errno= $last_io_errno;
|
||||
echo Slave_IO_Error= $last_io_error;
|
||||
|
||||
# cleanup
|
||||
|
||||
# is not really necessary but avoids mtr post-run env check warnings
|
||||
SET DEBUG_SYNC= 'RESET';
|
||||
|
||||
# End of tests
|
||||
|
@ -5,14 +5,14 @@
|
||||
#
|
||||
source include/master-slave.inc;
|
||||
source include/have_debug.inc;
|
||||
source include/have_debug_sync.inc;
|
||||
|
||||
connection slave;
|
||||
|
||||
SET DEBUG_SYNC= 'RESET';
|
||||
source include/stop_slave.inc;
|
||||
let $debug_saved= `select @@global.debug`;
|
||||
let $debug_lock= "debug_lock.before_get_running_status_yes";
|
||||
eval SELECT GET_LOCK($debug_lock, 1000);
|
||||
set global debug= 'd,debug_lock.before_get_running_status_yes';
|
||||
set global debug= 'd,dbug.before_get_running_status_yes'; # to block due-started IO
|
||||
|
||||
|
||||
# Test 1. Slave is stopped
|
||||
|
||||
@ -29,6 +29,12 @@ echo Slave_SQL_Running= $status;
|
||||
|
||||
start slave io_thread;
|
||||
|
||||
#
|
||||
# Notice a difference between versions in showing p.2:
|
||||
# 5.1 has two OFF,ON IO-thread state running state whereas later versions
|
||||
# have three: OFF,Connecting,ON.
|
||||
# Hence, 5.1 must display OFF NO NO where as 5.1+ OFF Connecting NO
|
||||
#
|
||||
--echo Slave_running, Slave_IO_Running, Slave_SQL_Running must be OFF NO NO in three following queries
|
||||
|
||||
SHOW STATUS LIKE 'Slave_running';
|
||||
@ -40,7 +46,7 @@ echo Slave_SQL_Running= $status;
|
||||
# Test 3. The slave IO thread is started and got connected to master
|
||||
# and SQL thread is still not started
|
||||
|
||||
eval SELECT RELEASE_LOCK($debug_lock);
|
||||
SET DEBUG_SYNC='now SIGNAL signal.io_thread_let_running'; # unblock IO thread now
|
||||
let $slave_param= Slave_IO_Running;
|
||||
let $slave_param_value= YES;
|
||||
source include/wait_for_slave_param.inc;
|
||||
@ -72,5 +78,5 @@ echo Slave_SQL_Running= $status;
|
||||
connection slave;
|
||||
|
||||
eval set global debug= '$debug_saved';
|
||||
|
||||
SET DEBUG_SYNC= 'RESET';
|
||||
--echo End of tests
|
||||
|
Reference in New Issue
Block a user