MINI MINI MANI MO

Path : /opt/mysql/mysql-test/suite/ndb_rpl/t/
File Upload :
Current File : //opt/mysql/mysql-test/suite/ndb_rpl/t/ndb_rpl_skip_gap_event.test

# The include statement below is a temp one for tests that are yet to
#be ported to run with InnoDB,
#but needs to be kept for tests that would need MyISAM in future.
--source include/force_myisam_default.inc

--source include/have_ndb.inc
--source include/have_binlog_format_mixed_or_row.inc
--source suite/ndb_rpl/ndb_master-slave.inc

--connection master
create table t1(pk int not null primary key, i int) engine = ndb;

#
# insert more records into tables
#
let $1=1000;
disable_query_log;
while ($1)
{
 eval insert into t1 values($1, $1);
 dec $1;
}
enable_query_log;

--sync_slave_with_master
# connect to slave and ensure data is there.
--connection slave
select count(*) from t1;

--connection master

--echo Restarting mysqld
 # Hack to allow using restart_mysqld.inc from rpl test
let $allow_rpl_inited=1;

# Ignore the warning generated by ndbcluster's binlog thread
# when mysqld is restarted
--disable_query_log ONCE
call mtr.add_suppression("mysqld startup An incident event has been written");

let $mysqld_name=mysqld.1.1;
--source include/restart_mysqld.inc

# When mysqld starts up again it will:
# - rotate the binary log(thus switching to second log)
# - ndbcluster binlog injector will write the special incident
#   event telling that it might not have injected all NDB changes
#   i.e LOST_EVENTS, this also causes the binlog to be rotated
#   again(thus switching to third log)
#
# Show that the second log contains the LOST_EVENT incident
# and that the binlog has been rotated(ie. flush, rotate and purge).
let $binlog_file=master-bin.000002;
--source include/show_binlog_events.inc

--disable_result_log
--connection slave
# Get slave to try reconnection now.  Ignore errors if already started.
start slave;
--connection master
--enable_result_log

--echo Sync Slave with master
--sync_slave_with_master

--connection slave

--echo Show that Slave has not stopped (has skipped GAP)

let $status_items= Slave_IO_Running, Slave_SQL_Running, Last_Errno, Last_Error;	
-- source include/show_slave_status.inc

--echo Show that replication can continue
--connection master
insert into t1 values (1001, 1001);

--sync_slave_with_master

--connection slave

select count(*) from t1;

--connection master
drop table t1;

--sync_slave_with_master

# NOTE: rpl_end.inc doesnt seem to work after having used restart_mysqld.inc
# or something like that...probably needs investigation
--connection slave
--source include/stop_slave.inc

OHA YOOOO