Commit 6a51e0f8 authored by tomas@whalegate.ndb.mysql.com's avatar tomas@whalegate.ndb.mysql.com

Merge whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb

into  whalegate.ndb.mysql.com:/home/tomas/mysql-5.1-new-rpl
parents 07774f97 f3a72845
......@@ -2,8 +2,6 @@
# Test updated to use a wrapper #
#################################
-- source include/master-slave.inc
eval CREATE TABLE t1 (a INT) ENGINE=$engine_type;
begin;
......
......@@ -2,8 +2,6 @@
# (not internally row-per-row but more like a TRUNCATE, MyISAM
# supports that), is replicated (BUG#13576).
-- source include/master-slave.inc
eval create table t1 (a int, b int) engine=$engine_type;
insert into t1 values(1,1);
sync_slave_with_master;
......
......@@ -5,8 +5,6 @@
# Slave needs to be started with --innodb to store table in InnoDB.
# Same test for MyISAM (which had no bug).
-- source include/master-slave.inc
eval CREATE TABLE t1 (
a int unsigned not null auto_increment primary key,
b int unsigned,
......
# Requires statement logging
-- source include/master-slave.inc
# Clean up old slave's binlogs.
# The slave is started with --log-slave-updates
......
......@@ -2,8 +2,6 @@
# some replicate-* rules exist.
# (BUG#7011)
source include/master-slave.inc;
--disable_warnings
drop table if exists t1,t2;
--enable_warnings
......
-- source include/master-slave.inc
##############################################################################
#
# Let's verify that multi-update with a subselect does not cause the slave to crash
......
......@@ -8,8 +8,6 @@
# The slave is started with max_binlog_size=16384 bytes,
# to force many rotations (approximately 30 rotations)
-- source include/master-slave.inc
# We have to sync with master, to ensure slave had time to start properly
# before we stop it. If not, we get errors about UNIX_TIMESTAMP() in the log.
connection master;
......
-- source include/master-slave.inc
-- source include/have_binlog_format_row.inc
CREATE TABLE t1 (word CHAR(20) NOT NULL);
LOAD DATA INFILE '../std_data_ln/words.dat' INTO TABLE t1;
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
......
......@@ -5,10 +5,6 @@
# TEST: To test the UUID() in rbr #
#############################################################################
# Includes
-- source include/have_binlog_format_row.inc
-- source include/master-slave.inc
# Begin clean up test section
connection master;
......
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
#
# Basic tests of row-level logging
#
......
......@@ -5,10 +5,6 @@
# correctly.
################################################
# Includes
-- source include/have_binlog_format_row.inc
-- source include/master-slave.inc
# Pre test clean up section
connection master;
--disable_warnings
......
# Replication of character sets.
# This test will fail if the server/client does not support enough charsets.
# Requires statement logging
-- source include/have_binlog_format_row.inc
-- source include/master-slave.inc
--disable_warnings
set timestamp=1000000000;
drop database if exists mysqltest2;
......
......@@ -18,11 +18,6 @@
# Vs slave. #
#############################################################################
# Includes
-- source include/have_binlog_format_row.inc
-- source include/master-slave.inc
# Begin clean up test section
connection master;
--disable_warnings
......
......@@ -3,11 +3,6 @@
# Original Date: Aug/13/2005 Created from Bug 12335 #
#############################################################################
# Includes
-- source include/have_binlog_format_row.inc
-- source include/master-slave.inc
# Begin clean up test section
connection master;
--disable_warnings
......
......@@ -8,10 +8,6 @@
# to populate a table with data from the first table. #
#############################################################################
# Includes
-- source include/have_binlog_format_row.inc
-- source include/master-slave.inc
# Begin clean up test section
connection master;
--disable_warnings
......
......@@ -11,6 +11,7 @@ drop table if exists t1, t2;
flush tables;
--require r/true.require
select (support = 'YES' or support = 'DEFAULT') as `TRUE` from information_schema.engines where engine = 'ndbcluster';
--source include/ndb_not_readonly.inc
enable_query_log;
# Check that server2 has NDB support
......@@ -22,11 +23,8 @@ drop table if exists t1, t2;
flush tables;
--require r/true.require
select (support = 'YES' or support = 'DEFAULT') as `TRUE` from information_schema.engines where engine = 'ndbcluster';
--source include/ndb_not_readonly.inc
enable_query_log;
# Check should be here as well...
# # Check that second master mysqld has come out of redonly mode
# --source include/ndb_not_readonly.inc
# Set the default connection to 'server1'
connection server1;
......@@ -2,8 +2,5 @@
disable_query_log;
--require r/true.require
select (support = 'YES' or support = 'DEFAULT') as `TRUE` from information_schema.engines where engine = 'ndbcluster';
--source include/ndb_not_readonly.inc
enable_query_log;
connect (master,127.0.0.1,root,,test,$MASTER_MYPORT,);
connect (master1,127.0.0.1,root,,test,$MASTER_MYPORT,);
connect (slave,127.0.0.1,root,,test,$SLAVE_MYPORT,);
connect (slave1,127.0.0.1,root,,test,$SLAVE_MYPORT,);
connection slave;
-- source include/have_ndb.inc
-- source include/master-slave-reset.inc
# Set the default connection to 'master'
connection master;
# Check that server has come out ot readonly mode
--disable_query_log
let $counter= 100;
#
# wait for server to connect properly to cluster
#
--error 0,ER_NO_SUCH_TABLE,ER_OPEN_AS_READONLY,ER_GET_ERRMSG,ER_KEY_NOT_FOUND
delete from mysql.ndb_apply_status where server_id=0;
let $mysql_errno= 1;
let $counter= 600;
while ($mysql_errno)
{
--error 0, 1005
create table check_read_only(a int) engine=NDB;
sleep 0.1;
if (!$counter)
# Table is readonly until the mysqld has connected properly
--error 0,ER_NO_SUCH_TABLE,ER_OPEN_AS_READONLY,ER_GET_ERRMSG
replace into mysql.ndb_apply_status values(0,0,"",0,0);
if ($mysql_errno)
{
die("Failed while waiting for mysqld to come out of readonly mode");
if (!$counter)
{
die("Failed while waiting for mysqld to come out of readonly mode");
}
dec $counter;
--sleep 0.1
}
dec $counter;
}
let $counter= 100;
let $mysql_errno= 1;
while ($mysql_errno)
{
--error 0, 1036
insert into check_read_only values(1);
sleep 0.1;
if (!$counter)
{
die("Failed while waiting for mysqld to come out of readonly mode");
}
dec $counter;
}
drop table check_read_only;
--enable_query_log
delete from mysql.ndb_apply_status where server_id=0;
#
# connected
#
......@@ -7,5 +7,6 @@
########################################################
-- source include/not_ndb_default.inc
-- source include/have_innodb.inc
-- source include/master-slave.inc
let $engine_type=innodb;
-- source extra/rpl_tests/rpl_commit_after_flush.test
......@@ -2,5 +2,6 @@
# By JBM 2006-02-14 added to skip test when NDB #
##################################################
-- source include/not_ndb_default.inc
-- source include/master-slave.inc
let $engine_type=myisam;
-- source extra/rpl_tests/rpl_delete_no_where.test
......@@ -3,6 +3,7 @@
#####################################
-- source include/not_ndb_default.inc
-- source include/have_innodb.inc
-- source include/master-slave.inc
let $engine_type=innodb;
let $engine_type2=myisam;
-- source extra/rpl_tests/rpl_insert_ignore.test
......@@ -5,5 +5,6 @@
# Default engine. #
#######################################################
--source include/not_ndb_default.inc
--source include/master-slave.inc
let $engine_type=MyISAM;
--source extra/rpl_tests/rpl_multi_update2.test
......@@ -5,5 +5,6 @@
# Default engine. #
#######################################################
--source include/not_ndb_default.inc
--source include/master-slave.inc
let $engine_type=MyISAM;
-- source extra/rpl_tests/rpl_multi_update3.test
......@@ -8,7 +8,7 @@
# test and to have control over the tests.
##############################################################
-- source include/have_ndb.inc
-- source include/master-slave.inc
-- source include/ndb_master-slave.inc
connection slave;
-- source include/have_innodb.inc
connection master;
......
......@@ -8,6 +8,6 @@
# test and to have control over the tests.
##############################################################
-- source include/have_ndb.inc
-- source include/master-slave.inc
-- source include/ndb_master-slave.inc
SET storage_engine=ndb;
--source extra/rpl_tests/rpl_ndb_2multi_eng.test
......@@ -2,5 +2,7 @@
# By JBM 2005-02-15 Wrapped to allow reuse of test code#
########################################################
--source include/have_ndb.inc
--source include/have_binlog_format_row.inc
--source include/ndb_master-slave.inc
let $engine_type=NDB;
--source extra/rpl_tests/rpl_row_UUID.test
......@@ -7,8 +7,8 @@
# Change: Augmented test to use with cluster
#####################################
--source include/have_ndb.inc
--source include/master-slave.inc
--source include/have_binlog_format_mixed_or_row.inc
--source include/ndb_master-slave.inc
--echo ***************** Test 1 ************************
--echo
......
......@@ -13,7 +13,7 @@
--source include/have_ndb.inc
--source include/have_ndb_extra.inc
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
--source include/ndb_master-slave.inc
# kill any trailing processes
--system killall lt-bankTransactionMaker lt-bankTimer lt-bankMakeGL || true
......
--source include/have_ndb.inc
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
--source include/ndb_master-slave.inc
......
--source include/have_ndb.inc
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
--source include/ndb_master-slave.inc
#
# basic test of blob replication for NDB
......
......@@ -4,6 +4,8 @@
# code between engine tests #
#################################
-- source include/have_ndb.inc
-- source include/have_binlog_format_row.inc
-- source include/ndb_master-slave.inc
let $engine_type=NDBCLUSTER;
-- source extra/rpl_tests/rpl_row_blob.test
......@@ -2,5 +2,7 @@
# By JBM 2005-02-15 Wrapped to allow reuse of test code#
########################################################
--source include/have_ndb.inc
-- source include/have_binlog_format_row.inc
-- source include/ndb_master-slave.inc
let $engine_type=NDB;
-- source extra/rpl_tests/rpl_row_charset.test
--source include/have_ndb.inc
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
--source include/ndb_master-slave.inc
# set up circular replication
......
--source include/have_ndb.inc
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
--source include/ndb_master-slave.inc
connection master;
CREATE TABLE t1 (a int key, b int) ENGINE=NDB;
......
......@@ -6,5 +6,6 @@
#####################################
-- source include/have_ndb.inc
-- source include/have_binlog_format_row.inc
-- source include/ndb_master-slave.inc
let $engine_type=NDB;
-- source extra/rpl_tests/rpl_commit_after_flush.test
......@@ -11,7 +11,7 @@
--source include/not_embedded.inc
--source include/big_test.inc
#--source include/have_ndb_extra.inc
--source include/master-slave.inc
--source include/ndb_master-slave.inc
#### Test start cleanup section #####
--disable_warnings
......
--source include/have_ndb.inc
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
--source include/ndb_master-slave.inc
--disable_warnings
DROP TABLE IF EXISTS t1;
......
......@@ -7,7 +7,7 @@
--source include/have_ndb.inc
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
--source include/ndb_master-slave.inc
--echo --- Doing pre test cleanup ---
......
......@@ -23,9 +23,9 @@
# abort of the test case etc..
#
--source include/master-slave.inc
--source include/have_binlog_format_row.inc
--source include/have_ndb.inc
--source include/have_binlog_format_row.inc
--source include/ndb_master-slave.inc
let $engine_type= NDB;
let $temp_engine_type= MEMORY;
let $show_binlog = 0;
......
......@@ -4,5 +4,6 @@
#########################################
--source include/have_ndb.inc
-- source include/have_binlog_format_row.inc
-- source include/ndb_master-slave.inc
let $engine_type=NDB;
-- source extra/rpl_tests/rpl_delete_no_where.test
......@@ -7,7 +7,7 @@
--source include/have_ndb.inc
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
--source include/ndb_master-slave.inc
--disable_warnings
DROP DATABASE IF EXISTS replica;
......
......@@ -7,7 +7,7 @@
--source include/have_ndb.inc
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
--source include/ndb_master-slave.inc
--disable_warnings
DROP TABLE IF EXISTS t1, t2;
......
......@@ -5,8 +5,8 @@
# Using NDB
###########################################
-- source include/have_binlog_format_row.inc
--source include/have_ndb.inc
-- source include/master-slave.inc
-- source include/have_ndb.inc
-- source include/ndb_master-slave.inc
let $engine_type = 'NDB';
-- source extra/rpl_tests/rpl_extraSlave_Col.test
......
......@@ -7,6 +7,8 @@
# reduce test case code #
###################################
-- source include/have_ndb.inc
-- source include/have_binlog_format_row.inc
-- source include/ndb_master-slave.inc
let $engine_type=NDB;
-- source extra/rpl_tests/rpl_row_func003.test
-- source include/master-slave-end.inc
--source include/have_ndb.inc
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
--source include/ndb_master-slave.inc
#
# Currently test only works with ndb since it retrieves "old"
......
......@@ -7,10 +7,8 @@
# to be able to use the same code for all these different
# test and to have control over the tests.
##############################################################
-- source include/have_innodb.inc
-- source include/master-slave.inc
connection slave;
-- source include/have_ndb.inc
connection master;
-- source include/have_innodb.inc
-- source include/ndb_master-slave.inc
SET storage_engine=innodb;
--source extra/rpl_tests/rpl_ndb_2multi_eng.test
......@@ -2,8 +2,8 @@
-- source include/have_ndb.inc
-- source include/have_innodb.inc
-- source include/master-slave.inc
-- source include/have_binlog_format_row.inc
-- source include/ndb_master-slave.inc
create table t1 (a int, unique(a)) engine=ndbcluster;
create table t2 (a int, unique(a)) engine=innodb;
......
......@@ -3,6 +3,7 @@
#####################################
-- source include/have_ndb.inc
-- source include/have_binlog_format_row.inc
-- source include/ndb_master-slave.inc
let $engine_type=NDB;
let $engine_type2=myisam;
-- source extra/rpl_tests/rpl_insert_ignore.test
......@@ -7,7 +7,7 @@
--source include/have_ndb.inc
--source include/have_ndb_extra.inc
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
--source include/ndb_master-slave.inc
--disable_warnings
# reset master
......
......@@ -7,6 +7,7 @@
###################################
-- source include/have_binlog_format_row.inc
-- source include/have_ndb.inc
-- source include/ndb_master-slave.inc
let $engine_type=NDB;
-- source extra/rpl_tests/rpl_log.test
--source include/have_ndb.inc
--source include/have_multi_ndb.inc
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
--source include/ndb_master-slave.inc
# note: server2 is another "master" connected to the master cluster
......
......@@ -7,6 +7,7 @@
# Run this only for row based replication, as replication of
# auto_increment values are not supported with NDB as storage engine
-- source include/have_binlog_format_row.inc
-- source include/ndb_master-slave.inc
let $engine_type=NDB;
--source extra/rpl_tests/rpl_multi_update2.test
......@@ -4,5 +4,6 @@
############################################################
-- source include/have_ndb.inc
-- source include/have_binlog_format_row.inc
-- source include/ndb_master-slave.inc
let $engine_type=NDB;
-- source extra/rpl_tests/rpl_multi_update3.test
......@@ -7,9 +7,6 @@
# to be able to use the same code for all these different
# test and to have control over the tests.
##############################################################
-- source include/master-slave.inc
connection slave;
--source include/have_ndb.inc
connection master;
-- source include/ndb_master-slave.inc
SET storage_engine=myisam;
--source extra/rpl_tests/rpl_ndb_2multi_eng.test
......@@ -4,5 +4,6 @@
############################################################
-- source include/have_ndb.inc
-- source include/have_ndb_extra.inc
-- source include/ndb_master-slave.inc
let $engine_type=NDB;
-- source extra/rpl_tests/rpl_relayrotate.test
......@@ -8,7 +8,7 @@
--source include/have_ndb.inc
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
--source include/ndb_master-slave.inc
--disable_warnings
DROP DATABASE IF EXISTS replica;
......
......@@ -2,5 +2,7 @@
# By JBM 2005-02-15 Wrapped to allow reuse of test code#
########################################################
--source include/have_ndb.inc
-- source include/have_binlog_format_row.inc
-- source include/ndb_master-slave.inc
let $engine_type=NDB;
-- source extra/rpl_tests/rpl_row_001.test
......@@ -5,5 +5,7 @@
# For different engines #
#################################
-- source include/have_ndb.inc
-- source include/have_binlog_format_row.inc
-- source include/ndb_master-slave.inc
let $engine_type=NDBCLUSTER;
-- source extra/rpl_tests/rpl_row_sp003.test
......@@ -5,5 +5,7 @@
# For different engines #
#################################
-- source include/have_ndb.inc
-- source include/have_binlog_format_row.inc
-- source include/ndb_master-slave.inc
let $engine_type=NDBCLUSTER;
-- source extra/rpl_tests/rpl_row_sp006.test
--source include/have_ndb.inc
--source include/have_innodb.inc
--source include/have_binlog_format_mixed_or_statement.inc
--source include/master-slave.inc
--source include/ndb_master-slave.inc
--connection master
create table t1 (a int key, b int) engine innodb;
......
......@@ -2,7 +2,7 @@
--source include/ndb_default_cluster.inc
--source include/not_embedded.inc
--source include/have_binlog_format_row.inc
--source include/master-slave.inc
--source include/ndb_master-slave.inc
#
# Currently test only works with ndb since it retrieves "old"
......
......@@ -9,7 +9,7 @@
# Includes
-- source include/have_binlog_format_row.inc
-- source include/have_ndb.inc
-- source include/master-slave.inc
-- source include/ndb_master-slave.inc
let $engine_type=NDB;
-- source extra/rpl_tests/rpl_trig004.test
-- source include/have_ndb.inc
-- source include/have_binlog_format_row.inc
-- source include/master-slave.inc
-- source include/have_ndbapi_examples.inc
-- source include/ndb_master-slave.inc
--exec echo Running ndbapi_simple_dual
--exec $NDB_EXAMPLES_DIR/ndbapi_simple_dual/ndbapi_simple_dual $MASTER_MYSOCK "localhost:$NDBCLUSTER_PORT" $SLAVE_MYSOCK "localhost:$NDBCLUSTER_PORT_SLAVE" >> $NDB_EXAMPLES_OUTPUT
......
......@@ -6,5 +6,6 @@
#######################################################
-- source include/not_ndb_default.inc
-- source include/have_innodb.inc
-- source include/master-slave.inc
let $engine_type=innodb;
-- source extra/rpl_tests/rpl_relayrotate.test
......@@ -3,5 +3,7 @@
# Added to skip if ndb is default #
########################################################
-- source include/not_ndb_default.inc
-- source include/have_binlog_format_row.inc
-- source include/master-slave.inc
let $engine_type=MYISAM;
-- source extra/rpl_tests/rpl_row_001.test
......@@ -3,5 +3,7 @@
# Added to skip if ndb is default #
########################################################
-- source include/not_ndb_default.inc
-- source include/have_binlog_format_row.inc
-- source include/master-slave.inc
let $engine_type=myisam;
--source extra/rpl_tests/rpl_row_UUID.test
-- source include/have_binlog_format_row.inc
-- source include/master-slave.inc
let $type= 'MYISAM' ;
let $extra_index= ;
-- source extra/rpl_tests/rpl_row_basic.test
-- source include/have_innodb.inc
-- source include/have_binlog_format_row.inc
-- source include/master-slave.inc
let $type= 'INNODB' ;
let $extra_index= ;
......
-- source include/have_ndb.inc
-- source include/have_binlog_format_row.inc
-- source include/ndb_master-slave.inc
let $type= 'NDB' ;
let $extra_index= ;
-- source extra/rpl_tests/rpl_row_basic.test
......
......@@ -7,6 +7,8 @@
########################################################
-- source include/not_ndb_default.inc
-- source include/have_innodb.inc
-- source include/have_binlog_format_row.inc
-- source include/master-slave.inc
let $engine_type=InnoDB;
-- source extra/rpl_tests/rpl_row_blob.test
......@@ -6,6 +6,8 @@
# Added to skip if ndb is default #
########################################################
-- source include/not_ndb_default.inc
-- source include/have_binlog_format_row.inc
-- source include/master-slave.inc
let $engine_type=myisam;
-- source extra/rpl_tests/rpl_row_blob.test
......@@ -3,5 +3,7 @@
# Added to skip if ndb is default #
########################################################
-- source include/not_ndb_default.inc
-- source include/have_binlog_format_row.inc
-- source include/master-slave.inc
let $engine_type=myisam;
-- source extra/rpl_tests/rpl_row_charset.test
......@@ -7,5 +7,7 @@
########################################################
-- source include/not_ndb_default.inc
-- source include/have_innodb.inc
-- source include/have_binlog_format_row.inc
-- source include/master-slave.inc
let $engine_type=INNODB;
-- source extra/rpl_tests/rpl_row_func003.test
......@@ -11,6 +11,7 @@
########################################################
-- source include/not_ndb_default.inc
-- source include/have_binlog_format_row.inc
-- source include/master-slave.inc
let $engine_type=MyISAM;
-- source extra/rpl_tests/rpl_log.test
......@@ -8,6 +8,7 @@
-- source include/not_ndb_default.inc
-- source include/have_binlog_format_row.inc
-- source include/have_innodb.inc
-- source include/master-slave.inc
let $engine_type=InnoDB;
-- source extra/rpl_tests/rpl_log.test
......@@ -7,5 +7,7 @@
########################################################
-- source include/not_ndb_default.inc
-- source include/have_innodb.inc
-- source include/have_binlog_format_row.inc
-- source include/master-slave.inc
let $engine_type=INNODB;
-- source extra/rpl_tests/rpl_row_sp003.test
......@@ -7,5 +7,7 @@
########################################################
-- source include/not_ndb_default.inc
-- source include/have_innodb.inc
-- source include/have_binlog_format_row.inc
-- source include/master-slave.inc
let $engine_type=InnoDB;
-- source extra/rpl_tests/rpl_row_sp006.test
# Requires statement logging
-- source include/have_binlog_format_mixed_or_statement.inc
-- source include/master-slave.inc
let $engine_type=MyISAM;
-- source extra/rpl_tests/rpl_log.test
......
--source include/have_ndb.inc
--source include/master-slave.inc
--source include/ndb_master-slave.inc
--source include/have_binlog_format_mixed_or_row.inc
--disable_query_log
......
......@@ -776,7 +776,7 @@ static int ndbcluster_create_ndb_apply_status_table(THD *thd)
" end_pos BIGINT UNSIGNED NOT NULL, "
" PRIMARY KEY USING HASH (server_id) ) ENGINE=NDB");
const int no_print_error[2]= {701, 0}; // do not print error 701
const int no_print_error[3]= {701, 4009, 0}; // do not print error 701 etc
run_query(thd, buf, end, no_print_error, TRUE);
DBUG_RETURN(0);
......@@ -833,7 +833,7 @@ static int ndbcluster_create_schema_table(THD *thd)
" type INT UNSIGNED NOT NULL,"
" PRIMARY KEY USING HASH (db,name) ) ENGINE=NDB");
const int no_print_error[2]= {701, 0}; // do not print error 701
const int no_print_error[3]= {701, 4009, 0}; // do not print error 701 etc
run_query(thd, buf, end, no_print_error, TRUE);
DBUG_RETURN(0);
......
......@@ -5,7 +5,7 @@ Next DBACC 3002
Next DBTUP 4029
Next DBLQH 5045
Next DBDICT 6007
Next DBDIH 7183
Next DBDIH 7184
Next DBTC 8040
Next CMVMI 9000
Next BACKUP 10038
......@@ -75,6 +75,8 @@ Delay GCP_SAVEREQ by 10 secs
7180: Crash master during master-take-over in execMASTER_LCPCONF
7183: Crash when receiving COPY_GCIREQ
ERROR CODES FOR TESTING NODE FAILURE, LOCAL CHECKPOINT HANDLING:
-----------------------------------------------------------------
......
......@@ -747,6 +747,8 @@ void Dbdih::execCOPY_GCIREQ(Signal* signal)
}
ndbrequire(ok);
CRASH_INSERTION(7183);
/* ----------------------------------------------------------------------- */
/* WE START BY TRYING TO OPEN THE FIRST RESTORABLE GCI FILE. */
/* ----------------------------------------------------------------------- */
......@@ -1230,6 +1232,17 @@ void Dbdih::execDIH_RESTARTREQ(Signal* signal)
Uint32 ng = Sysfile::getNodeGroup(i, SYSFILE->nodeGroups);
ndbrequire(ng < MAX_NDB_NODES);
Uint32 gci = node_gcis[i];
if (gci < SYSFILE->lastCompletedGCI[i])
{
jam();
/**
* Handle case, where *I* know that node complete GCI
* but node does not...bug#29167
* i.e node died before it wrote own sysfile
*/
gci = SYSFILE->lastCompletedGCI[i];
}
if (gci > node_group_gcis[ng])
{
jam();
......
......@@ -1869,6 +1869,11 @@ Pgman::free_data_file(Uint32 file_no, Uint32 fd)
int
Pgman::drop_page(Ptr<Page_entry> ptr)
{
#ifdef VM_TRACE
debugOut << "PGMAN: drop_page" << endl;
debugOut << "PGMAN: " << ptr << endl;
#endif
Page_stack& pl_stack = m_page_stack;
Page_queue& pl_queue = m_page_queue;
......@@ -1881,8 +1886,14 @@ Pgman::drop_page(Ptr<Page_entry> ptr)
if (state & Page_entry::ONSTACK)
{
jam();
bool at_bottom = ! pl_stack.hasPrev(ptr);
pl_stack.remove(ptr);
state &= ~ Page_entry::ONSTACK;
if (at_bottom && (state & Page_entry::HOT))
{
jam();
lirs_stack_prune();
}
}
if (state & Page_entry::ONQUEUE)
......@@ -2296,6 +2307,13 @@ operator<<(NdbOut& out, Ptr<Pgman::Page_entry> ptr)
out << " lsn=" << dec << pe.m_lsn;
out << " busy_count=" << dec << pe.m_busy_count;
#ifdef VM_TRACE
{
Pgman::Page_stack& pl_stack = pe.m_this->m_page_stack;
if (! pl_stack.hasNext(ptr))
out << " top";
if (! pl_stack.hasPrev(ptr))
out << " bottom";
}
{
Pgman::Local_page_request_list
req_list(ptr.p->m_this->m_page_request_pool, ptr.p->m_requests);
......
......@@ -1219,6 +1219,48 @@ runBug24664(NDBT_Context* ctx, NDBT_Step* step)
return result;
}
int
runBug29167(NDBT_Context* ctx, NDBT_Step* step)
{
int result = NDBT_OK;
NdbRestarter restarter;
Ndb* pNdb = GETNDB(step);
const Uint32 nodeCount = restarter.getNumDbNodes();
if (nodeCount < 2)
return NDBT_OK;
int filter[] = { 15, NDB_MGM_EVENT_CATEGORY_CHECKPOINT, 0 };
NdbLogEventHandle handle =
ndb_mgm_create_logevent_handle(restarter.handle, filter);
struct ndb_logevent event;
int master = restarter.getMasterNodeId();
do {
int node1 = restarter.getRandomNodeOtherNodeGroup(master, rand());
int node2 = restarter.getRandomNodeSameNodeGroup(node1, rand());
int val2[] = { DumpStateOrd::CmvmiSetRestartOnErrorInsert, 1 };
restarter.dumpStateAllNodes(val2, 2);
int dump[] = { DumpStateOrd::DihSetTimeBetweenGcp, 30000 };
restarter.dumpStateAllNodes(dump, 2);
while(ndb_logevent_get_next(handle, &event, 0) >= 0 &&
event.type != NDB_LE_GlobalCheckpointCompleted);
CHECK(restarter.insertErrorInAllNodes(932) == 0);
CHECK(restarter.insertErrorInNode(node1, 7183) == 0);
CHECK(restarter.insertErrorInNode(node2, 7183) == 0);
CHECK(restarter.waitClusterNoStart() == 0);
restarter.startAll();
CHECK(restarter.waitClusterStarted() == 0);
} while(false);
return result;
}
NDBT_TESTSUITE(testSystemRestart);
TESTCASE("SR1",
"Basic system restart test. Focus on testing restart from REDO log.\n"
......@@ -1399,6 +1441,12 @@ TESTCASE("Bug24664",
STEP(runBug24664);
FINALIZER(runClearTable);
}
TESTCASE("Bug29167", "")
{
INITIALIZER(runWaitStarted);
STEP(runBug29167);
}
NDBT_TESTSUITE_END(testSystemRestart);
int main(int argc, const char** argv){
......
......@@ -485,6 +485,10 @@ max-time: 1000
cmd: testNodeRestart
args: -n Bug27003 T1
max-time: 300
cmd: testSystemRestart
args: -n Bug29167 T1
max-time: 1000
cmd: testNodeRestart
args: -n Bug27283 T1
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment