MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:He Zhenxing Date:March 11 2009 3:51am
Subject:Re: bzr commit into mysql-5.1-bugteam branch (zhou.li:2825) Bug#39858
View as plain text  
Hi Leonard,

Thank you for the work! Patch approved after consider the comments on
the commit messages.

Leonard Zhou wrote:
> #At file:///home/zhl/mysql/rep/5.1/bug39858/
> 
>  2825 Leonard Zhou	2009-03-11
>       BUG#39858 rpl.rpl_rotate (rpl.rpl_rotate_logs) failed on pushbuild: result
> mismatch
>       
>       The method to purge binary log files produces different results in some
> platfroms. 
>       

Change this to something like this:
The old method to calculate the purge time based on table modification
time does not guarantee to work on all platforms (e.g. Windows).

>       Change a new way that sets the time to purge binlog file 1 second after the
> last modify time of master-bin.000002.
>       That can sure that the file must be deleted in any platform.

Changed to use a new way ... the last modification time ....
That can make sure ....

> modified:
>   mysql-test/suite/rpl/r/rpl_rotate_logs.result
>   mysql-test/suite/rpl/t/rpl_rotate_logs.test
> 
> per-file messages:
>   mysql-test/suite/rpl/r/rpl_rotate_logs.result
>     Test result
>   mysql-test/suite/rpl/t/rpl_rotate_logs.test
>     Change 'purge time' 1 sencond after the last modify time of master-bin.000002.
> === modified file 'mysql-test/suite/rpl/r/rpl_rotate_logs.result'
> --- a/mysql-test/suite/rpl/r/rpl_rotate_logs.result	2008-01-14 07:38:02 +0000
> +++ b/mysql-test/suite/rpl/r/rpl_rotate_logs.result	2009-03-11 03:26:40 +0000
> @@ -87,9 +87,7 @@ show binary logs;
>  Log_name	File_size
>  master-bin.000002	#
>  master-bin.000003	#
> -select @time_for_purge:=DATE_ADD(UPDATE_TIME, INTERVAL 1 SECOND)
> -from information_schema.tables
> -where TABLE_SCHEMA="test" and TABLE_NAME="t2";
> +SELECT @time_for_purge:=DATE_ADD('tmpval', INTERVAL 1 SECOND);
>  purge master logs before (@time_for_purge);
>  show binary logs;
>  Log_name	File_size
> 
> === modified file 'mysql-test/suite/rpl/t/rpl_rotate_logs.test'
> --- a/mysql-test/suite/rpl/t/rpl_rotate_logs.test	2008-02-28 11:21:44 +0000
> +++ b/mysql-test/suite/rpl/t/rpl_rotate_logs.test	2009-03-11 03:26:40 +0000
> @@ -112,14 +112,31 @@ source include/show_master_logs.inc;
>  purge binary logs to 'master-bin.000002';
>  source include/show_binary_logs.inc;
>  
> -# Calculate time to use in "purge master logs before" by taking
> -# last modification time of t2 and adding 1 second
> -# This is donw in order to handle the case where file system
> -# time differs from mysqld's time
> +# Set the purge time 1 second after the last modify time of master-bin.000002.
> +let $MYSQLD_DATADIR= `select @@datadir`;
> +--exec stat $MYSQLD_DATADIR/master-bin.000002
> >$MYSQLTEST_VARDIR/tmp/rpl_rotate_logs.000002
> +--exec echo > $MYSQLTEST_VARDIR/tmp/rpl_rotate_logs.tmp
> +perl;
> +open F, $ENV{'MYSQLTEST_VARDIR'}.'/tmp/rpl_rotate_logs.000002' or die "Tmp file
> rpl_rotate_logs.000002 not found";
> +open F2, ">>".$ENV{'MYSQLTEST_VARDIR'}.'/tmp/rpl_rotate_logs.tmp' or die "Tmp
> file rpl_rotate_logs.tmp not found";
> +while (<F>)
> +{
> +  if (/Modify: ([^ ]*) ([^ ]*)\./)
> +  {
> +    printf F2 ("let \$tmpval = %s %s;",$1,$2);
> +  }
> +}
> +close F;
> +close F2;
> +EOF
> +
> +--source $MYSQLTEST_VARDIR/tmp/rpl_rotate_logs.tmp
> +remove_file $MYSQLTEST_VARDIR/tmp/rpl_rotate_logs.000002;
> +remove_file $MYSQLTEST_VARDIR/tmp/rpl_rotate_logs.tmp;
> +
>  --disable_result_log
> -select @time_for_purge:=DATE_ADD(UPDATE_TIME, INTERVAL 1 SECOND)
> -  from information_schema.tables
> -    where TABLE_SCHEMA="test" and TABLE_NAME="t2";
> +--replace_result $tmpval tmpval
> +--eval SELECT @time_for_purge:=DATE_ADD('$tmpval', INTERVAL 1 SECOND)
>  --enable_result_log
>  
>  purge master logs before (@time_for_purge);
> 
> 

Thread
bzr commit into mysql-5.1-bugteam branch (zhou.li:2825) Bug#39858Leonard Zhou11 Mar
  • Re: bzr commit into mysql-5.1-bugteam branch (zhou.li:2825) Bug#39858He Zhenxing11 Mar