diff options
author | unknown <sasha@mysql.sashanet.com> | 2001-07-18 14:26:43 -0600 |
---|---|---|
committer | unknown <sasha@mysql.sashanet.com> | 2001-07-18 14:26:43 -0600 |
commit | 76eaa2595f785d2664bc0165cf8431c79ed92659 (patch) | |
tree | 8d1f8589119cc419e23bbb513081d4be35e4aa42 /mysql-test/t/rpl_mystery22.test | |
parent | 2cbf3b9b532e048dbe3d42669bff539c5864236e (diff) | |
download | mariadb-git-76eaa2595f785d2664bc0165cf8431c79ed92659.tar.gz |
fixed mysterious offset confusion bug
added a test case for it - took some creative work to figure out
how to make it happen at will
updated the manual
Docs/manual.texi:
fixed wrong info on SLAVE_SKIP_COUNTER
fixed wrong info in BitKeeper tree build instructions
updated change history about bug fix
mysql-test/t/rpl_sporadic_master.test:
tried hard to get slave confused, but failed. nevertheless, a more
exhaustive test case does not hurt
sql/slave.cc:
fixed mysterious offset confusion bug
Diffstat (limited to 'mysql-test/t/rpl_mystery22.test')
-rw-r--r-- | mysql-test/t/rpl_mystery22.test | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/mysql-test/t/rpl_mystery22.test b/mysql-test/t/rpl_mystery22.test new file mode 100644 index 00000000000..3a48ef84dc1 --- /dev/null +++ b/mysql-test/t/rpl_mystery22.test @@ -0,0 +1,43 @@ +# test case to make slave thread get ahead by 22 bytes + +source include/master-slave.inc; +connection master; +# first, cause a duplicate key problem on the slave +create table t1(n int auto_increment primary key); +save_master_pos; +connection slave; +sync_with_master; +insert into t1 values (2); +connection master; +insert into t1 values(NULL); +insert into t1 values(NULL); +save_master_pos; +connection slave; +sleep 1; # there is no way around this sleep - we have to wait until +# the slave tries to run the query, fails and aborts slave thread +delete from t1 where n = 2; +slave start; +sync_with_master; +#now the buggy slave would be confused on the offset but it can replicate +#in order to make it break, we need to stop/start the slave one more time +slave stop; +connection master; +# to be able to really confuse the slave, we need some non-auto-increment +# events in the log +create table t2(n int); +drop table t2; +insert into t1 values(NULL); +save_master_pos; +connection slave; +slave start; +#now the truth comes out - if the slave is buggy, it will never sync because +#the slave thread is not able to read events +sync_with_master; +select * from t1; +#clean up +connection master; +drop table t1; +save_master_pos; +connection slave; +sync_with_master; + |