List:Commits« Previous MessageNext Message »
From:Libing Song Date:April 30 2010 3:49am
Subject:Re: bzr commit into mysql-5.1-rep+2 branch (Li-Bing.Song:3185)
Bug#48084
View as plain text  
On Thu, 2010-04-29 at 11:50 +0100, Luís Soares wrote:
> Hi Li-Bing,
> 
>   Nice Work. 
>   Please find my review comments below.
> 
> Regards,
> Luís
> 
> 
> STATUS
> ------
>  
>   Not approved.
>  
>   NOTE1: If others devs disagree with my point I may concede, but
>          for now I would like to hear your and Dao-Gang's opinion.
> 
>   NOTE2: Copying Zhenxing, as we have already discussed this on 
>          IRC.
> 
> REQUIRED CHANGES
> ----------------
> 
>   RC1. Hmm... I don't really like the approach of logging only
>        the drop if exists with the error code. Why? Because:
> 
>          1. If the slave stops, because expected error did no
>             occur, it will have dropped the database, whereas the
>             master will have not.
> 
>          2. If the DBA fixes the master and then issues DROP
>             DATABASE `DB` and the slave does not have `DB`
>             already, then the slaves will stop.
> 
>        Both #1 and #2 happen because there is an inconsistency
>        when the DROP DATABASE IF EXISTS fails. Why not keep the
>        current behavior of logging the implicit DROP TABLE `t`
>        with the additional clause `IF EXISTS` if this clause was
>        issued on the DROP DATABASE?
1. We have a policy on the statements which fails with some data
changes. It's that we should binlogged the statements with it's error
number.
2. I think it is strange to binlog 'DROT TABLE', because I expect a
   'DROP DATABASE' to binlog if I am a use.

