List:Commits« Previous MessageNext Message »
From:Andrei Elkin Date:August 27 2008 12:40pm
Subject:Re: bzr commit into mysql-5.1 branch (aelkin:2719) Bug#38798
View as plain text  
He Zhenxing,

> Andrei Elkin wrote:
>> He Zhenxing, hei-hei!
>> 
>> thanks for the prompt review!
>> 
>> > Hi, Andrei
>> >
>> > I think your patch is good and OK to push!
>> >
>> > Just one comment, I think maybe it's better to put the test case in
>> > suite/bugs and name it something like rpl_bug38798.test. But I am OK if
>> > you don't agree with me on this.
>> 
>> I'd rather to keep this new binlog_off test in the main suite. To explain why,
>> the current is not the first case of a failure in replication code
>> when binlogging is OFF. So far we have not had a test checking if the
>> replication/binlogging algorithems are properly shut off.
>> 
>
> Sounds resonable, BTW, do you think binlog_is_off or binlog_disabled or
> binlog_turned_off is better?
>

binlog_is_off sounds ok.

I'll change to that.

cheers,

Andrei

>> We might fill in binlog_off more cases along the time.
>> 
>
> Agreed
>
>> cheers,
>> 
>> Andrei
>> 
>> >
>> >
>> > Andrei Elkin wrote:
>> >> #At
> file:///home/andrei/MySQL/BZR/FIXES/5.1-bug38798-assert_binlog_open/
>> >> 
>> >>  2719 Andrei Elkin	2008-08-26
>> >>       Bug #38798 Assertion mysql_bin_log.is_open() failed in
> binlog_trans_log_savepos()
>> >>       
>> >>       The assert is about binlogging must have been activated, but it
> was not actually according
>> >>       to the reported how-to-repeat instuctions.
>> >>       Analysis revealed that binlog_start_trans_and_stmt() was called
> without prior testing 
>> >>       if binlogging is ON.
>> >>       
>> >>       Fixed with avoing entering binlog_start_trans_and_stmt() if binlog
> is not activated.
>> >> added:
>> >>   mysql-test/r/binlog_off.result
>> >>   mysql-test/t/binlog_off-master.opt
>> >>   mysql-test/t/binlog_off.test
>> >> modified:
>> >>   sql/sql_insert.cc
>> >> 
>> >> per-file messages:
>> >>   mysql-test/r/binlog_off.result
>> >>     new results file
>> >>   mysql-test/t/binlog_off-master.opt
>> >>     the option to deactivate binlogging
>> >>   mysql-test/t/binlog_off.test
>> >>     regression test for the bug
>> >>   sql/sql_insert.cc
>> >>     avoing entering binlog_start_trans_and_stmt() if binlog is not
> activated.
>> >> === added file 'mysql-test/r/binlog_off.result'
>> >> --- a/mysql-test/r/binlog_off.result	1970-01-01 00:00:00 +0000
>> >> +++ b/mysql-test/r/binlog_off.result	2008-08-26 17:01:49 +0000
>> >> @@ -0,0 +1,6 @@
>> >> +DROP TABLE IF EXISTS t1, t2;
>> >> +set @@session.binlog_format=row;
>> >> +create table t1 (a int);
>> >> +insert into t1 values (1);
>> >> +create table t2 select * from t1;
>> >> +drop table t1, t2;
>> >> 
>> >> === added file 'mysql-test/t/binlog_off-master.opt'
>> >> --- a/mysql-test/t/binlog_off-master.opt	1970-01-01 00:00:00 +0000
>> >> +++ b/mysql-test/t/binlog_off-master.opt	2008-08-26 17:01:49 +0000
>> >> @@ -0,0 +1 @@
>> >> +--loose-skip-log-bin
>> >> 
>> >> === added file 'mysql-test/t/binlog_off.test'
>> >> --- a/mysql-test/t/binlog_off.test	1970-01-01 00:00:00 +0000
>> >> +++ b/mysql-test/t/binlog_off.test	2008-08-26 17:01:49 +0000
>> >> @@ -0,0 +1,22 @@
>> >> +#
>> >> +# binlog_off.test purpose is check that algorithms dealing with
> binlogging
>> >> +# are robbust to sustain --skip-log-bin
>> >> +#
>> >> +
>> >> +--disable_warnings
>> >> +DROP TABLE IF EXISTS t1, t2;
>> >> +--enable_warnings
>> >> +
>> >> +#
>> >> +# Bug #38798 Assertion mysql_bin_log.is_open() failed in 
>> >> +#            binlog_trans_log_savepos()
>> >> +# testing that there is no crash
>> >> +
>> >> +set @@session.binlog_format=row;
>> >> +
>> >> +create table t1 (a int);
>> >> +insert into t1 values (1);
>> >> +create table t2 select * from t1;
>> >> +
>> >> +# clean-up
>> >> +drop table t1, t2;
>> >> 
>> >> === modified file 'sql/sql_insert.cc'
>> >> --- a/sql/sql_insert.cc	2008-07-11 18:51:10 +0000
>> >> +++ b/sql/sql_insert.cc	2008-08-26 17:01:49 +0000
>> >> @@ -3523,7 +3523,8 @@ select_create::prepare(List<Item>
> &value
>> >>      temporary table, we need to start a statement transaction.
>> >>    */
>> >>    if ((thd->lex->create_info.options &
> HA_LEX_CREATE_TMP_TABLE) == 0 &&
>> >> -      thd->current_stmt_binlog_row_based)
>> >> +      thd->current_stmt_binlog_row_based &&
>> >> +      (thd->options & OPTION_BIN_LOG) &&
> mysql_bin_log.is_open())
>> >>    {
>> >>      thd->binlog_start_trans_and_stmt();
>> >>    }
>> >> @@ -3619,10 +3620,11 @@ select_create::binlog_show_create_table(
>> >>    result= store_create_info(thd, &tmp_table_list, &query,
> create_info);
>> >>    DBUG_ASSERT(result == 0); /* store_create_info() always return 0 */
>> >>  
>> >> -  thd->binlog_query(THD::STMT_QUERY_TYPE,
>> >> -                    query.ptr(), query.length(),
>> >> -                    /* is_trans */ TRUE,
>> >> -                    /* suppress_use */ FALSE);
>> >> +  if ((thd->options & OPTION_BIN_LOG) &&
> mysql_bin_log.is_open())
>> >> +    thd->binlog_query(THD::STMT_QUERY_TYPE,
>> >> +                      query.ptr(), query.length(),
>> >> +                      /* is_trans */ TRUE,
>> >> +                      /* suppress_use */ FALSE);
>> >>  }
>> >>  
>> >>  void select_create::store_values(List<Item> &values)
>> >> 
>> >
>> >
>> >
>> > -- 
>> > MySQL Code Commits Mailing List
>> > For list archives: http://lists.mysql.com/commits
>> > To unsubscribe:    http://lists.mysql.com/commits?unsub=1
Thread
bzr commit into mysql-5.1 branch (aelkin:2719) Bug#38798Andrei Elkin26 Aug
  • Re: bzr commit into mysql-5.1 branch (aelkin:2719) Bug#38798He Zhenxing27 Aug
    • Re: bzr commit into mysql-5.1 branch (aelkin:2719) Bug#38798Andrei Elkin27 Aug
      • Re: bzr commit into mysql-5.1 branch (aelkin:2719) Bug#38798He Zhenxing27 Aug
        • Re: bzr commit into mysql-5.1 branch (aelkin:2719) Bug#38798Andrei Elkin27 Aug
  • Re: bzr commit into mysql-5.1 branch (aelkin:2719) Bug#38798Sven Sandberg29 Aug