changed test to make it predictable

parent 71281995
...@@ -160,4 +160,4 @@ master-bin1.000001 # Table_map # # table_id: # (cluster.apply_status) ...@@ -160,4 +160,4 @@ master-bin1.000001 # Table_map # # table_id: # (cluster.apply_status)
master-bin1.000001 # Write_rows # # table_id: # master-bin1.000001 # Write_rows # # table_id: #
master-bin1.000001 # Write_rows # # table_id: # flags: STMT_END_F master-bin1.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin1.000001 # Query # # COMMIT master-bin1.000001 # Query # # COMMIT
master-bin1.000001 # Query # # use `test`; drop table `t2` master-bin1.000001 # Query # # use `test`; drop table t2
drop table if exists t1,t2; drop table if exists t1,t2;
drop table if exists t1,t2; drop table if exists t1,t2;
SHOW TABLES; reset master;
Tables_in_test reset master;
CREATE TABLE t2 (a INT PRIMARY KEY, b int) ENGINE = NDB; CREATE TABLE t2 (a INT PRIMARY KEY, b int) ENGINE = NDB;
show tables;
Tables_in_test
t2
INSERT INTO t2 VALUES (1,1),(2,2); INSERT INTO t2 VALUES (1,1),(2,2);
show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin1.000001 # Query # # use `test`; CREATE TABLE t2 (a INT PRIMARY KEY, b int) ENGINE = NDB
master-bin1.000001 # Query # # BEGIN
master-bin1.000001 # Table_map # # table_id: # (test.t2)
master-bin1.000001 # Table_map # # table_id: # (cluster.apply_status)
master-bin1.000001 # Write_rows # # table_id: #
master-bin1.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin1.000001 # Query # # COMMIT
select * from t2 order by a; select * from t2 order by a;
a b a b
1 1 1 1
...@@ -19,23 +25,54 @@ SELECT * FROM t2 ORDER BY a; ...@@ -19,23 +25,54 @@ SELECT * FROM t2 ORDER BY a;
a b a b
1 1 1 1
2 2 2 2
DROP TABLE t2;
show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # use `test`; CREATE TABLE t2 (a INT PRIMARY KEY, b int) ENGINE = NDB
master-bin.000001 # Query # # BEGIN
master-bin.000001 # Table_map # # table_id: # (test.t2)
master-bin.000001 # Table_map # # table_id: # (cluster.apply_status)
master-bin.000001 # Write_rows # # table_id: #
master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Query # # use `test`; DROP TABLE t2
SELECT inserts,updates,deletes,schemaops FROM SELECT inserts,updates,deletes,schemaops FROM
cluster.binlog_index WHERE epoch=<the_epoch>; cluster.binlog_index WHERE epoch=<the_epoch>;
inserts updates deletes schemaops inserts updates deletes schemaops
2 0 0 0 2 0 0 0
DROP TABLE t2; reset master;
reset master;
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE = NDB; CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE = NDB;
INSERT INTO t1 VALUES (1),(2); INSERT INTO t1 VALUES (1),(2);
show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin1.000001 # Query # # use `test`; CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE = NDB
master-bin1.000001 # Query # # BEGIN
master-bin1.000001 # Table_map # # table_id: # (test.t1)
master-bin1.000001 # Table_map # # table_id: # (cluster.apply_status)
master-bin1.000001 # Write_rows # # table_id: #
master-bin1.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin1.000001 # Query # # COMMIT
SELECT @the_epoch2:=epoch,inserts,updates,deletes,schemaops FROM SELECT @the_epoch2:=epoch,inserts,updates,deletes,schemaops FROM
cluster.binlog_index ORDER BY epoch DESC LIMIT 1; cluster.binlog_index ORDER BY epoch DESC LIMIT 1;
@the_epoch2:=epoch inserts updates deletes schemaops @the_epoch2:=epoch inserts updates deletes schemaops
<the_epoch2> 2 0 0 0 <the_epoch2> 2 0 0 0
SELECT inserts,updates,deletes,schemaops FROM SELECT inserts,updates,deletes,schemaops FROM
cluster.binlog_index WHERE epoch > <the_epoch> AND epoch < <the_epoch2>; cluster.binlog_index WHERE epoch > <the_epoch> AND epoch <= <the_epoch2>;
inserts updates deletes schemaops inserts updates deletes schemaops
2 0 0 0
drop table t1; drop table t1;
SHOW TABLES; show binlog events from <binlog_start>;
Tables_in_test Log_name Pos Event_type Server_id End_log_pos Info
master-bin1.000001 # Query # # use `test`; CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE = NDB
master-bin1.000001 # Query # # BEGIN
master-bin1.000001 # Table_map # # table_id: # (test.t1)
master-bin1.000001 # Table_map # # table_id: # (cluster.apply_status)
master-bin1.000001 # Write_rows # # table_id: #
master-bin1.000001 # Write_rows # # table_id: # flags: STMT_END_F
master-bin1.000001 # Query # # COMMIT
master-bin1.000001 # Query # # use `test`; drop table t1
SELECT inserts,updates,deletes,schemaops FROM SELECT inserts,updates,deletes,schemaops FROM
cluster.binlog_index WHERE epoch > <the_epoch> AND epoch < <the_epoch2>; cluster.binlog_index WHERE epoch > <the_epoch> AND epoch <= <the_epoch2>;
inserts updates deletes schemaops inserts updates deletes schemaops
2 0 0 0
...@@ -17,7 +17,7 @@ ndb_autodiscover : Needs to be fixed w.r.t binlog ...@@ -17,7 +17,7 @@ ndb_autodiscover : Needs to be fixed w.r.t binlog
ndb_autodiscover2 : Needs to be fixed w.r.t binlog ndb_autodiscover2 : Needs to be fixed w.r.t binlog
#ndb_binlog_basic : Results are not deterministic, Tomas will fix #ndb_binlog_basic : Results are not deterministic, Tomas will fix
#ndb_binlog_ddl_multi : Bug#17038 [PATCH PENDING] #ndb_binlog_ddl_multi : Bug#17038 [PATCH PENDING]
ndb_binlog_multi : Results are not deterministic, Tomas will fix #ndb_binlog_multi : Results are not deterministic, Tomas will fix
ndb_load : Bug#17233 ndb_load : Bug#17233
partition_03ndb : Bug#16385 partition_03ndb : Bug#16385
ps_7ndb : dbug assert in RBR mode when executing test suite ps_7ndb : dbug assert in RBR mode when executing test suite
......
...@@ -171,9 +171,9 @@ create table t1 (a int key) engine=ndb; ...@@ -171,9 +171,9 @@ create table t1 (a int key) engine=ndb;
insert into t1 values(1); insert into t1 values(1);
rename table t1 to t2; rename table t1 to t2;
insert into t2 values(2); insert into t2 values(2);
drop table t2;
# now we should see data in table t1 _and_ t2 # now we should see data in table t1 _and_ t2
# prior to bug fix, data was missing for t2 # prior to bug fix, data was missing for t2
--connection server2 --connection server2
drop table t2;
--source include/show_binlog_events.inc --source include/show_binlog_events.inc
...@@ -9,28 +9,26 @@ connection server1; ...@@ -9,28 +9,26 @@ connection server1;
drop table if exists t1,t2; drop table if exists t1,t2;
--enable_warnings --enable_warnings
# reset for test
connection server1;
reset master;
connection server2;
reset master;
# #
# basic test to see if one server sees the table from the other # basic test to see if one server sees the table from the other
# and sets up the replication correctly # and sets up the replication correctly
# #
# no tables and nothing in cluster.binlog_index;
connection server1;
SHOW TABLES;
# create table on the other server # create table on the other server
connection server2; connection server2;
CREATE TABLE t2 (a INT PRIMARY KEY, b int) ENGINE = NDB; CREATE TABLE t2 (a INT PRIMARY KEY, b int) ENGINE = NDB;
# make sure the first mysql server knows about this table
connection server1;
show tables;
# insert something on server2 # insert something on server2
connection server2;
INSERT INTO t2 VALUES (1,1),(2,2); INSERT INTO t2 VALUES (1,1),(2,2);
# verify that we get the data in the binlog
--source include/show_binlog_events.inc
select * from t2 order by a; select * from t2 order by a;
save_master_pos;
--replace_column 1 <the_epoch> --replace_column 1 <the_epoch>
SELECT @the_epoch:=epoch,inserts,updates,deletes,schemaops FROM SELECT @the_epoch:=epoch,inserts,updates,deletes,schemaops FROM
cluster.binlog_index ORDER BY epoch DESC LIMIT 1; cluster.binlog_index ORDER BY epoch DESC LIMIT 1;
...@@ -39,16 +37,25 @@ let $the_epoch= `SELECT @the_epoch`; ...@@ -39,16 +37,25 @@ let $the_epoch= `SELECT @the_epoch`;
# see if we got something on server1 # see if we got something on server1
connection server1; connection server1;
SELECT * FROM t2 ORDER BY a; SELECT * FROM t2 ORDER BY a;
# doing drop table will ensure that all the events have been received
DROP TABLE t2;
# verify thar we have table and data in binlog
--source include/show_binlog_events.inc
--replace_result $the_epoch <the_epoch> --replace_result $the_epoch <the_epoch>
eval SELECT inserts,updates,deletes,schemaops FROM eval SELECT inserts,updates,deletes,schemaops FROM
cluster.binlog_index WHERE epoch=$the_epoch; cluster.binlog_index WHERE epoch=$the_epoch;
# reset for next test
connection server1;
reset master;
connection server2;
reset master;
# single schema ops will not show # single schema ops will not show
# drop the table on server1 connection server2;
DROP TABLE t2;
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE = NDB; CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE = NDB;
INSERT INTO t1 VALUES (1),(2); INSERT INTO t1 VALUES (1),(2);
save_master_pos; --source include/show_binlog_events.inc
--replace_column 1 <the_epoch2> --replace_column 1 <the_epoch2>
SELECT @the_epoch2:=epoch,inserts,updates,deletes,schemaops FROM SELECT @the_epoch2:=epoch,inserts,updates,deletes,schemaops FROM
cluster.binlog_index ORDER BY epoch DESC LIMIT 1; cluster.binlog_index ORDER BY epoch DESC LIMIT 1;
...@@ -56,16 +63,14 @@ let $the_epoch2= `SELECT @the_epoch2`; ...@@ -56,16 +63,14 @@ let $the_epoch2= `SELECT @the_epoch2`;
--replace_result $the_epoch <the_epoch> $the_epoch2 <the_epoch2> --replace_result $the_epoch <the_epoch> $the_epoch2 <the_epoch2>
eval SELECT inserts,updates,deletes,schemaops FROM eval SELECT inserts,updates,deletes,schemaops FROM
cluster.binlog_index WHERE epoch > $the_epoch AND epoch < $the_epoch2; cluster.binlog_index WHERE epoch > $the_epoch AND epoch <= $the_epoch2;
drop table t1;
# flush on server2 # now see that we have the events on the other server
connection server2; connection server2;
SHOW TABLES; # doing drop table will ensure that all the events have been received
drop table t1;
# verify thar we have table and data in binlog
--source include/show_binlog_events.inc
--replace_result $the_epoch <the_epoch> $the_epoch2 <the_epoch2> --replace_result $the_epoch <the_epoch> $the_epoch2 <the_epoch2>
eval SELECT inserts,updates,deletes,schemaops FROM eval SELECT inserts,updates,deletes,schemaops FROM
cluster.binlog_index WHERE epoch > $the_epoch AND epoch < $the_epoch2; cluster.binlog_index WHERE epoch > $the_epoch AND epoch <= $the_epoch2;
# reset
connection server1;
...@@ -3224,7 +3224,7 @@ pthread_handler_t ndb_binlog_thread_func(void *arg) ...@@ -3224,7 +3224,7 @@ pthread_handler_t ndb_binlog_thread_func(void *arg)
if (trans.good()) if (trans.good())
{ {
DBUG_ASSERT(row.n_inserts || row.n_updates || row.n_deletes); //DBUG_ASSERT(row.n_inserts || row.n_updates || row.n_deletes);
injector::transaction::binlog_pos start= trans.start_pos(); injector::transaction::binlog_pos start= trans.start_pos();
if (int r= trans.commit()) if (int r= trans.commit())
{ {
...@@ -3240,7 +3240,6 @@ pthread_handler_t ndb_binlog_thread_func(void *arg) ...@@ -3240,7 +3240,6 @@ pthread_handler_t ndb_binlog_thread_func(void *arg)
DBUG_PRINT("info", ("COMMIT gci: %lld", gci)); DBUG_PRINT("info", ("COMMIT gci: %lld", gci));
if (ndb_update_binlog_index) if (ndb_update_binlog_index)
ndb_add_binlog_index(thd, &row); ndb_add_binlog_index(thd, &row);
ndb_latest_applied_binlog_epoch= gci;
} }
ndb_latest_handled_binlog_epoch= gci; ndb_latest_handled_binlog_epoch= gci;
#ifdef RUN_NDB_BINLOG_TIMER #ifdef RUN_NDB_BINLOG_TIMER
......
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