On 2008-03-29 Sat 12:37 +0300,Serge Kozlov wrote:
> He Zhenxing wrote:
> > on 2008-02-28 Thu 13:05 +0300,Serge Kozlov wrote:
> >> He Zhenxing wrote:
> >>> Hi Serge
> >>>
> >>> On 2008-02-27 Wed 13:09 +0300,Serge Kozlov wrote:
> >>>> Hello.
> >>>>
> >>>> See comments below and please send me your final conclusion
> (approved
> >>>> with suggested changes, not approved)
> >>>>
> >>> approved with suggested changes
> >>>
> >>>> He Zhenxing wrote:
> >>>>> Hi Serge
> >>>>>
> >>>>> Thank you for your work, please read comments below.
> >>>>>
> >>>>> On 2008-02-24 Sun 02:10 +0300,Serge Kozlov wrote:
> >>>>>> Hi, Magnus and Zhenxing
> >>>>>>
> >>>>>> Could you review patch for WL#4091 (based in LLD, part 4)
> removing sleeps?
> >>>>> What is LLD? I'd like to have a look at it.
> >>>> skozlov: LLD - Low Level Design :) of WL.
> >>>>
> >>> thanks!
> >>>
> >>>>>> Thanks!
> >>>>>>
> >>>>>>
> >>>>>> # This is a BitKeeper generated diff -Nru style patch.
> >>>>>> #
> >>>>>> # ChangeSet
> >>>>>> # 2008/02/24 01:20:11+03:00 skozlov@stripped
> >>>>>> # WL#4091, LLD/4, removing sleeps
> >>>>>> #
> >>>>>> # mysql-test/include/wait_for_binlog_event.inc
> >>>>>> # 2008/02/24 01:20:01+03:00 skozlov@stripped +35 -0
> >>>>>> # new primitive: waiting for a event in SHOW BINLOG EVENTS
> output
> >>>>>> #
> >>>>>> # mysql-test/include/wait_for_binlog_event.inc
> >>>>>> # 2008/02/24 01:20:01+03:00 skozlov@stripped +0 -0
> >>>>>> #
> >>>>>> # mysql-test/suite/rpl/r/rpl_flushlog_loop.result
> >>>>>> # 2008/02/24 01:19:58+03:00 skozlov@stripped +3 -3
> >>>>>> # updated result file
> >>>>>> #
> >>>>>> # mysql-test/suite/rpl/r/rpl_row_view01.result
> >>>>>> # 2008/02/24 01:19:59+03:00 skozlov@stripped +3 -0
> >>>>>> # updated result file
> >>>>>> #
> >>>>>> # mysql-test/suite/rpl/t/rpl_change_master.test
> >>>>>> # 2008/02/24 01:19:59+03:00 skozlov@stripped +3 -1
> >>>>>> # replacing sleep
> >>>>>> #
> >>>>>> # mysql-test/suite/rpl/t/rpl_drop_temp.test
> >>>>>> # 2008/02/24 01:19:59+03:00 skozlov@stripped +9 -3
> >>>>>> # replacing sleep
> >>>>>> #
> >>>>>> # mysql-test/suite/rpl/t/rpl_flushlog_loop.test
> >>>>>> # 2008/02/24 01:20:00+03:00 skozlov@stripped +22 -3
> >>>>>> # replacing sleep
> >>>>>> #
> >>>>>> # mysql-test/suite/rpl/t/rpl_relayspace.test
> >>>>>> # 2008/02/24 01:20:00+03:00 skozlov@stripped +5 -16
> >>>>>> # use external source for waiting of a query
> >>>>>> #
> >>>>>> # mysql-test/suite/rpl/t/rpl_row_view01.test
> >>>>>> # 2008/02/24 01:20:00+03:00 skozlov@stripped +12 -4
> >>>>>> # replacing sleep
> >>>>>> #
> >>>>>> # mysql-test/suite/rpl/t/rpl_trunc_temp.test
> >>>>>> # 2008/02/24 01:20:00+03:00 skozlov@stripped +6 -1
> >>>>>> # replacing sleep
> >>>>>> #
> >>>>>> diff -Nru a/mysql-test/include/wait_for_binlog_event.inc
> >>>>>> b/mysql-test/include/wait_for_binlog_event.inc
> >>>>>> --- /dev/null Wed Dec 31 16:00:00 196900
> >>>>>> +++
> b/mysql-test/include/wait_for_binlog_event.inc 2008-02-24 01:44:04
> >>>>>> +03:00
> >>>>>> @@ -0,0 +1,35 @@
> >>>>>> +# include/wait_for_binlog_event.inc
> >>>>>> +#
> >>>>>> +# SUMMARY
> >>>>>> +#
> >>>>>> +# Waits until SHOW BINLOG EVENTS has returned in last
> event a
> >>>>>> specified substring.
> >>>>>> +#
> >>>>>> +# USAGE
> >>>>>> +#
> >>>>>> +# let $wait_binlog_event= DROP;
> >>>>>> +# --source include/wait_for_binlog_event.inc
> >>>>>> +
> >>>>>> +let $binlog_event_counter= 300;
> >>>>>> +
> >>>>>> +let $binlog_event_last= ;
> >>>>>> +
> >>>>>> +while (`SELECT
> INSTR("$binlog_event_last","$wait_binlog_event") = 0`)
> >>>>>> +{
> >>>>>> + dec $binlog_event_counter;
> >>>>>> + if (!$binlog_event_counter)
> >>>>>> + {
> >>>>>> + --echo ERROR: failed while waiting for $binlog_event in
> binlog
> >>>>>> + SHOW BINLOG EVENTS;
> >>>>>> + exit;
> >>>>>> + }
> >>>>>> + sleep 0.1;
> >>>>>> + let $binlog_int_counter= 1;
> >>>>>> + let $binlog_int_event= query_get_value(SHOW BINLOG
> EVENTS, Info,
> >>>>>> $binlog_int_counter);
> >>>>>> + let $binlog_event_last= $binlog_int_event;
> >>>>>> + while (`SELECT "$binlog_int_event" != "No such row"`)
> >>>>>> + {
> >>>>>> + inc $binlog_int_counter;
> >>>>>> + let $binlog_event_last= $binlog_int_event;
> >>>>>> + let $binlog_int_event= query_get_value(SHOW BINLOG
> EVENTS, Info,
> >>>>>> $binlog_int_counter);
> >>>>>> + }
> >>>>>> +}
> >>>>> I like this idea, but I have some comments on the
> implimentation.
> >>>>>
> >>>>> I think we should use `real_sleep' here, `sleep' can be
> affected
> >>>>> by --sleep option of mysqltest.
> >>>>>
> >>>>> The `sleep' will at least be run once, even if the event we are
> >>>>> waiting for has already been there. I think unnecessary delay
> >>>>> should be prevented.
> >>>>>
> >>>>> Whenever we restart the outer while loop, we start searching
> from
> >>>>> the beginning of all the binlog events. this is not necessary,
> we
> >>>>> should start from where we stopped in the previous loop.
> >>>> skozlov: OK
> >>>>
> >>>>> `exit' will end the test normally, use `die' instead.
> >>>> skozlov: Agree, Magnus said same :)
> >>>>
> >>>>> I would suggest renaming following internal variables:
> >>>>> `binlog_event_counter' -> `_loop_count'
> >>>>> `binlog_int_counter' -> `_event_pos'
> >>>>> `binlog_int_event' -> `_event'
> >>>>> `binlog_last_event' -> `_last_event'
> >>>> OK.
> >>>>
> >>>>>> diff -Nru a/mysql-test/suite/rpl/r/rpl_flushlog_loop.result
>
> >>>>>> b/mysql-test/suite/rpl/r/rpl_flushlog_loop.result
> >>>>>> ---
> a/mysql-test/suite/rpl/r/rpl_flushlog_loop.result 2008-02-24
> >>>>>> 01:44:04 +03:00
> >>>>>> +++
> b/mysql-test/suite/rpl/r/rpl_flushlog_loop.result 2008-02-24
> >>>>>> 01:44:04 +03:00
> >>>>>> @@ -23,7 +23,7 @@
> >>>>>> let $result_pattern=
> >>>>>>
> '%127.0.0.1%root%slave-bin.000001%slave-bin.000001%Yes%Yes%0%0%None%' ;
> >>>>>>
> >>>>>> --source include/wait_slave_status.inc
> >>>>>> -flush logs;
> >>>>>> +FLUSH LOGS;
> >>>>>> SHOW SLAVE STATUS;
> >>>>>> Slave_IO_State #
> >>>>>> Master_Host 127.0.0.1
> >>>>>> @@ -31,7 +31,7 @@
> >>>>>> Master_Port SLAVE_PORT
> >>>>>> Connect_Retry 60
> >>>>>> Master_Log_File slave-bin.000001
> >>>>>> -Read_Master_Log_Pos 216
> >>>>>> +Read_Master_Log_Pos POSITION
> >>>>>> Relay_Log_File #
> >>>>>> Relay_Log_Pos #
> >>>>>> Relay_Master_Log_File slave-bin.000001
> >>>>>> @@ -46,7 +46,7 @@
> >>>>>> Last_Errno 0
> >>>>>> Last_Error
> >>>>>> Skip_Counter 0
> >>>>>> -Exec_Master_Log_Pos 216
> >>>>>> +Exec_Master_Log_Pos POSITION
> >>>>>> Relay_Log_Space #
> >>>>>> Until_Condition None
> >>>>>> Until_Log_File
> >>>>>> diff -Nru a/mysql-test/suite/rpl/r/rpl_row_view01.result
> >>>>>> b/mysql-test/suite/rpl/r/rpl_row_view01.result
> >>>>>> ---
> a/mysql-test/suite/rpl/r/rpl_row_view01.result 2008-02-24 01:44:04
> >>>>>> +03:00
> >>>>>> +++
> b/mysql-test/suite/rpl/r/rpl_row_view01.result 2008-02-24 01:44:04
> >>>>>> +03:00
> >>>>>> @@ -13,6 +13,7 @@
> >>>>>> DROP TABLE IF EXISTS mysqltest1.t1;
> >>>>>> DROP TABLE IF EXISTS mysqltest1.t2;
> >>>>>> DROP TABLE IF EXISTS mysqltest1.t4;
> >>>>>> +DROP TABLE IF EXISTS mysqltest1.t10;
> >>>>>> CREATE TABLE mysqltest1.t1 (a INT, c CHAR(6),PRIMARY
> KEY(a));
> >>>>>> CREATE TABLE mysqltest1.t2 (a INT, c CHAR(6),PRIMARY
> KEY(a));
> >>>>>> CREATE TABLE mysqltest1.t3 (a INT, c CHAR(6), c2 CHAR(6),
> PRIMARY KEY(a));
> >>>>>> @@ -35,6 +36,7 @@
> >>>>>> 1 Thank GOD
> >>>>>> 2 it is
> >>>>>> 3 Friday TGIF
> >>>>>> +CREATE TABLE mysqltest1.t10 (a INT, PRIMARY KEY(a));
> >>>>>> SELECT * FROM mysqltest1.v2;
> >>>>>> qty price value
> >>>>>> 3 50 150
> >>>>>> @@ -98,4 +100,5 @@
> >>>>>> DROP TABLE IF EXISTS mysqltest1.t1;
> >>>>>> DROP TABLE IF EXISTS mysqltest1.t2;
> >>>>>> DROP TABLE IF EXISTS mysqltest1.t4;
> >>>>>> +DROP TABLE IF EXISTS mysqltest1.t10;
> >>>>>> DROP DATABASE mysqltest1;
> >>>>>> diff -Nru a/mysql-test/suite/rpl/t/rpl_change_master.test
> >>>>>> b/mysql-test/suite/rpl/t/rpl_change_master.test
> >>>>>> ---
> a/mysql-test/suite/rpl/t/rpl_change_master.test 2008-02-24 01:44:04
> >>>>>> +03:00
> >>>>>> +++
> b/mysql-test/suite/rpl/t/rpl_change_master.test 2008-02-24 01:44:04
> >>>>>> +03:00
> >>>>>> @@ -15,8 +15,10 @@
> >>>>>> insert into t1 values(1);
> >>>>>> insert into t1 values(2);
> >>>>>> save_master_pos;
> >>>>>> +let $slave_param= Read_Master_Log_Pos;
> >>>>>> +let $slave_param_value= query_get_value(SHOW MASTER STATUS,
> Position, 1);
> >>>>>> connection slave;
> >>>>>> ---real_sleep 3 # wait for I/O thread to have read updates
> >>>>>> +source include/wait_for_slave_param.inc;
> >>>>> Very cool! I think this idea can also be used for waiting for a
> given
> >>>>> statement to be executed by the slave.
> >>>>>
> >>>>>> stop slave;
> >>>>>> source include/show_slave_status2.inc;
> >>>>>> change master to master_user='root';
> >>>>>> diff -Nru a/mysql-test/suite/rpl/t/rpl_drop_temp.test
> >>>>>> b/mysql-test/suite/rpl/t/rpl_drop_temp.test
> >>>>>> --- a/mysql-test/suite/rpl/t/rpl_drop_temp.test 2008-02-24
> 01:44:04 +03:00
> >>>>>> +++ b/mysql-test/suite/rpl/t/rpl_drop_temp.test 2008-02-24
> 01:44:04 +03:00
> >>>>>> @@ -6,19 +6,25 @@
> >>>>>> # to work around NDB's issue with temp tables
> >>>>>> ##############################################
> >>>>>> source include/master-slave.inc;
> >>>>>> +source include/have_binlog_format_mixed_or_statement.inc;
> >>>>>> +
> >>>>>> --disable_warnings
> >>>>>> create database if not exists mysqltest;
> >>>>>> --enable_warnings
> >>>>>>
> >>>>>> create temporary table mysqltest.t1 (n int)ENGINE=MyISAM;
> >>>>>> create temporary table mysqltest.t2 (n int)ENGINE=MyISAM;
> >>>>>> -sync_slave_with_master;
> >>>>>> +
> >>>>>> connection master;
> >>>>>> disconnect master;
> >>>>>> +
> >>>>>> +connection master1;
> >>>>>> +# Wait until drop of temp tables appears in binlog
> >>>>>> +let $wait_binlog_event= DROP;
> >>>>>> +source include/wait_for_binlog_event.inc;
> >>>>>> +
> >>>>> I think this only make sure that the DROP statement has been
> written
> >>>>> into master's binlog, should add a `sync_slave_with_master' to
> make sure
> >>>>> it has been replicated to the slave, otherwise there is a very
> slight
> >>>>> chance that the test will fail because the DROP statement has
> not been
> >>>>> replicated yet.
> >>>> No, you're not right :). In this case we cannot sync slave with
> master
> >>>> because connection lost. We cannot sync via connection to master1
> >>>> because it doesn't have this event. We can wait this event only. All
>
> >>>> these test cases were not fixed as others because have sleep for
> special
> >>>> non-standard cases.
> >>>>
> >>> I doubt it :) connection master and connection master1 are connected to
> >>> the same server, you can check this in include/master-slave.inc, so how
> >>> could connection master1 doesn't have this event? I have test the
> >>> following:
> >>>
> >> We are using there temp tables. The property of temp tables is working
> >> inside a session (they are visible inside session only). If you close
> >> session to master then all temp tables (associated to that session)
> >> should be dropped. Another session to master has no access to this
> >> tables. Main purpose of the test case is checking that master sends
> >> DROP TEMP TABLE to slave. We can't control that event. But we can wait
> >> it in binlog on master, sync slave with master and make sure that all
> >> temp tables on slave closed too.
> >>
> >
> > The temp tables are only visible inside the session in which is created,
> > but the DROP statement that drops the temp tables are visible to all
> > sessions, and in fact you used connection master1 to wait for the DROP
> > statement to appear, this means the DROP event is visible to all
> > sessions or connections.
>
> Yes, but you can't force DROP event via sync trough master1 because
> master1 session doesn't know about temp tables on master session:).
> As result of sync slave with master1 that temp tables still open on slave.
> But sync *after* appear DROP in binlog in master1 session can be used.
>
Yes, that is what I mean, *after* the DROP event appeared, use
sync_slave_with_master to make sure the DROP event is replicated to the
slave.
> >
> >>
> >>> ------------------- rpl_tmp.test ------------------------------
> >>> source include/master-slave.inc;
> >>>
> >>> create table t1 (a int);
> >>>
> >>> insert into t1 values (1);
> >>> insert into t1 values (2);
> >>> insert into t1 values (3);
> >>>
> >>> query_vertical show master status;
> >>>
> >>> disconnect master;
> >>> connection master1;
> >>>
> >>> query_vertical show master status;
> >>> sync_slave_with_master;
> >>>
> >>> select * from t1;
> >>> -----------------------------------------------------------
> >>>
> >>> and this is the result
> >>>
> >>> ----------------------- rpl_tmp.result --------------------
> >>> stop slave;
> >>> drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
> >>> reset master;
> >>> reset slave;
> >>> drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
> >>> start slave;
> >>> create table t1 (a int);
> >>> insert into t1 values (1);
> >>> insert into t1 values (2);
> >>> insert into t1 values (3);
> >>> show master status;
> >>> File master-bin.000001
> >>> Position 456
> >>> Binlog_Do_DB
> >>> Binlog_Ignore_DB
> >>> show master status;
> >>> File master-bin.000001
> >>> Position 456
> >>> Binlog_Do_DB
> >>> Binlog_Ignore_DB
> >>> select * from t1;
> >>> a
> >>> 1
> >>> 2
> >>> 3
> >>> ----------------------------------------------------------
> >>>
> >>> I see no problem, do I miss something here?
> >>>
> >>>>>> connection slave;
> >>>>>> ---real_sleep 3 # time for DROP to be written
> >>>>>> show status like 'Slave_open_temp_tables';
> >>>>>> -
> >>>>>> # Cleanup
> >>>>>> connection default;
> >>>>>> drop database mysqltest;
> >>>>>> diff -Nru a/mysql-test/suite/rpl/t/rpl_flushlog_loop.test
> >>>>>> b/mysql-test/suite/rpl/t/rpl_flushlog_loop.test
> >>>>>> ---
> a/mysql-test/suite/rpl/t/rpl_flushlog_loop.test 2008-02-24 01:44:04
> >>>>>> +03:00
> >>>>>> +++
> b/mysql-test/suite/rpl/t/rpl_flushlog_loop.test 2008-02-24 01:44:04
> >>>>>> +03:00
> >>>>>> @@ -35,12 +35,31 @@
> >>>>>> #
> >>>>>> # Flush logs of slave
> >>>>>> #
> >>>>>> -flush logs;
> >>>>>> -sleep 5;
> >>>>>> +# Create full loop by following way:
> >>>>>> +# 1. Insert into t1 on master (1st).
> >>>>>> +# 2. Insert into t1 on slave (2nd) when the event (1st) for
> t1 replicated.
> >>>>>> +# 3. Master waits until the event (2nd) for t1 will be
> replicated.
> >>>>>> +
> >>>>>> +--disable_query_log
> >>>>>> +CREATE TABLE t1 (a INT KEY) ENGINE= MyISAM;
> >>>>>> +INSERT INTO t1 VALUE(1);
> >>>>>> +--enable_query_log
> >>>>>> +FLUSH LOGS;
> >>>>>> +connection slave;
> >>>>>> +let $wait_condition= SELECT COUNT(*) = 1 FROM t1;
> >>>>>> +-- source include/wait_condition.inc
> >>>>>> +--disable_query_log
> >>>>>> +INSERT INTO t1 VALUE(2);
> >>>>>> +--enable_query_log
> >>>>>> +connection master;
> >>>>>> +let $wait_condition= SELECT COUNT(*) = 2 FROM t1;
> >>>>>> +-- source include/wait_condition.inc
> >>>>>> +--enable_query_log
> >>>>>>
> >>>>>> #
> >>>>>> # Show status of slave
> >>>>>> #
> >>>>>> ---replace_result $SLAVE_MYPORT SLAVE_PORT
> >>>>>> +let $pos= query_get_value(SHOW SLAVE STATUS,
> Read_Master_Log_Pos, 1);
> >>>>>> +--replace_result $SLAVE_MYPORT SLAVE_PORT $pos POSITION
> >>>>>> --replace_column 1 # 8 # 9 # 16 # 23 # 33 # 34 # 35 #
> >>>>>> --query_vertical SHOW SLAVE STATUS
> >>>>>> diff -Nru a/mysql-test/suite/rpl/t/rpl_relayspace.test
> >>>>>> b/mysql-test/suite/rpl/t/rpl_relayspace.test
> >>>>>> --- a/mysql-test/suite/rpl/t/rpl_relayspace.test 2008-02-24
> 01:44:04 +03:00
> >>>>>> +++ b/mysql-test/suite/rpl/t/rpl_relayspace.test 2008-02-24
> 01:44:04 +03:00
> >>>>>> @@ -14,23 +14,12 @@
> >>>>>> reset slave;
> >>>>>> start slave io_thread;
> >>>>>> # Give the I/O thread time to block.
> >>>>>> -let $run= 1;
> >>>>>> -let $counter= 300;
> >>>>>> -while ($run)
> >>>>>> -{
> >>>>>> - let $io_state= query_get_value("SHOW SLAVE STATUS",
> Slave_IO_State, 1);
> >>>>>> - if (`SELECT '$io_state' = 'Waiting for the slave SQL
> thread to free
> >>>>>> enough relay log space'`){
> >>>>>> - let $run= 0;
> >>>>>> - }
> >>>>>> - sleep 0.1;
> >>>>>> - if (!$counter){
> >>>>>> - --echo "Failed while waiting for slave IO thread block"
> >>>>>> - SHOW SLAVE STATUS;
> >>>>>> - exit;
> >>>>>> - }
> >>>>>> - dec $counter;
> >>>>>> +let $io_state= query_get_value(SHOW SLAVE STATUS,
> Slave_IO_State, 1);
> >>>>>> +if (`SELECT '$io_state' != 'Waiting for master to send
> event'`) {
> >>>>>> + let $slave_param= Slave_IO_State;
> >>>>>> + let $slave_param_value= Waiting for the slave SQL thread
> to free
> >>>>>> enough relay log space;
> >>>>>> + source include/wait_for_slave_param.inc;
> >>>>>> }
> >>>>> I don't quit understand why you first check if the state is not
> "Waiting
> >>>>> for master to send event". Could you please explain this?
> >>>> Sometimes status of slave changes very fast. 'Waiting for master to
> send
> >>>> event' status appears *after* 'Waiting for the slave SQL thread to
> free
> >>>> enough relay log space'
> >>>>
> >>> If my understanding is correct, I think for this case, the SQL thread
> >>> will enter a dead lock at the status "Waiting ... relay log space", so
> I
> >>> think there is not a possibility that the status will be changed to
> >>> "Waiting for master to send event" *after* "Waiting ... relay log
> >>> space". On contray I think, the only possibility that we can get
> >>> "Waiting for master to send event" status is because the IO thread just
> >>> started, and the first event has not been sent to the slave yet, so the
> >>> "Waiting for master to send event" can only appear *before* "Waiting
> ...
> >>> relay log space".
> >>>
> >
> > What's you opion about the above comment?
> >
> >>>>>> -sleep 2;
> >>>>>> # A bug caused the I/O thread to refuse stopping.
> >>>>>> stop slave io_thread;
> >>>>>> reset slave;
> >>>>>> diff -Nru a/mysql-test/suite/rpl/t/rpl_row_view01.test
> >>>>>> b/mysql-test/suite/rpl/t/rpl_row_view01.test
> >>>>>> --- a/mysql-test/suite/rpl/t/rpl_row_view01.test 2008-02-24
> 01:44:04 +03:00
> >>>>>> +++ b/mysql-test/suite/rpl/t/rpl_row_view01.test 2008-02-24
> 01:44:04 +03:00
> >>>>>> @@ -23,6 +23,7 @@
> >>>>>> DROP TABLE IF EXISTS mysqltest1.t1;
> >>>>>> DROP TABLE IF EXISTS mysqltest1.t2;
> >>>>>> DROP TABLE IF EXISTS mysqltest1.t4;
> >>>>>> +DROP TABLE IF EXISTS mysqltest1.t10;
> >>>>>>
> >>>>>> # Begin test section 1
> >>>>>> CREATE TABLE mysqltest1.t1 (a INT, c CHAR(6),PRIMARY
> KEY(a));
> >>>>>> @@ -43,12 +44,18 @@
> >>>>>>
> >>>>>> SELECT * FROM mysqltest1.v2;
> >>>>>> SELECT * FROM mysqltest1.v1;
> >>>>>> -# Had to add a sleep for use with NDB
> >>>>>> +
> >>>>>> +
> >>>>>> +# Had to add a waiting for use with NDB
> >>>>>> # engine. Injector thread would have not
> >>>>>> -# populated biblog and data would not be on
> >>>>>> +# populated binlog and data would not be on
> >>>>>> # the slave.
> >>>>>> -sleep 10;
> >>>>>> -sync_slave_with_master;
> >>>>>> +
> >>>>>> +CREATE TABLE mysqltest1.t10 (a INT, PRIMARY KEY(a));
> >>>>>> +let $wait_binlog_event= CREATE TABLE mysqltest1.t10;
> >>>>>> +-- source include/wait_for_binlog_event.inc
> >>>>>> +--sync_master_with_slave
> >>>>> must be a typo of `sync_slave_with_master'
> >>>> skozlov: of course :)
> >>>>>> +
> >>>>>> SELECT * FROM mysqltest1.v2;
> >>>>>> SELECT * FROM mysqltest1.v1;
> >>>>>> connection master;
> >>>>>> @@ -82,6 +89,7 @@
> >>>>>> DROP TABLE IF EXISTS mysqltest1.t1;
> >>>>>> DROP TABLE IF EXISTS mysqltest1.t2;
> >>>>>> DROP TABLE IF EXISTS mysqltest1.t4;
> >>>>>> +DROP TABLE IF EXISTS mysqltest1.t10;
> >>>>>> DROP DATABASE mysqltest1;
> >>>>>> sync_slave_with_master;
> >>>>>>
> >>>>>> diff -Nru a/mysql-test/suite/rpl/t/rpl_trunc_temp.test
> >>>>>> b/mysql-test/suite/rpl/t/rpl_trunc_temp.test
> >>>>>> --- a/mysql-test/suite/rpl/t/rpl_trunc_temp.test 2008-02-24
> 01:44:04 +03:00
> >>>>>> +++ b/mysql-test/suite/rpl/t/rpl_trunc_temp.test 2008-02-24
> 01:44:04 +03:00
> >>>>>> @@ -27,7 +27,12 @@
> >>>>>>
> >>>>>> # Disconnect the master, temp table on slave should
> dissapear
> >>>>>> disconnect master;
> >>>>>> ---real_sleep 3 # time for DROP to be read by slave
> >>>>>> +
> >>>>>> +connection master1;
> >>>>>> +# Wait until drop of temp tables appers in binlog
> >>>>>> +let $wait_binlog_event= DROP;
> >>>>>> +source include/wait_for_binlog_event.inc;
> >>>>>> +
> >>>>>> connection slave;
> >>>>>> show status like 'Slave_open_temp_tables';
> >>>>>>
> >>>>>>
> >>>
> >>
> >
> >
>
>