List:Commits« Previous MessageNext Message »
From:He Zhenxing Date:June 14 2010 1:49am
Subject:Re: bzr commit into mysql-next-mr-wl5092 branch (luis.soares:3151)
Bug#46554
View as plain text  
Hi Luis,

Thank your for addressing all the comments! Patch approved!

Luis Soares wrote:
> #At file:///home/lsoares/Workspace/bzr/work/bugfixing/46554/mysql-next-mr-wl5092/
> based on revid:luis.soares@stripped
> 
>  3151 Luis Soares	2010-06-14
>       BUG#46554: RBR: pending rows event can be flushed too soon
>       sometimes.
>       
>       While packing a record into an rows event, the server performs
>       several checks to see if a new rows event is needed. Among the
>       conditions checked, there's one that deals with bitmaps from the
>       pending event ('p') and the table ('t') that the server accessed
>       for the current record. If they are different, then 'p' is
>       flushed and a new pending event, 'np', is created. If not, then
>       'p' is used. However, the only bitmaps compared are
>       't'->write_set against 'p'->get_cols(), which in some cases,
>       means we are comparing bitmaps related to write_sets (the ones
>       from 't') against bitmaps related to read_sets (the ones from
>       'p')!  In current versions of the server this issue is masked (as
>       both read and write sets are always fully set).
>       
>       On the other hand, for 6.0 codebase this was not the case
>       because if the table has a PK, only some columns will be flagged
>       in the read_set. In such cases the write_set and the read_set
>       will most likely not match causing the pending to be flushed.
>       Additionally, the write_set is meaningless for delete events and
>       the read_set is meaningless for write events! So comparison must
>       take into account the type of the event to choose what bitmap to
>       take from the table to make the comparison.
>       
>       As stated, this was the case for 6.0 codebase, but also for trees
>       patched with WL#5092, because the user is given the option
>       to choose whether to log partial (not all columns will be flagged
>       in the read and write set) or full rows. If the user chooses to
>       log partial rows, the problem may surface.
>       
>       Finally, This seems to be in fact a regression introduced by
>       patch for BUG#33055 plus a post-merge fix that is related:
>        - sp1r-mkindahl@stripped
>       
>       Since BUG#33055 was backported to WL#5092 tree, this regression
>       tagged along.
>       
>       To fix this problem, we deploy a member function in
>       Rows_log_event that is used to perform the correct comparison of
>       the pending and table bitmaps.
>      @ mysql-test/suite/binlog/t/binlog_row_binlog.test
>         Added test case from the bug report.
>      @ mysql-test/suite/perfschema/r/binlog_mix.result
>         Removing spurious events from the result file.
>      @ mysql-test/suite/perfschema/r/binlog_row.result
>         Removing spurious events from the result file.
>      @ sql/log_event.h
>         1. Added utility member function to compare read and write bitmaps.
>         2. Added get_cols_ai accessor for m_cols_ai.
>      @ sql/sql_class.cc
>         Replaced bitmap check with the proper call to the newly introduced
>         member function that compares bitmaps according to the event type.
> 
>     modified:
>       mysql-test/suite/binlog/r/binlog_row_binlog.result
>       mysql-test/suite/binlog/t/binlog_row_binlog.test
>       mysql-test/suite/perfschema/r/binlog_mix.result
>       mysql-test/suite/perfschema/r/binlog_row.result
>       sql/log_event.h
>       sql/sql_class.cc
> === modified file 'mysql-test/suite/binlog/r/binlog_row_binlog.result'
> --- a/mysql-test/suite/binlog/r/binlog_row_binlog.result	2010-04-20 09:10:43 +0000
> +++ b/mysql-test/suite/binlog/r/binlog_row_binlog.result	2010-06-14 00:55:41 +0000
> @@ -1,3 +1,25 @@
> +SELECT @@session.binlog_row_image INTO @saved_binlog_row_image;
> +SET binlog_row_image= MINIMAL;
> +SHOW VARIABLES LIKE 'binlog_row_image';
> +Variable_name	Value
> +binlog_row_image	MINIMAL
> +RESET MASTER;
> +CREATE TABLE t1(a INT PRIMARY KEY, data VARCHAR(100)) ENGINE=Innodb;
> +INSERT INTO t1 VALUES (1,'a'), (2,'b'), (3, 'c');
> +DELETE FROM t1;
> +show binlog events from <binlog_start>;
> +Log_name	Pos	Event_type	Server_id	End_log_pos	Info
> +master-bin.000001	#	Query	#	#	use `test`; CREATE TABLE t1(a INT PRIMARY KEY, data
> VARCHAR(100)) ENGINE=Innodb
> +master-bin.000001	#	Query	#	#	BEGIN
> +master-bin.000001	#	Table_map	#	#	table_id: # (test.t1)
> +master-bin.000001	#	Write_rows	#	#	table_id: # flags: STMT_END_F
> +master-bin.000001	#	Xid	#	#	COMMIT /* XID */
> +master-bin.000001	#	Query	#	#	BEGIN
> +master-bin.000001	#	Table_map	#	#	table_id: # (test.t1)
> +master-bin.000001	#	Delete_rows	#	#	table_id: # flags: STMT_END_F
> +master-bin.000001	#	Xid	#	#	COMMIT /* XID */
> +DROP TABLE t1;
> +SET binlog_row_image= @saved_binlog_row_image;
>  drop table if exists t1, t2;
>  reset master;
>  create table t1 (a int) engine=innodb;
> 
> === modified file 'mysql-test/suite/binlog/t/binlog_row_binlog.test'
> --- a/mysql-test/suite/binlog/t/binlog_row_binlog.test	2007-06-27 12:28:02 +0000
> +++ b/mysql-test/suite/binlog/t/binlog_row_binlog.test	2010-06-14 00:55:41 +0000
> @@ -1,5 +1,22 @@
> +-- source include/have_binlog_format_row.inc
> +
> +#
> +# BUG#46554: RBR: pending rows event can be flushed too soon sometimes.
> +
> +SELECT @@session.binlog_row_image INTO @saved_binlog_row_image;
> +SET binlog_row_image= MINIMAL;
> +SHOW VARIABLES LIKE 'binlog_row_image';
> +RESET MASTER;
> +CREATE TABLE t1(a INT PRIMARY KEY, data VARCHAR(100)) ENGINE=Innodb;
> +INSERT INTO t1 VALUES (1,'a'), (2,'b'), (3, 'c');
> +## before the patch there would be 3 delete row events
> +DELETE FROM t1;
> +-- source include/show_binlog_events.inc
> +DROP TABLE t1;
> +
> +SET binlog_row_image= @saved_binlog_row_image;
> +
>  # This is a wrapper for binlog.test so that the same test case can be used 
>  # For both statement and row based bin logs 9/19/2005 [jbm]
>  
> --- source include/have_binlog_format_row.inc
>  -- source extra/binlog_tests/binlog.test
> 
> === modified file 'mysql-test/suite/perfschema/r/binlog_mix.result'
> --- a/mysql-test/suite/perfschema/r/binlog_mix.result	2010-05-26 09:29:59 +0000
> +++ b/mysql-test/suite/perfschema/r/binlog_mix.result	2010-06-14 00:55:41 +0000
> @@ -25,18 +25,6 @@ show binlog events from <binlog_start>;
>  Log_name	Pos	Event_type	Server_id	End_log_pos	Info
>  master-bin.000001	#	Query	#	#	BEGIN
>  master-bin.000001	#	Table_map	#	#	table_id: #
> (performance_schema.SETUP_INSTRUMENTS)
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
>  master-bin.000001	#	Update_rows	#	#	table_id: # flags: STMT_END_F
>  master-bin.000001	#	Query	#	#	COMMIT
>  master-bin.000001	#	Query	#	#	use `test`; drop table if exists test.t1
> @@ -55,17 +43,5 @@ master-bin.000001	#	Query	#	#	use `test`
>  master-bin.000001	#	Query	#	#	use `test`; drop table test.t2
>  master-bin.000001	#	Query	#	#	BEGIN
>  master-bin.000001	#	Table_map	#	#	table_id: #
> (performance_schema.SETUP_INSTRUMENTS)
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
>  master-bin.000001	#	Update_rows	#	#	table_id: # flags: STMT_END_F
>  master-bin.000001	#	Query	#	#	COMMIT
> 
> === modified file 'mysql-test/suite/perfschema/r/binlog_row.result'
> --- a/mysql-test/suite/perfschema/r/binlog_row.result	2010-05-26 09:29:59 +0000
> +++ b/mysql-test/suite/perfschema/r/binlog_row.result	2010-06-14 00:55:41 +0000
> @@ -25,18 +25,6 @@ show binlog events from <binlog_start>;
>  Log_name	Pos	Event_type	Server_id	End_log_pos	Info
>  master-bin.000001	#	Query	#	#	BEGIN
>  master-bin.000001	#	Table_map	#	#	table_id: #
> (performance_schema.SETUP_INSTRUMENTS)
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
>  master-bin.000001	#	Update_rows	#	#	table_id: # flags: STMT_END_F
>  master-bin.000001	#	Query	#	#	COMMIT
>  master-bin.000001	#	Query	#	#	use `test`; drop table if exists test.t1
> @@ -55,17 +43,5 @@ master-bin.000001	#	Query	#	#	use `test`
>  master-bin.000001	#	Query	#	#	use `test`; drop table test.t2
>  master-bin.000001	#	Query	#	#	BEGIN
>  master-bin.000001	#	Table_map	#	#	table_id: #
> (performance_schema.SETUP_INSTRUMENTS)
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
> -master-bin.000001	#	Update_rows	#	#	table_id: #
>  master-bin.000001	#	Update_rows	#	#	table_id: # flags: STMT_END_F
>  master-bin.000001	#	Query	#	#	COMMIT
> 
> === modified file 'sql/log_event.h'
> --- a/sql/log_event.h	2010-05-26 13:36:29 +0000
> +++ b/sql/log_event.h	2010-06-14 00:55:41 +0000
> @@ -3544,9 +3544,58 @@ public:
>    virtual int get_data_size();
>  
>    MY_BITMAP const *get_cols() const { return &m_cols; }
> +  MY_BITMAP const *get_cols_ai() const { return &m_cols_ai; }
>    size_t get_width() const          { return m_width; }
>    ulong get_table_id() const        { return m_table_id; }
>  
> +#if defined(MYSQL_SERVER)
> +  /*
> +    This member function compares the table's read/write_set
> +    with this event's m_cols and m_cols_ai. Comparison takes 
> +    into account what type of rows event is this: Delete, Write or
> +    Update, therefore it uses the correct m_cols[_ai] according
> +    to the event type code.
> +
> +    Note that this member function should only be called for the
> +    following events:
> +    - Delete_rows_log_event
> +    - Wrirte_rows_log_event
> +    - Update_rows_log_event
> +
> +    @param[IN] table The table to compare this events bitmaps 
> +                     against.
> +
> +    @return TRUE if sets match, FALSE otherwise. (following 
> +                 bitmap_cmp return logic).
> +
> +   */
> +  virtual bool read_write_bitmaps_cmp(TABLE *table)
> +  {
> +    bool res= FALSE;
> +
> +    switch (get_type_code())
> +    {
> +      case DELETE_ROWS_EVENT:
> +        res= bitmap_cmp(get_cols(), table->read_set);
> +        break;
> +      case UPDATE_ROWS_EVENT:
> +        res= (bitmap_cmp(get_cols(), table->read_set) &&
> +              bitmap_cmp(get_cols_ai(), table->write_set));
> +        break;
> +      case WRITE_ROWS_EVENT:
> +        res= bitmap_cmp(get_cols(), table->write_set);
> +        break;
> +      default:
> +        /* 
> +          We should just compare bitmaps for Delete, Write
> +          or Update rows events.
> +        */
> +        DBUG_ASSERT(0);
> +    }
> +    return res;
> +  }
> +#endif
> +
>  #ifdef MYSQL_SERVER
>    virtual bool write_data_header(IO_CACHE *file);
>    virtual bool write_data_body(IO_CACHE *file);
> 
> === modified file 'sql/sql_class.cc'
> --- a/sql/sql_class.cc	2010-05-19 21:35:03 +0000
> +++ b/sql/sql_class.cc	2010-06-14 00:55:41 +0000
> @@ -4034,7 +4034,7 @@ THD::binlog_prepare_pending_rows_event(T
>        pending->get_table_id() != table->s->table_map_id ||
>        pending->get_type_code() != type_code || 
>        pending->get_data_size() + needed > opt_binlog_rows_event_max_size ||
> -      !bitmap_cmp(pending->get_cols(), table->write_set)) 
> +      pending->read_write_bitmaps_cmp(table) == FALSE)
>    {
>      /* Create a new RowsEventT... */
>      Rows_log_event* const
> 
> text/bzr-bundle 类型 附件
> (bzr/luis.soares@stripped)
> # Bazaar merge directive format 2 (Bazaar 0.90)
> # revision_id: luis.soares@stripped
> # target_branch: file:///home/lsoares/Workspace/bzr/work/bugfixing\
> #   /46554/mysql-next-mr-wl5092/
> # testament_sha1: d77ecb3ae3e4daf211ef9f743cd1cbca049b22f7
> # timestamp: 2010-06-14 01:55:49 +0100
> # source_branch: /home/lsoares/Workspace/bzr/clones/mysql-next-mr-\
> #   wl5092
> # base_revision_id: luis.soares@stripped\
> #   ws11vzl7357hg2dy
> # 
> # Begin bundle
> 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
> 
> 


Thread
bzr commit into mysql-next-mr-wl5092 branch (luis.soares:3151)Bug#46554Luis Soares14 Jun
  • Re: bzr commit into mysql-next-mr-wl5092 branch (luis.soares:3151)Bug#46554He Zhenxing14 Jun