> 
> REQUESTS
> --------
>  n/a
> 
> SUGGESTIONS
> -----------
>  n/a
> 
> DETAILS 
> -------
>  n/a
> 
> On Thu, 2010-04-29 at 05:09 +0000, Li-Bing.Song@stripped wrote:
> > #At file:///home/anders/work/bzrwork/worktree3/mysql-5.1-rep%2B2/ based on
> revid:li-bing.song@stripped
> > 
> >  3185 Li-Bing.Song@stripped	2010-04-29
> >       Bug #48084 slave breaks if 'drop database' fails on master and mismatched
> tables on slave
> >       
> >       'DROP TABLE <deleted tables>' was binlogged when 'DROP DATABASE'
> failed 
> >       and at least one table was deleted from the database. The log event would
> >       lead slave SQL thread stop if some of the tables did not exist on slave.
> >       
> >       After this patch, 'DROP DATABASE ..' statement will be binlogged with the
> error number
> >       when 'DROP DATABASE ...' statement fails and at least one table is
> deleted.
> > 
> >     modified:
> >       mysql-test/suite/rpl/r/rpl_drop_db.result
> >       mysql-test/suite/rpl/t/rpl_drop_db.test
> >       sql/sql_db.cc
> > === modified file 'mysql-test/suite/rpl/r/rpl_drop_db.result'
> > --- a/mysql-test/suite/rpl/r/rpl_drop_db.result	2008-11-13 19:19:00 +0000
> > +++ b/mysql-test/suite/rpl/r/rpl_drop_db.result	2010-04-29 05:09:29 +0000
> > @@ -1,37 +1,59 @@
> > +# 'DROP DATABASE ...' should be binlogged with error number
> > +# if 'DROP DATABASE ..' statement fails and at least one table
> > +# is dropped.
> > +# ------------------------------------------------------------
> >  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;
> > -drop database if exists mysqltest1;
> > -create database mysqltest1;
> > -create table mysqltest1.t1 (n int);
> > -insert into mysqltest1.t1 values (1);
> > -select * from mysqltest1.t1 into outfile 'mysqltest1/f1.txt';
> > -create table mysqltest1.t2 (n int);
> > -create table mysqltest1.t3 (n int);
> > -drop database mysqltest1;
> > -ERROR HY000: Error dropping database (can't rmdir './mysqltest1/', errno: 17)
> > -use mysqltest1;
> > -show tables;
> > -Tables_in_mysqltest1
> > -drop database mysqltest1;
> > -ERROR HY000: Error dropping database (can't rmdir './mysqltest1/', errno: 17)
> > -use mysqltest1;
> > -show tables;
> > -Tables_in_mysqltest1
> > -use test;
> > -create table t1 (n int);
> > -insert into t1 values (1234);
> > -use mysqltest1;
> > -show tables;
> > -Tables_in_mysqltest1
> > -use test;
> > -select * from t1;
> > -n
> > -1234
> > -use test;
> > -drop table t1;
> > -drop database mysqltest1;
> > -include/stop_slave.inc
> > +# [ On Master ]
> > +DROP DATABASE IF EXISTS testing_1;
> > +CREATE DATABASE testing_1;
> > +USE testing_1;
> > +# Create a file in the database directory
> > +SELECT 'hello' INTO OUTFILE 'fake_file.FAKE_FILE';
> > +
> > +# 'DROP DATABASE' will fail if there is any other file in the the
> > +# database directory.
> > +DROP DATABASE testing_1;
> > +ERROR HY000: Error dropping database (can't rmdir './testing_1/', errno: 17)
> > +# It should not be binlogged, as no table is dropt.
> > +show binlog events from <binlog_start>;
> > +Log_name	Pos	Event_type	Server_id	End_log_pos	Info
> > +USE testing_1;
> > +CREATE TABLE t1(c1 INT);
> > +CREATE TABLE t2(c1 INT);
> > +
> > +# 'DROP DATABASE' will fail if there is any other file in the the
> > +# database directory
> > +DROP DATABASE testing_1;
> > +ERROR HY000: Error dropping database (can't rmdir './testing_1/', errno: 17)
> > +
> > +# [ On Slave ]
> > +# Slave SQL thread will stop, as there is no error happening on slave.
> > +Last_SQL_Error Query caused different errors on master and slave.     Error on
> master: 'Error dropping database (can't rmdir '%-.192s', errno: %d)' (1010), Error on
> slave: 'no error' (0). Default database: 'testing_1'. Query: 'DROP DATABASE testing_1'
> > +# testing_1 has been dropt before slave SQL stopped, since we should 
> > +# create it again.
> > +CREATE DATABASE testing_1;
> > +USE testing_1;
> > +CREATE TABLE t1(c1 INT);
> > +SELECT 'hello' INTO OUTFILE 'fake_file.FAKE_FILE';
> > +START SLAVE SQL_THREAD;
> > +SHOW TABLES;
> > +Tables_in_testing_1
> > +
> > +# Remove the fake file.
> > +
> > +# [ On Master ]
> > +
> > +# Remove the fake file.
> > +# Now we can drop the database.
> > +USE testing_1;
> > +SHOW TABLES;
> > +Tables_in_testing_1
> > +DROP DATABASE testing_1;
> > +show binlog events from <binlog_start>;
> > +Log_name	Pos	Event_type	Server_id	End_log_pos	Info
> > +master-bin.000001	#	Query	#	#	DROP DATABASE testing_1
> > 
> > === modified file 'mysql-test/suite/rpl/t/rpl_drop_db.test'
> > --- a/mysql-test/suite/rpl/t/rpl_drop_db.test	2008-11-13 19:19:00 +0000
> > +++ b/mysql-test/suite/rpl/t/rpl_drop_db.test	2010-04-29 05:09:29 +0000
> > @@ -1,61 +1,81 @@
> > -# test case for BUG#4680 -- if there are extra files in the db directory
> > -# dropping the db on the master causes replication problems
> > -
> > --- source include/master-slave.inc
> > -connection master;
> > +--echo # 'DROP DATABASE ...' should be binlogged with error number
> > +--echo # if 'DROP DATABASE ..' statement fails and at least one table
> > +--echo # is dropped.
> > +--echo # ------------------------------------------------------------
> > +--source include/master-slave.inc
> >  
> > +--echo # [ On Master ]
> >  --disable_warnings
> > -drop database if exists mysqltest1;
> > +DROP DATABASE IF EXISTS testing_1;
> >  --enable_warnings
> > -create database mysqltest1;
> > -create table mysqltest1.t1 (n int);
> > -insert into mysqltest1.t1 values (1);
> > -select * from mysqltest1.t1 into outfile 'mysqltest1/f1.txt';
> > -create table mysqltest1.t2 (n int);
> > -create table mysqltest1.t3 (n int);
> > ---replace_result \\ /
> > +CREATE DATABASE testing_1;
> > +USE testing_1;
> > +let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
> > +
> > +let $prefix= `SELECT UUID()`;
> > +--echo # Create a file in the database directory
> > +--replace_result $prefix FAKE_FILE
> > +eval SELECT 'hello' INTO OUTFILE 'fake_file.$prefix';
> > +--echo
> > +--echo # 'DROP DATABASE' will fail if there is any other file in the the
> > +--echo # database directory.
> >  --error 1010
> > -drop database mysqltest1;
> > -use mysqltest1;
> > -show tables;
> > -
> > -# test the branch of the code that deals with the query buffer overflow
> > -
> > ---disable_query_log
> > -let $1=50;
> > -while ($1)
> > -{
> > -  eval create table mysqltest1.mysqltest_long_table_name$1 (n int);
> > -  dec $1;
> > -}
> > ---enable_query_log
> > -
> > ---replace_result \\ /
> > +DROP DATABASE testing_1;
> > +--echo # It should not be binlogged, as no table is dropt.
> > +source include/show_binlog_events.inc;
> > +
> > +USE testing_1;
> > +CREATE TABLE t1(c1 INT);
> > +CREATE TABLE t2(c1 INT);
> > +--echo
> > +--echo # 'DROP DATABASE' will fail if there is any other file in the the
> > +--echo # database directory
> >  --error 1010
> > -drop database mysqltest1;
> > -use mysqltest1;
> > -show tables;
> > -use test;
> > -create table t1 (n int);
> > -insert into t1 values (1234);
> > -sync_slave_with_master;
> > +DROP DATABASE testing_1;
> > +let $master_log_pos= query_get_value(SHOW MASTER STATUS, Position, 1);
> >  
> > +--echo
> > +--echo # [ On Slave ]
> >  connection slave;
> > -use mysqltest1;
> > -show tables;
> > -use test;
> > -select * from t1;
> >  
> > -#cleanup
> > -connection master;
> > +--echo # Slave SQL thread will stop, as there is no error happening on slave.
> > +source include/wait_for_slave_sql_to_stop.inc;
> >  
> > -# Remove the "extra" file created above
> > -let $MYSQLD_DATADIR= `select @@datadir`;
> > -remove_file $MYSQLD_DATADIR/mysqltest1/f1.txt;
> > -
> > -use test;
> > -drop table t1;
> > -drop database mysqltest1;
> > +let $last_sql_error= query_get_value(SHOW SLAVE STATUS, Last_SQL_Error, 1);
> > +--echo Last_SQL_Error $last_sql_error
> > +
> > +--echo # testing_1 has been dropt before slave SQL stopped, since we should 
> > +--echo # create it again.
> > +CREATE DATABASE testing_1;
> > +USE testing_1;
> > +CREATE TABLE t1(c1 INT);
> > +--replace_result $prefix FAKE_FILE
> > +eval SELECT 'hello' INTO OUTFILE 'fake_file.$prefix';
> > +
> > +START SLAVE SQL_THREAD;
> > +let $slave_param= Exec_Master_Log_Pos;
> > +let $slave_param_value= $master_log_pos;
> > +source include/wait_for_slave_param.inc;
> > +
> > +SHOW TABLES;
> > +
> > +let $MYSQLD_DATADIR= `SELECT @@datadir`;
> > +--echo
> > +--echo # Remove the fake file.
> > +--remove_file $MYSQLD_DATADIR/testing_1/fake_file.$prefix
> > +
> > +--echo
> > +--echo # [ On Master ]
> > +connection master;
> >  
> > -sync_slave_with_master;
> > -source include/stop_slave.inc;
> > +let $MYSQLD_DATADIR= `SELECT @@datadir`;
> > +--echo
> > +--echo # Remove the fake file.
> > +--remove_file $MYSQLD_DATADIR/testing_1/fake_file.$prefix
> > +--echo # Now we can drop the database.
> > +USE testing_1;
> > +SHOW TABLES;
> > +let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1);
> > +DROP DATABASE testing_1;
> > +source include/show_binlog_events.inc;
> > +--source include/master-slave-end.inc
> > 
> > === modified file 'sql/sql_db.cc'
> > --- a/sql/sql_db.cc	2010-02-12 23:30:44 +0000
> > +++ b/sql/sql_db.cc	2010-04-29 05:09:29 +0000
> > @@ -949,7 +949,7 @@ bool mysql_rm_db(THD *thd,char *db,bool 
> >      }
> >      thd->pop_internal_handler();
> >    }
> > -  if (!silent && deleted>=0)
> > +  if (!silent && (deleted >=0 || dropped_tables != NULL))
> >    {
> >      const char *query;
> >      ulong query_length;
> > @@ -985,54 +985,13 @@ bool mysql_rm_db(THD *thd,char *db,bool 
> >          goto exit;
> >        }
> >      }
> > -    thd->clear_error();
> > -    thd->server_status|= SERVER_STATUS_DB_DROPPED;
> > -    my_ok(thd, (ulong) deleted);
> > -    thd->server_status&= ~SERVER_STATUS_DB_DROPPED;
> > -  }
> > -  else if (mysql_bin_log.is_open())
> > -  {
> > -    char *query, *query_pos, *query_end, *query_data_start;
> > -    TABLE_LIST *tbl;
> > -    uint db_len;
> > -
> > -    if (!(query= (char*) thd->alloc(MAX_DROP_TABLE_Q_LEN)))
> > -      goto exit; /* not much else we can do */
> > -    query_pos= query_data_start= strmov(query,"drop table ");
> > -    query_end= query + MAX_DROP_TABLE_Q_LEN;
> > -    db_len= strlen(db);
> >  
> > -    for (tbl= dropped_tables; tbl; tbl= tbl->next_local)
> > +    if (deleted >= 0)
> >      {
> > -      uint tbl_name_len;
> > -
> > -      /* 3 for the quotes and the comma*/
> > -      tbl_name_len= strlen(tbl->table_name) + 3;
> > -      if (query_pos + tbl_name_len + 1 >= query_end)
> > -      {
> > -        /* These DDL methods and logging protected with LOCK_mysql_create_db
> */
> > -        if (write_to_binlog(thd, query, query_pos -1 - query, db, db_len))
> > -        {
> > -          error= -1;
> > -          goto exit;
> > -        }
> > -        query_pos= query_data_start;
> > -      }
> > -
> > -      *query_pos++ = '`';
> > -      query_pos= strmov(query_pos,tbl->table_name);
> > -      *query_pos++ = '`';
> > -      *query_pos++ = ',';
> > -    }
> > -
> > -    if (query_pos != query_data_start)
> > -    {
> > -      /* These DDL methods and logging protected with LOCK_mysql_create_db */
> > -      if (write_to_binlog(thd, query, query_pos -1 - query, db, db_len))
> > -      {
> > -        error= -1;
> > -        goto exit;
> > -      }
> > +      thd->clear_error();
> > +      thd->server_status|= SERVER_STATUS_DB_DROPPED;
> > +      my_ok(thd, (ulong) deleted);
> > +      thd->server_status&= ~SERVER_STATUS_DB_DROPPED;
> >      }
> >    }
> >  
> > 
> > text/bzr-bundle type attachment
> > (bzr/li-bing.song@stripped)
> > # Bazaar merge directive format 2 (Bazaar 0.90)
> > # revision_id: li-bing.song@stripped
> > # target_branch: file:///home/anders/work/bzrwork/worktree3/mysql-5.1-\
> > #   rep%2B2/
> > # testament_sha1: 26a663ce588f4cca68b3e9dea6c50017773df6a5
> > # timestamp: 2010-04-29 13:09:38 +0800
> > # source_branch: file:///home/anders/work/bzrwork/worktree3/mysql-5.1-\
> > #   rep%2B2/
> > # base_revision_id: li-bing.song@stripped\
> > #   3sc1o9xna50htmfv
> > # 
> > # Begin bundle
> > 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
> > CCYRImQVEEYu7ZMfxdyRThQkPRJbawA=
> > 
> > 
> 
> 
> 


-- 
Your Sincerely,
Libing Song
==================================
MySQL Replication Team
Software Engineer


Email : Li-Bing.Song@stripped
Skype : libing.song
MSN   : slb_database@stripped
Phone : +86 010-6505-4020 ext. 319
Mobile: +86 138-1144-2038
==================================

Thread
bzr commit into mysql-5.1-rep+2 branch (Li-Bing.Song:3185) Bug#48084Li-Bing.Song29 Apr
  • Re: bzr commit into mysql-5.1-rep+2 branch (Li-Bing.Song:3185)Bug#48084Luís Soares29 Apr
    • Re: bzr commit into mysql-5.1-rep+2 branch (Li-Bing.Song:3185)Bug#48084Daogang Qu30 Apr
      • Re: bzr commit into mysql-5.1-rep+2 branch (Li-Bing.Song:3185)Bug#48084Libing Song5 May
    • Re: bzr commit into mysql-5.1-rep+2 branch (Li-Bing.Song:3185)Bug#48084Libing Song30 Apr